#9Новичок

Управление светодиодом кнопкой (удержание)

4.8(113)
229 собрано
Управление светодиодом кнопкой (удержание)
Как дверной звонок: свет горит, пока ты нажимаешь, и гаснет, когда отпускаешь. Arduino всё время слушает кнопку; пока она нажата, светодиод горит, а как только ты убираешь палец, он гаснет. Эта простейшая схема показывает, как плата чувствует прикосновение из внешнего мира.

Видео

Схема

Управление светодиодом кнопкой (удержание) - Circuit

Исходный код

C++ (Arduino IDE)
1// ─────────────────────────────────────────
2//   BlueGrays · bluegrays.com
3//   Управление светодиодом кнопкой (удержание)
4// ─────────────────────────────────────────
5// Светодиод горит, пока кнопка нажата, и гаснет, когда её отпускают (без
6// фиксации). Показывает чтение кнопки через digitalRead и if-else.
7//
8// Пины:
9//   D13 -> Кнопка, другая ножка к 5V
10//   D13 -> Резистор 10k к GND (стягивающий, pull-down)
11//   D7  -> Светодиод (с резистором 330 ohm)
12
13void setup() {
14  pinMode(13, INPUT);    // Вход кнопки (внешний pull-down)
15  pinMode(7, OUTPUT);    // Выход светодиода
16}
17
18void loop() {
19  if (digitalRead(13) == HIGH) {   // Кнопка нажата?
20    digitalWrite(7, HIGH);         // Нажата: светодиод вкл
21  } else {
22    digitalWrite(7, LOW);          // Отпущена: светодиод выкл
23  }
24}
25

Частые вопросы

Для чего нужен резистор 10 kΩ?

Это стягивающий резистор: когда кнопка не нажата, он притягивает пин к GND и обеспечивает стабильное чтение LOW. Без этого резистора пин «висел» бы и случайно читал HIGH или LOW, и светодиод мерцал бы сам по себе.

Можно ли подключить кнопку без резистора?

Да, `pinMode(pin, INPUT_PULLUP)` включает встроенный подтягивающий резистор Arduino. В этом случае кнопка подключается между пином и GND, а логика обратная: при нажатии читается LOW, после отпускания — HIGH.

Какие выводы кнопки использовать?

У 4-контактных кнопок два противоположных вывода уже соединены внутри. Поставь кнопку поперёк пустой канавки в центре макетной платы и используй выводы по диагонали; так ты точно выберешь правильные.

Чем режим «удержание» отличается от «вкл/выкл»?

В режиме удержания светодиод горит, только пока ты держишь кнопку. В режиме вкл/выкл (toggle) каждое нажатие меняет состояние светодиода, и он остаётся гореть даже после отпускания кнопки; для этого нужна переменная состояния.