Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Arduino:Примеры/Bounce2Buttons

Материал из Онлайн справочника
Перейти к: навигация, поиск

Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Устранение дребезга при нажатии на кнопку (вариант с двумя кнопками)[1]

Этот пример показывает, как при помощи библиотеки Bounce настроить плату Arduino на устранение дребезга контактов при использовании двух кнопок, подключенных к плате. Если нажать хотя бы на одну из этих кнопок, на плате загорится отладочный контакт.

Код

  1. /*
  2. ОПИСАНИЕ
  3. ====================
  4. Скетч-пример для библиотеки Bounce, который переключает отладочный светодиод, если нажата хотя бы одна из двух кнопок.
  5. */
  6.  
  7. // Подключаем библиотеку Bounce. Найти ее можно тут:
  8. // https://github.com/thomasfredericks/Bounce2
  9.  
  10. #include <Bounce2.h>
  11.  
  12. #define BUTTON_PIN_1 2
  13. #define BUTTON_PIN_2 3
  14.  
  15.  
  16. #define LED_PIN 13
  17.  
  18. // Создаем экземпляр класса Bounce:
  19. Bounce debouncer1 = Bounce();
  20.  
  21. // Создаем еще один экземпляр класса Bounce:
  22. Bounce debouncer2 = Bounce();
  23.  
  24. void setup() {
  25.  
  26.   // Настраиваем первую кнопку со встроенным подтягивающим резистором:
  27.   pinMode(BUTTON_PIN_1,INPUT_PULLUP);
  28.   // Теперь настраиваем экземпляр класса для той кнопки:
  29.   debouncer1.attach(BUTTON_PIN_1);
  30.   debouncer1.interval(5); // interval in ms
  31.  
  32.   // Настраиваем вторую кнопку со встроенным подтягивающим резистором:
  33.   pinMode(BUTTON_PIN_2,INPUT_PULLUP);
  34.   // Теперь настраиваем экземпляр класса для этой кнопки:
  35.   debouncer2.attach(BUTTON_PIN_2);
  36.   debouncer2.interval(5); // interval in ms
  37.  
  38.  
  39.   // Настраиваем светодиод:
  40.   pinMode(LED_PIN,OUTPUT);
  41.  
  42. }
  43.  
  44. void loop() {
  45.   // Обновляем экземпляры класса Bounce:
  46.   debouncer1.update();
  47.   debouncer2.update();
  48.  
  49.   // Считываем обновленные значения:
  50.   int value1 = debouncer1.read();
  51.   int value2 = debouncer2.read();
  52.  
  53.   // Включаем светодиод, если какая-либо из кнопок нажата:
  54.   if ( value1 == LOW || value2 == LOW ) {
  55.     digitalWrite(LED_PIN, HIGH );
  56.   }
  57.   else {
  58.     digitalWrite(LED_PIN, LOW );
  59.   }
  60.  
  61. }

См.также

Внешние ссылки

  1. github.com - bounce2buttons.ino