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