НАЗАД

Устраняем дребезг контактов (метод 1)

При нажатии кнопки появляется дребезг контактов. Дребезг связан с тем, что контакты кнопки могут многократно срабатывать при одном нажатии кнопки. Человек нажимает один раз, но из-за особенностей конструкции кнопки, контроллер может воспринят это, как многократное нажатие кнопки. Соответственно, дребезг контактов при написании программ необходимо устранять.

Устранять дребезг контактов можно двумя способами: аппаратным и программным.

Здесь мы рассмотри программный способ устранения дребезга контактов. Аппаратный способ связан с созданием «инерционности» изменения напряжения при нажатии/отпускания кнопки. Для программной реализации, необходимо провести два замера, через определённой время. Обычно время лежит в пределах 50-250 микросекунд. Программа по устранению дребезга контактов приведена ниже.

#define switcher01 13
#define led01 12
void setup()
{
// инициализация цифрового пина как вход
pinMode(switcher01, INPUT);
digitalWrite(switcher01, HIGH);
//инициализация цифрового пина как выход
pinMode(led01, OUTPUT);
digitalWrite(led01, LOW);
}
void loop()
{
If (digitalRead(switcher01)==LOW)
{
delay(150);
if (digitalRead(switcher01)==LOW)
{
digitalWrite(led01, HIGH)
do {
}while(digitalRead(switcher01)==LOW);
}
}
}

Результатом данной программы является включение светодиода.