LED и кнопка
- Войдите на сайт для отправки комментариев
Пнд, 28/01/2019 - 16:58
День добрый!
В этой программе LED переключается когда кнопка нажата болье 2 сек.
Есть;
нажимаем кнопку и држим больше 2 сек LED = ON, нажимаем кнопку снова и держим больше 2 сек LED = OFF
Надо;
нажимаем кнопку и держим больше 2 сек LED = ON , отпускаем кнопку LED = OFF.
int LED1 = PB15; int button = PB12; boolean LED1State = false; boolean LED2State = false; long buttonTimer = 0; //long longPressTime = 250; long longPressTime = 2000; boolean buttonActive = false; boolean longPressActive = false; void setup() { pinMode(LED1, OUTPUT); pinMode(button, INPUT); //pinMode(button, INPUT_PULLDOWN); } void loop() { if (digitalRead(button) == HIGH) { if (buttonActive == false) { buttonActive = true; buttonTimer = millis(); } if ((millis() - buttonTimer > longPressTime) && (longPressActive == false)) { longPressActive = true; LED1State = !LED1State; digitalWrite(LED1, LED1State); } } else { if (buttonActive == true) { if (longPressActive == true) { longPressActive = false; } else buttonActive = false; } } }
Вместо 34 и 35 строки просто включайте светодиод digitalWrite(LED1, 1); , а между 41 и 42 гасите digitalWrite(LED1, 0);