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

Arduino:Примеры/Duration

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

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

Контакты:

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


Определение продолжительности нажатия на кнопку[1]

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

Код

  1. /*
  2. ОПИСАНИЕ
  3. ====================
  4. Считывает продолжительность нажатия на кнопку (переход из HIGH в LOW)
  5. и передает эту информацию по последовательному порту (57600 бод).
  6. */
  7.  
  8. // Подключаем библиотеку Bounce2. Найти ее можно тут:
  9. // https://github.com/thomasfredericks/Bounce-Arduino-Wiring
  10.  
  11. #include <Bounce2.h>
  12.  
  13.  
  14. #define BUTTON_PIN 2
  15. #define LED_PIN 13
  16.  
  17. // Создаем экземпляр класса Bounce:
  18. Bounce debouncer = Bounce();
  19.  
  20. unsigned long buttonPressTimeStamp;
  21.  
  22. void setup() {
  23.  
  24.   Serial.begin(57600);
  25.  
  26.   // Настраиваем кнопку со встроенным подтягивающим резистором:
  27.   pinMode(BUTTON_PIN,INPUT_PULLUP);
  28.  
  29.   // Затем настраиваем экземпляр класса Bounce для этой кнопки:
  30.   debouncer.attach(BUTTON_PIN);
  31.   debouncer.interval(5);
  32.  
  33.   // Настраиваем светодиод:
  34.   pinMode(LED_PIN,OUTPUT);
  35.  
  36. }
  37.  
  38. void loop() {
  39.  
  40.    // Обновляем экземпляр Bounce:
  41.   debouncer.update();
  42.  
  43.   // Если значение на контакте перейдет из HIGH в LOW...
  44.   if ( debouncer.fell()  ) {;
  45.  
  46.     Serial.println( millis()-buttonPressTimeStamp );
  47.      buttonPressTimeStamp = millis();
  48.  
  49.   }
  50.  
  51.  
  52. }

См.также

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

  1. github.com - duration.ino