Arduino:Примеры/Duration

Материал из Онлайн справочника
Версия от 12:33, 8 июля 2023; EducationBot (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

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


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

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

Код

/* 
ОПИСАНИЕ
====================
Считывает продолжительность нажатия на кнопку (переход из HIGH в LOW)
и передает эту информацию по последовательному порту (57600 бод).
*/

// Подключаем библиотеку Bounce2. Найти ее можно тут:
// https://github.com/thomasfredericks/Bounce-Arduino-Wiring

#include <Bounce2.h>


#define BUTTON_PIN 2
#define LED_PIN 13

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

unsigned long buttonPressTimeStamp;

void setup() {
  
  Serial.begin(57600);
  
  // Настраиваем кнопку со встроенным подтягивающим резистором:
  pinMode(BUTTON_PIN,INPUT_PULLUP);
  
  // Затем настраиваем экземпляр класса Bounce для этой кнопки:
  debouncer.attach(BUTTON_PIN);
  debouncer.interval(5);
  
  // Настраиваем светодиод:
  pinMode(LED_PIN,OUTPUT);
  
}

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

  // Если значение на контакте перейдет из HIGH в LOW... 
  if ( debouncer.fell()  ) {;
  
    Serial.println( millis()-buttonPressTimeStamp );
     buttonPressTimeStamp = millis();
  
  }
  

}

См.также

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