02. Управление внешними объектами
Светодиоды, резисторы, RGB-модуль и макетная плата
Тема: Подключение внешних светодиодов и RGB-модуля к макетной плате. Правила подключения. Использование #define для номеров пинов.
Цель: перейти от управления встроенным светодиодом к управлению внешними объектами; научить пользоваться макетной платой, правильно подключать светодиоды и RGB-модуль, использовать константы для пинов, чтобы все объекты работали одновременно.
Оборудование: Arduino UNO, USB-кабель, макетная плата, провода, светодиоды (красный, жёлтый, синий), резисторы 220 Ом, RGB-модуль.
Ход урока
1. Повторение и переход к внешним объектам (5 мин)
- На прошлом уроке управляли встроенным светодиодом на плате.
- Сегодня вынесем управление наружу — подключим свои светодиоды и RGB-модуль. Arduino будет управлять внешними объектами.
- Вспомнить:
setup(), loop(), pinMode, digitalWrite, HIGH, LOW, delay.
2. Знакомство с макетной платой (breadboard) (10 мин)
- Макетная плата (от англ. breadboard — «доска для хлеба», исторически на таких досках собирали схемы) — это плата для сборки схем без пайки.
- Как она устроена:
- Крайние длинные ряды (обычно помечены
+ и −) — это шины питания. Все отверстия в одном длинном ряду соединены между собой. Обычно + подключают к 5V, − к GND.
- Центральные короткие ряды (по 5 отверстий) — соединены горизонтально. Пять отверстий в одном ряду — это одна общая точка.
- Центральный жёлоб разделяет плату на две половины. Через него перекидывают микросхемы, чтобы ножки не замыкались.
- Как пользоваться:
- Питание: с Arduino 5V → на шину
+, с GND → на шину −.
- Светодиод вставляем ножками в разные горизонтальные ряды (ножки не должны попадать в один ряд).
- Резистор — одной ножкой в ряд со светодиодом, другой — в ряд, идущий к пину или к шине.
- Провода-перемычки соединяют нужные ряды с пинами Arduino.
- Правило: перед включением проверять, что плюс и минус не соединены напрямую.
3. Теория: внешний светодиод и резистор (5 мин)
- Светодиод — диод, который светится при прохождении тока.
- Полярность: длинная ножка — анод («+»), короткая — катод («−»).
- Без резистора светодиод сгорит. Резистор 220 Ом ставим последовательно.
- Объяснение названий:
- Светодиод — «свет» + «диод».
- Анод — от греч. anodos — «путь вверх» (плюс).
- Катод — от греч. kathodos — «путь вниз» (минус).
- Резистор — от лат. resisto — «сопротивляюсь».
4. Константы и #define (5 мин)
- В прошлом скетче писали номер пина прямо в коде:
pinMode(8, OUTPUT);. Это неудобно: если пинов много, легко запутаться.
- Лучше дать пину имя. Для этого используют
#define.
#define — от англ. define — «определять, задавать». Это команда препроцессору: «везде, где встретишь это имя, подставь это значение».
- Пример:
#define LED_R 2
#define LED_Y 3
#define LED_G 4
#define RGB_R 9
#define RGB_G 10
#define RGB_B 11
- Теперь в коде пишем
pinMode(LED_R, OUTPUT); — понятно, что это красный светодиод.
- Если поменяем проводку — достаточно изменить одну строку
#define.
- По правилам хорошего тона имена констант пишут заглавными буквами.
5. Правила подключения внешних объектов (5 мин)
- Резистор всегда между пином Arduino и светодиодом.
- Анод (длинная ножка) — к резистору, идущему к пину.
- Катод (короткая ножка) — к GND.
- Проверять полярность перед включением.
- Разные объекты подключаем к разным пинам, чтобы можно было управлять ими одновременно.
- Для RGB-модуля:
R, G, B — к отдельным цифровым пинам Arduino.
GND — к GND (для модуля с общим катодом).
+5V — к 5V (для модуля с общим анодом).
- Если модуль с общим анодом:
LOW включает цвет, HIGH выключает.
6. Схема подключения (одновременная работа) (5 мин)
- Красный светодиод → пин 2
- Жёлтый светодиод → пин 3
- Зелёный светодиод → пин 4
- RGB-модуль:
R → 9, G → 10, B → 11
- Все катоды светодиодов → GND через шину
−.
- Все резисторы 220 Ом — между пинами и анодами.

Так все объекты подключены к разным пинам и могут работать одновременно.
7. Практика 1: управление внешним светодиодом (7 мин)
#define LED_R 2
void setup() {
pinMode(LED_R, OUTPUT);
}
void loop() {
digitalWrite(LED_R, HIGH);
delay(500);
digitalWrite(LED_R, LOW);
delay(500);
}
Задание: изменить задержки: горит 2 секунды, не горит 0,5 секунды.
8. Практика 2: светофор (8 мин)
#define LED_R 2
#define LED_Y 3
#define LED_G 4
void setup() {
pinMode(LED_R, OUTPUT);
pinMode(LED_Y, OUTPUT);
pinMode(LED_G, OUTPUT);
}
void loop() {
digitalWrite(LED_R, HIGH);
delay(2000);
digitalWrite(LED_R, LOW);
digitalWrite(LED_Y, HIGH);
delay(1000);
digitalWrite(LED_Y, LOW);
digitalWrite(LED_G, HIGH);
delay(2000);
digitalWrite(LED_G, LOW);
digitalWrite(LED_Y, HIGH);
delay(1000);
digitalWrite(LED_Y, LOW);
}
9. Практика 3: RGB-модуль (8 мин)
#define RGB_R 9
#define RGB_G 10
#define RGB_B 11
void setup() {
pinMode(RGB_R, OUTPUT);
pinMode(RGB_G, OUTPUT);
pinMode(RGB_B, OUTPUT);
}
void loop() {
// Красный
digitalWrite(RGB_R, HIGH);
digitalWrite(RGB_G, LOW);
digitalWrite(RGB_B, LOW);
delay(1000);
// Зелёный
digitalWrite(RGB_R, LOW);
digitalWrite(RGB_G, HIGH);
digitalWrite(RGB_B, LOW);
delay(1000);
// Синий
digitalWrite(RGB_R, LOW);
digitalWrite(RGB_G, LOW);
digitalWrite(RGB_B, HIGH);
delay(1000);
}
Задание: получить жёлтый (R+G), голубой (G+B), фиолетовый (R+B), белый (R+G+B).
10. Практика 4: одновременная работа (5 мин)
- Соединить светофор и RGB-модуль в одном скетче.
- Пока горит красный — RGB светит красным, жёлтый — жёлтым, зелёный — зелёным.
- Так проверяем, что разные пины работают независимо.
11. Вопросы для обсуждения (5 мин)
- Как устроена макетная плата? Что такое шины питания?
- Чем внешний светодиод отличается от встроенного?
- Зачем нужен резистор?
- Что делает
#define? Почему пины лучше называть именами?
- Почему константы пишут заглавными буквами?
- Почему разные объекты подключаем к разным пинам?
- Как получить жёлтый цвет на RGB-модуле?
12. Итог и рефлексия (5 мин)
- Что нового узнали о макетной плате и внешних объектах?
- Что было самым интересным?
- Какие правила подключения запомнили?
- Домашнее задание: придумать последовательность цветов для RGB и записать её как список задержек.
Ключевые слова для запоминания
Макетная плата, breadboard, шина питания, внешний объект, светодиод, анод, катод, резистор, полярность, RGB, общий анод, общий катод, #define, константа, pinMode, digitalWrite, delay, HIGH, LOW, OUTPUT.