Функция debounce в подключении кнопок к Arduino работает, сравнивая состояние кнопки несколько раз через небольшой промежуток времени. dzen.ru Это позволяет устранить эффект «дребезга». dzen.ru developer.alexanderklimov.ru
Алгоритм работы: dzen.ru
- В цикле loop() постоянно считывается напряжение на пине и записывается в переменную reading. dzen.ru
- Если reading не равно предыдущему состоянию кнопки, то счётчику lastDebounceTime присваивается значение функции millis(). dzen.ru
- Через 50 миллисекунд значение переменной reading сравнивается с текущим состоянием кнопки. dzen.ru
- Если они не равны, то текущее состояние кнопки приравнивается к reading. dzen.ru
- Если кнопка нажата, то состояние светодиода меняется на противоположное. dzen.ru
- После этого на пин светодиода посылается определённое состояние, а предыдущее состояние кнопки сохраняется для проверки в следующем витке цикла. dzen.ru
В результате функция позволяет включать светодиод нажатием кнопки, но не держать её нажатой постоянно, а только менять состояние светодиода нажатием. dzen.ru