Поиск по этому блогу

4 нояб. 2016 г.

Антидребезг


Данный пример демонстрирует, как программным путем обойти такое явление как дребезг контактов при нажатии на кнопку (другими словами, ложные повторные нажатия). 
Для этого программе даются инструкции, чтобы она дважды за короткий промежуток времени проверяла, действительно ли кто-то нажал на кнопку или все же нет – этот способ называется антидребезгом. 
Если им не воспользоваться, программа будет считывать одно единственное нажатие на кнопку как множество разных нажатий. 
Отслеживание времени в данном примере будет осуществляться при помощи функции millis().

Обработка нажатия кнопки в прерывании


Для обработки факта нажатия/отпускания кнопки так же можно использовать прерывания. Преимущества такого способа — в отсутствии необходимости в программе постоянно контролировать уровень сигнала на входе, к которому подключена кнопка.
Для отработки состояния кнопки в прерывании нужно определить процедуру обработки и подключить ее в качестве обработчика аппаратного прерывания по какому-нибудь входу (для Arduino UNO — это pin2 (Int0) или pin3 (Int1).