Arduino:Примеры/Bounce2Buttons

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

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


Устранение дребезга при нажатии на кнопку (вариант с двумя кнопками)[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 }

См.также

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