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);