Счётчик нажатий и длинное удержание
Короткое нажатие считается, удержание дольше секунды сбрасывает счётчик.

Что понадобится
- Arduino Uno
- Кнопка
- Резистор (220 Ом)
- Светодиод (жёлтый)
Как подключить
| Откуда | Куда | |||
|---|---|---|---|---|
| Arduino Uno | D2 | → | Кнопка | 1.l |
| Кнопка | 2.l | → | Arduino Uno | GND |
| Arduino Uno | D8 | → | Резистор | 1 |
| Резистор | 2 | → | Светодиод | A |
| Светодиод | C | → | Arduino Uno | GND |
Скетч
// Считаем нажатия. Держать дольше 1 с — сброс счётчика.
const int BTN = 2;
const int LED = 8;
int count = 0;
bool lastLevel = HIGH;
unsigned long pressedAt = 0;
bool longDone = false;
void setup() {
pinMode(BTN, INPUT_PULLUP);
pinMode(LED, OUTPUT);
Serial.begin(9600);
Serial.println("Нажимайте кнопку");
}
void loop() {
bool level = digitalRead(BTN);
if (lastLevel == HIGH && level == LOW) { // нажали
pressedAt = millis();
longDone = false;
}
if (level == LOW && !longDone && millis() - pressedAt > 1000) {
count = 0;
longDone = true;
Serial.println("Сброс");
}
if (lastLevel == LOW && level == HIGH) { // отпустили
if (!longDone) {
count++;
Serial.print("Нажатий: ");
Serial.println(count);
}
}
lastLevel = level;
digitalWrite(LED, (count % 2) ? HIGH : LOW);
delay(20);
}
Коротко о детали: Кнопка
Тактовая кнопка замыкает цепь, пока её держат нажатой. Выводов четыре, но попарно они соединены внутри корпуса, так что независимых контактов всего два. Чтобы вход не ловил наводки, используют подтяжку — INPUT_PULLUP или резистор на питание.
Ещё примеры с деталью «Кнопка»
- Кнопка включает светодиодКнопка на D2 с внутренней подтяжкой: нажатие даёт LOW.Начальный
- Кнопка-выключатель (с фиксацией)Светодиод переключается по НАЖАТИЮ, а не пока кнопку держат: ловим фронт.Средний
- Кнопка и RC-цепочка: заряд и разрядКонденсатор заряжается сам через резистор, а кнопка его разряжает. Заряд идёт секунду, разряд — десятую долю: всё решает сопротивление.Начальный
- Кнопка через транзистор: слабый ток управляет сильнымКнопка пускает в базу транзистора крошечный ток через 10 кОм, а транзистор включает светодиод — ток в сотню раз больше.Средний
- Кнопка с задержкой: светодиод гаснет не сразуКонденсатор в базе транзистора запоминает нажатие: отпустили кнопку — светодиод гаснет плавно, за секунду с лишним.Продвинутый
Попробуйте сами
Симулятор работает прямо в браузере: схему можно менять, код — править, а результат видно сразу. Бесплатно, без установки и регистрации.
Открыть «Счётчик нажатий и длинное удержание» в симуляторе