Для устроения дребезга кнопки существует несколько 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); // Включаем или выключаем светодиот (смотря что пришло после инверсии)
}
}
Работа с кнопками. Дата публикации 10 декабря , 2019 10 декабря , 2019