Урок 6: Светодиод, Управляемый Кнопкой

1. О чём эксперимент?

Изучим работу кнопочного переключателя (tact switch) и научимся включать светодиод по нажатию. Принцип лежит в основе любой схемы, где требуется ручной ввод: пульты, фонарики, бытовая техника.

2. Компоненты

Кол-во

Деталь

1

Плата Arduino UNO

1

Кнопочный переключатель (tact switch)

1

LED 5 мм (красный)

1

Резистор 220 Ω — для LED

1

Резистор 10 kΩ — подтяжка кнопки к VCC

1

Макетная плата (breadboard)

6

Перемычки «папа–папа»

1

USB-кабель A-B

3. Немного теории

Тактовый переключатель

Кнопка имеет два контакта «нормально разомкнуты». Когда кнопку нажимают, контакты замыкаются — микроконтроллер считывает логический HIGH. Как только палец отпускает кнопку, пружина внутри возвращает её в исходное состояние (логический LOW).

4. Схема подключения

Подключение кнопки и LED к Arduino
  • 11 → анод LED (через резистор 220 Ω)

  • 7 → один вывод кнопки (pull-up через 10 kΩ к 5 В)

  • Второй вывод кнопки → GND

  • Катод LED → GND

5. Пример кода

button_led.ino
// Кнопка управляет светодиодом
int ledpin = 11;   // пин LED
int inpin = 7;     // пин кнопки
int val;           // переменная для считывания состояния

void setup()
{
  pinMode(ledpin, OUTPUT);  // LED как выход
  pinMode(inpin, INPUT);    // кнопка как вход
}

void loop()
{
  val = digitalRead(inpin);     // читаем кнопку
  if (val == LOW)               // нажата — контакт даёт LOW
  {
    digitalWrite(ledpin, LOW);  // выключить LED
  }
  else                          // не нажата
  {
    digitalWrite(ledpin, HIGH); // включить LED
  }
}

6. Как работает код

  • При нормально-разомкнутой кнопке на пине 7 висит подтяжка к VCC (10 kΩ) → считывается HIGH.

  • Когда кнопку нажимают, пин замыкается на GNDdigitalRead возвращает LOW.

  • В условии if меняем уровень пина LED: LOW — гасим, HIGH — зажигаем.

7. Пошаговый запуск

  1. Соберите схему, как на рисунке.

  2. Подключите Arduino, выберите плату UNO и COM-порт.

  3. Скопируйте скетч, нажмите Upload.

  4. Нажимайте кнопку — LED будет загораться и гаснуть.

8. Что может пойти не так

Симптом

Причина

Решение

LED всегда горит

Кнопка подключена к +5 В без резистора подтяжки

Проверьте цепь, добавьте 10 kΩ к VCC

LED не реагирует

Кнопка подключена неправильно, пин не тот

Подпаяйте кнопку вдоль разделительной канавки, проверьте номер пина

LED мигает хаотично

Дребезг контактов

Добавьте задержку delay(20) после чтения кнопки

9. Эксперименты

  • Вставьте второй LED на пин 10 и сделайте индикацию «кнопка нажата — красный гаснет, зелёный горит».

  • Используйте встроенный INPUT_PULLUP вместо внешнего резистора: pinMode(inpin, INPUT_PULLUP) — проще монтаж, меньше деталей.