Функция debounce – программный «анти-дребезг» для Arduino
[ Скачать с сервера (148.3 Kb) ] | 04.11.2016, 10:19 |
Функция debounce – программный «анти-дребезг»#define pinBUTTON 6 // пин кнопки #define pinLED 8 // пин светодиода boolean lastStateButton=false; // предыдущее состояние кнопки boolean currentStateButton=false; // текущее состояние кнопки boolean stateLED=false; // состояние светодиода void setup() { // put your setup code here, to run once: pinMode(pinBUTTON, INPUT); // пин кнопки для чтения pinMode(pinLED, OUTPUT); // пин светодиода на запись } void loop() { // put your main code here, to run repeatedly: currentStateButton = debounce(pinBUTTON, lastStateButton); // состояние кнопки изменилось с "ненажата" на "нажато"? if( lastStateButton == false && currentStateButton == true ) { stateLED = ! stateLED; // кнопка нажата – изменим состояние светодиода digitalWrite(pinLED, stateLED); // запишем его в пин светодиода (зажжем или погасим) } lastStateButton = currentStateButton; // запомним состояние кнопки } // функция "анти-дребезга", возвращает новое текущее состояние кнопки // pin - номер пина кнопки // state - текущее состояние кнопки boolean debounce(int pin, boolean state) { boolean current; current = digitalRead(pin); // прочитаем состояние кнопки if( current != state ) { // если состояние кнопки изменилось delay(5); // подождем 5 мс пока прекратится дребезг current = digitalRead(pin); // и снова прочитаем состояние } return current; } ---
| |
Категория: Arduino | | |
Просмотров: 2178 | Загрузок: 154 |