arduino-classes

02. Управление внешними объектами

Светодиоды, резисторы, RGB-модуль и макетная плата

Тема: Подключение внешних светодиодов и RGB-модуля к макетной плате. Правила подключения. Использование #define для номеров пинов.
Цель: перейти от управления встроенным светодиодом к управлению внешними объектами; научить пользоваться макетной платой, правильно подключать светодиоды и RGB-модуль, использовать константы для пинов, чтобы все объекты работали одновременно.
Оборудование: Arduino UNO, USB-кабель, макетная плата, провода, светодиоды (красный, жёлтый, синий), резисторы 220 Ом, RGB-модуль.


Ход урока

1. Повторение и переход к внешним объектам (5 мин)

2. Знакомство с макетной платой (breadboard) (10 мин)

3. Теория: внешний светодиод и резистор (5 мин)

4. Константы и #define (5 мин)

5. Правила подключения внешних объектов (5 мин)

  1. Резистор всегда между пином Arduino и светодиодом.
  2. Анод (длинная ножка) — к резистору, идущему к пину.
  3. Катод (короткая ножка) — к GND.
  4. Проверять полярность перед включением.
  5. Разные объекты подключаем к разным пинам, чтобы можно было управлять ими одновременно.
  6. Для RGB-модуля:
    • R, G, B — к отдельным цифровым пинам Arduino.
    • GND — к GND (для модуля с общим катодом).
    • +5V — к 5V (для модуля с общим анодом).
    • Если модуль с общим анодом: LOW включает цвет, HIGH выключает.

6. Схема подключения (одновременная работа) (5 мин)

Подключение светодиодов

Так все объекты подключены к разным пинам и могут работать одновременно.

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 мин)

11. Вопросы для обсуждения (5 мин)

  1. Как устроена макетная плата? Что такое шины питания?
  2. Чем внешний светодиод отличается от встроенного?
  3. Зачем нужен резистор?
  4. Что делает #define? Почему пины лучше называть именами?
  5. Почему константы пишут заглавными буквами?
  6. Почему разные объекты подключаем к разным пинам?
  7. Как получить жёлтый цвет на RGB-модуле?

12. Итог и рефлексия (5 мин)


Ключевые слова для запоминания

Макетная плата, breadboard, шина питания, внешний объект, светодиод, анод, катод, резистор, полярность, RGB, общий анод, общий катод, #define, константа, pinMode, digitalWrite, delay, HIGH, LOW, OUTPUT.