Для устроения
дребезга кнопки существует несколько
Ardduino библиотек. Рассмотрим работу с
одной их таких библиотек, например,
библиотекой
Bounce2.
Для установки библиотеки поместим её
в директорию
/libraries/среды
разработки
Arduino и перезапустим IDE.
Библиотека Bounce2 содержит
следующие методы:
Название
|
Назначение
|
Bounce()
|
инициализация объекта Bounce;
|
void interval (мсек)
|
устанавливает время задержки в
миллисекундах;
|
void attach (номерПина)
|
задаёт вывод, к которому подключена
кнопка;
|
int update()
|
обновляет объект и возвращает true,
если состояние пина изменилось, и
false в противном случае;
|
int read()
|
считывает новое состояние пина.
|
Перепишем предыдущий пример с
использованием библиотеки. Можно также
запоминать и сравнивать прошлое состояние
кнопки с текущим, но давайте упростим
алгоритм.
#include <Bounce2.h> // подключаем библиотеку
const int buttonPin = 2; // номер входа, подключенный к кнопке
const int ledPin = 3; // номер выхода светодиода
boolean ledOn = false; // текущее состояние свтодиода
Bounce b = Bounce(); // инстанциируем объект Bounce
void setup()
{
// инициализируем пин, подключенный к светодиоду, как выход
pinMode(ledPin, OUTPUT);
// инициализируем пин, подключенный к кнопке, как вход
pinMode(buttonPin, INPUT);
b.attach(buttonPin); // объект Bounce будет слушать кнопку на пине switchPin
b.interval(5); // устанавливаем время задержки в [мс]
}
void loop()
{
if (b.update() && b.read() == 1)
{ // если зарегистрировано событие и кнопка нажата,
ledOn = !ledOn; // инвертируем значение
digitalWrite(ledPin, ledOn); // Включаем или выключаем светодиот (смотря что пришло после инверсии)
}
}