Civil &: строительная инженерия
Понимание и реализация дебункинга в кнопочных входах Arduino
Table of Contents
Отскакивание — это техника, используемая в программировании микроконтроллеров для обеспечения надёжного считывания входов кнопок. При нажатии или освобождении кнопки она может генерировать множество сигналов из-за механических колебаний, вызывая ложные триггеры. Реализация откачки помогает отфильтровать эти нежелательные сигналы и обеспечивает точное обнаружение нажатий кнопок.
Что такое дебоунинг?
Отскакивание — это процесс устранения шума, вызванного физическим контактным отскоком кнопки. При нажатии кнопки контакт может быстро соединяться и отключаться несколько раз перед оседанием. Без отскакивания эти быстрые сигналы могут быть неверно истолкованы как множественные нажатия.
Методы дебоунсинга
Существует два распространенных метода реализации дебункинга в Arduino:
- Отключение программного обеспечения: Включает добавление задержки или проверку состояния кнопки с течением времени для подтверждения стабильного сигнала.
- Программное обеспечение Откачивание: Использует электронные компоненты, такие как RC-фильтры или триггеры Шмитта, чтобы сгладить сигнал.
Реализация программного дебоунинга
Программное отскакивание обычно используется в проектах Arduino. Оно включает в себя чтение состояния кнопки, ожидание короткого периода, а затем проверку того, остается ли состояние неизменным. Этот процесс уменьшает ложные триггеры, вызванные отскоком.
Пример фрагмента кода:
const int buttonPin = 2;]
int buttonState = 0;
неподписанный длинный последнийDebounceTime = 0;]
неподписанная длительная дебюнсацияЗадержка = 50;]
Пустота()
int reading = digitalRead (buttonPin);
, если (чтение != кнопка Состояние) {]
lastDebounceTime = millis();]
, если ((millis() - lastDebounceTime) > debounceDelay)
кнопка Состояние = чтение;
?
?