Счётчик нажатий по кнопке
- Войдите на сайт для отправки комментариев
Пнд, 20/06/2022 - 06:51
Здравствуйте всем! Давным давно занимался ардуино и спустя долгое время решил создать код для кнопки и, почему то не хочет выдавать в порт данные, которые записал в функции.
2 проблема. Кто знает помогите пожалуйста! Как сделать так, чтобы ардуинка считала количество нажатий с любого момента, поясню: я нажимаю 2 раза подряд - выполняется один код, к примеру пишется "нажата 2 раза"
3 раза подряд - "нажата 3 раза" и так далее, при этом, что функции, которые уже написаны - работали(код работал).
bool btn = digitalRead(2);
bool btns = digitalRead(2);
bool btnf = digitalRead(2);
bool flag = false;
bool aglf = false;
unsigned long last;
unsigned long timed;
unsigned long timedf;
void setup() {
Serial.begin(9600);
pinMode(2, INPUT_PULLUP);
}
void loop() {
bool btn = digitalRead(2);
bool btns = digitalRead(2);
bool btnf = digitalRead(2);
if(btn && !flag && millis() - last > 80){ //on
flag = true;
Serial.println("press");
last = millis ();
if(btn && flag && millis() - last >50 ) {
Serial.println("Double");
}
}
if(!btn && flag && millis() - last >300){
flag = false; //off
Serial.println ("WWWWWW");
}
if(millis () - last >5000 && btn){
Serial.println("wait 5 sec"); //wait 5 sec and go on ALWAYS
return;
}
if(millis () - last >500 && btn){
Serial.println("hold"); //hold
}
}
1, 2 и 3 решает одна библиотека: https://github.com/kakmyc-github/kakmyc_btn (клик, мультиклик, долгое удержание кнопки .... )
Там есть примеры, думаю разберетесь.