Arduino:Примеры/Bounce2Buttons

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

Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


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

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

Код

/* 
ОПИСАНИЕ
====================
Скетч-пример для библиотеки Bounce, который переключает отладочный светодиод, если нажата хотя бы одна из двух кнопок.
*/
 
// Подключаем библиотеку Bounce. Найти ее можно тут:
// https://github.com/thomasfredericks/Bounce2

#include <Bounce2.h>

#define BUTTON_PIN_1 2
#define BUTTON_PIN_2 3


#define LED_PIN 13

// Создаем экземпляр класса Bounce:
Bounce debouncer1 = Bounce(); 

// Создаем еще один экземпляр класса Bounce:
Bounce debouncer2 = Bounce(); 

void setup() {

  // Настраиваем первую кнопку со встроенным подтягивающим резистором:
  pinMode(BUTTON_PIN_1,INPUT_PULLUP);
  // Теперь настраиваем экземпляр класса для той кнопки:
  debouncer1.attach(BUTTON_PIN_1);
  debouncer1.interval(5); // interval in ms
  
  // Настраиваем вторую кнопку со встроенным подтягивающим резистором:
  pinMode(BUTTON_PIN_2,INPUT_PULLUP);
  // Теперь настраиваем экземпляр класса для этой кнопки:
  debouncer2.attach(BUTTON_PIN_2);
  debouncer2.interval(5); // interval in ms


  // Настраиваем светодиод:
  pinMode(LED_PIN,OUTPUT);

}

void loop() {
  // Обновляем экземпляры класса Bounce:
  debouncer1.update();
  debouncer2.update();

  // Считываем обновленные значения:
  int value1 = debouncer1.read();
  int value2 = debouncer2.read();

  // Включаем светодиод, если какая-либо из кнопок нажата:
  if ( value1 == LOW || value2 == LOW ) {
    digitalWrite(LED_PIN, HIGH );
  } 
  else {
    digitalWrite(LED_PIN, LOW );
  }

}

См.также

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