Счётчик нажатий по кнопке
- Войдите на сайт для отправки комментариев
Пнд, 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 (клик, мультиклик, долгое удержание кнопки .... )
Там есть примеры, думаю разберетесь.