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

Существует несколько способов устранения дребезга контактов:

  1. Применение ползунковых переключателей, в которых данных дефект максимально снижен
  2. Использование тригерных схем, игнорирующих дребегз
  3. Программная обработка входа на микроконтроллере, в нашем случае обработка на Arduino

Чтобы не выдумывать очередной велосипед, предлагаю воспользоваться готовой библиотекой Arduino Bounce. Ее принцип работы сводится к применению временной задержки на входе с переключателя, в течение которой считывается сигнал с контактов кнопки. Во время работы программы при нажатии на кнопку вызываем функцию update(), которая возвращает 1, если состояние pin-а изменилось и затем read(), возвращающую значение со входа переключателя.

Необходимый набор электронных компонентов:
1) Плата Arduino UNO(или любая другая)
2) Макетная плата breadboard, 1шт
3) Светодиод, 1шт
4) Резистор ~220 Ом, 1шт
5) Резистор 1-10кОм, 2шт
6) Кнопка тактовая, 2шт
7) Провода «папа-папа», 7шт

Софт:
1) Arduino IDE
2) Библиотека Bounce https://github.com/thomasfredericks/Bounce-Arduino-Wiring/archive/master.zip

Для ее использование распаковываем в папку libraries и перегружаем Arduino ide. У меня она находится по адресу: C:\Users\USER\Documents\Arduino\libraries

Подробнее о библиотеке Bounce можно узнать на сайте http://playground.arduino.cc/Code/Bounce

Принципиальная схема подключения:

Схема подключения на макетной плате:

Включение и выключение светодиода разными кнопками

Исходный код программы:

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

Автор

Оставьте свой отзыв или комментарий к статье