You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
2.9 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*
Пример использования библиотеки GyverButton, все возможности в одном скетче.
*/
#define PIN 3 // кнопка подключена сюда (PIN --- КНОПКА --- GND)
#include "GyverButton.h"
GButton butt1(PIN);
// GButton butt1(PIN, HIGH_PULL, NORM_OPEN); // можно инициализировать так
int value = 0;
void setup() {
Serial.begin(9600);
butt1.setDebounce(50); // настройка антидребезга (по умолчанию 80 мс)
butt1.setTimeout(300); // настройка таймаута на удержание (по умолчанию 500 мс)
butt1.setClickTimeout(600); // настройка таймаута между кликами (по умолчанию 300 мс)
// HIGH_PULL - кнопка подключена к GND, пин подтянут к VCC (PIN --- КНОПКА --- GND)
// LOW_PULL - кнопка подключена к VCC, пин подтянут к GND
butt1.setType(HIGH_PULL);
// NORM_OPEN - нормально-разомкнутая кнопка
// NORM_CLOSE - нормально-замкнутая кнопка
butt1.setDirection(NORM_OPEN);
}
void loop() {
butt1.tick(); // обязательная функция отработки. Должна постоянно опрашиваться
if (butt1.isClick()) Serial.println("Click"); // проверка на один клик
if (butt1.isSingle()) Serial.println("Single"); // проверка на один клик
if (butt1.isDouble()) Serial.println("Double"); // проверка на двойной клик
if (butt1.isTriple()) Serial.println("Triple"); // проверка на тройной клик
if (butt1.hasClicks()) // проверка на наличие нажатий
Serial.println(butt1.getClicks()); // получить (и вывести) число нажатий
if (butt1.isPress()) Serial.println("Press"); // нажатие на кнопку (+ дебаунс)
if (butt1.isRelease()) Serial.println("Release"); // отпускание кнопки (+ дебаунс)
if (butt1.isHolded()) Serial.println("Holded"); // проверка на удержание
if (butt1.isHold()) Serial.println("Holding"); // проверка на удержание
//if (butt1.state()) Serial.println("Hold"); // возвращает состояние кнопки
if (butt1.isStep()) { // если кнопка была удержана (это для инкремента)
value++; // увеличивать/уменьшать переменную value с шагом и интервалом
Serial.println(value); // для примера выведем в порт
}
}