Arduino UNO
- Войдите на сайт для отправки комментариев
Цель: прописать еще одну кнопку по нажатию которой светодиод должен начать мигать с заданной ранее яркостью, с одинаковой частотой
1 #define PLUS_BUTTON_PIN 2
2 #define MINUS_BUTTON_PIN 3
3 #define LED_PIN 9
4 int brightness = 100;
5 boolean plusUp = true;
6 boolean minusUp = true;
7 int S = 35;
8 void setup()
9 {
10 pinMode(LED_PIN, OUTPUT);
11 pinMode(PLUS_BUTTON_PIN, INPUT_PULLUP);
12 pinMode(MINUS_BUTTON_PIN, INPUT_PULLUP);
13 }
14 void loop()
15 {
16 analogWrite(LED_PIN, brightness);
17 plusUp = handleClick(PLUS_BUTTON_PIN, plusUp, +S);
18 minusUp = handleClick(MINUS_BUTTON_PIN, minusUp, -S);
19}
20 boolean handleClick(int buttonPin, boolean wasUp, int delta)
21 {
22 boolean isUp = digitalRead(buttonPin);
23 if (wasUp && !isUp) {
24 delay(10);
25 isUp = digitalRead(buttonPin);
26 if (!isUp)
27 brightness = constrain(brightness + delta, 0, 255);
28 }
29 return isUp;
30}
Помогающим- заранее спасибо! ,Старожилы простите) надеюсь нормально вопрос задал на этот раз(3) ы)
код ненормально вставил
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukomment...
Уно здесь не причём. Абсолютно одинаков вопрос длялюбой платы среды, даже ESP32. Вопрос надо формулировать по теме. Например: Расширение функционала кнопок. Или : Как добавить кнопку.
ну и так далее
Проблема не в создании новой кнопки, я не знаю как заставить светодиод моргать по её нажатию, что бы кусок отвечающий за моргание не конфликтовал с уже готовым куском кода
См. статью "blink без delay".
Когда встроите в свой код блинк без делея, и он будет у вас работать, т.е. мигать и менять яркость по уже имеющимся кнопкам, добавить третью и заставить включаться только по ее клику будет уже делом пары строк. Сначала заставьте светодиод моргать ))
Вот уже ближе к смыслу вопроса. Так и надо было писать - как независимо моргать светодиодом.
Просто эта задача решается таймером деда Семёна. По нажатию кнопки запускается таймер и по его срабатыванию включается или выключается светодиод. Таймеров и кнопок может быть много. Все работают независимо друг от друга.
Дед! Подскажешь где его таймер взять?
Так и надо было писать - как независимо моргать светодиодом.
Просто эта задача решается таймером деда Семёна. По нажатию кнопки запускается таймер и по его срабатыванию включается или выключается светодиод. Таймеров и кнопок может быть много. Все работают независимо друг от друга.
Дед! Подскажешь где его таймер взять?
вот уже несколько раз писал - ничего не имею против Деда и его Таймеров, но убежден, что каждый новичок должен хотя бы один раз написать блинк на миллисе сам. А таймер - для новичков это некий вид читерства. использовать таймеры надо разрешать тогда. когда миллисы уже освоены.
Вот я тоже думаю, что наиболее конструктивен подход, изложенный в сообщениях №7, 8 и 10.
ничего не имею против Деда и его Таймеров, но убежден, что каждый новичок должен хотя бы один раз написать блинк на миллисе сам.
Полностью согласен
код на мигание я писал раньше, но я не знаю как его включить в новый
или вот без delay
Ну, тут есть разные способы, в частности:
- узнать,
- придумать.