Отскакивание — это техника, используемая в программировании микроконтроллеров для обеспечения надёжного считывания входов кнопок. При нажатии или освобождении кнопки она может генерировать множество сигналов из-за механических колебаний, вызывая ложные триггеры. Реализация откачки помогает отфильтровать эти нежелательные сигналы и обеспечивает точное обнаружение нажатий кнопок.

Что такое дебоунинг?

Отскакивание — это процесс устранения шума, вызванного физическим контактным отскоком кнопки. При нажатии кнопки контакт может быстро соединяться и отключаться несколько раз перед оседанием. Без отскакивания эти быстрые сигналы могут быть неверно истолкованы как множественные нажатия.

Методы дебоунсинга

Существует два распространенных метода реализации дебункинга в Arduino:

  • Отключение программного обеспечения: Включает добавление задержки или проверку состояния кнопки с течением времени для подтверждения стабильного сигнала.
  • Программное обеспечение Откачивание: Использует электронные компоненты, такие как RC-фильтры или триггеры Шмитта, чтобы сгладить сигнал.

Реализация программного дебоунинга

Программное отскакивание обычно используется в проектах Arduino. Оно включает в себя чтение состояния кнопки, ожидание короткого периода, а затем проверку того, остается ли состояние неизменным. Этот процесс уменьшает ложные триггеры, вызванные отскоком.

Пример фрагмента кода:

const int buttonPin = 2;]

int buttonState = 0;

неподписанный длинный последнийDebounceTime = 0;]

неподписанная длительная дебюнсацияЗадержка = 50;]

Пустота()

int reading = digitalRead (buttonPin);

, если (чтение != кнопка Состояние) {]

lastDebounceTime = millis();]

, если ((millis() - lastDebounceTime) > debounceDelay)

кнопка Состояние = чтение;

?

?