Arduino:Библиотеки/Bounce

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

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



Библиотека Bounce[1][2]

Библиотека Bounce служит устранению дребезга контактов на Arduino. Она написана Олле Фредериксом (Ouellet Fredericks) в сотрудничестве с Эриком Лоури (Eric Lowry), Джимом Шимпфом (Jim Schimpf) и Томом Хэркавеем (Tom Harkaway).

Да данный момент вышла уже вторая версия библиотеки – Bounce 2. Цифра «2» в названии указывает, что она не на 100% совместима с первой версией. Библиотека была обновлена алгоритмами и модификациями, предложенными разными пользователями.

Установка и импорт

Скачайте ZIP-файл с библиотекой по этой ссылке. Затем скопируйте распакованную папку с библиотекой по адресу «Документы/Arduino/libraries». Далее, чтобы подключить эту библиотеку к своему скетчу, кликните в IDE Arduino на Скетч > Подключить библиотеку > Bounce2 (Sketch > Include Library > Bounce2). В результате в верхней части скетча появится строчка #include Bounce2.h.

Функции

  • Bounce()
    
    • Создает экземпляр класса Bounce.
  • void interval(unsigned long interval)
    
    • Задает время устранения дребезга в миллисекундах.
  • void attach(int pin)
    
    • Задает контакт и сопоставляет внутреннее состояние с состоянием контакта. Эту функцию следует использовать, когда контакт уже настроен (к примеру, для подтягивающего резистора).
  • bool update()
    
    • Библиотека Bounce не использует прерывания, поэтому перед считыванием значений с объекта его нужно «обновить», и делать это нужно как можно чаще. То есть ее нужно вызвать в блоке loop(), но не более одного раза. Если состояние контакта поменялось, функция update() обновляет объект и возвращает true («1»), а если нет, то false («2»).
  • bool read()
    
    • Считывает состояние обновленного контакта.
  • bool fell()
    
    • Возвращает true, если сигнал контакта переключился с HIGH на LOW.
  • bool rose()
    
    • Возвращает true, если сигнал контакта переключился с LOW на HIGH.
  • bool risingEdge()
    
    • Устаревший аналог rose(). Для совместимости с Bounce 1.
  • bool fallingEdge()
    
    • Устаревший аналог fell(). Для совместимости с Bounce 1.
  • Bounce(uint8_t pin, unsigned long interval_millis)
    
    • Устарела. Создает экземпляр класса Bounce, подключает контакт и задает интервал для interval_millis. Для совместимости с Bounce 1.

Алгоритмы

Интервал устойчивости. По умолчанию библиотека использует для устранения дребезга именно этот алгоритм. Он проще для понимания и устраняет нежелательный шум.

Интервал блокировки. Этот альтернативный метод устранения дребезга активируется, если задать в файле «Bounce.h» строчку

#define BOUNCE_LOCK_OUT

Этот метод гораздо чувствительней, но шума не устраняет.

Примеры

  • Bounce - Устранение дребезга при нажатии на кнопку (вариант с одной кнопкой)
  • Bounce2Buttons - Устранение дребезга при нажатии на кнопку (вариант с двумя кнопками)
  • Change - Определение перехода из HIGH в LOW
  • Duration - Определение продолжительности нажатия на кнопку
  • Retrigger - Перезапуск события

См.также

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