arduino-classes

03. Ввод сигналов, ШИМ

Кнопка, потенциометр, фоторезистор. ШИМ (analogWrite)

Тема: Считывание сигналов с кнопки, потенциометра и фоторезистора. Цифровой и аналоговый вход. ШИМ и плавная регулировка яркости.
Цель: научить детей не только управлять выводами, но и принимать информацию из внешнего мира; ввести digitalRead, analogRead, analogWrite, понятия подтяжки, делителя напряжения и ШИМ; закрепить работу с макетной платой и константами #define.
Оборудование: Arduino UNO, USB-кабель, макетная плата, провода, светодиоды (красный, жёлтый, зелёный), резисторы 220 Ом, резистор 10 кОм, кнопка, потенциометр, фоторезистор.


Ход урока

1. Повторение (5 мин)

2. Выход и вход. Цифровой и аналоговый сигнал (7 мин)

3. Кнопка и digitalRead (10 мин)

4. Практика 1: кнопка включает светодиод (8 мин)

Подключение:

Кнопка и светодиод

#define LED_R 3
#define BTN 2

void setup() {
  pinMode(LED_R, OUTPUT);
  pinMode(BTN, INPUT_PULLUP);
}

void loop() {
  int state = digitalRead(BTN);

  if (state == LOW) {
    digitalWrite(LED_R, HIGH);
  } else {
    digitalWrite(LED_R, LOW);
  }
}

Разбор нового:

Задание: добавить второй светодиод на другой пин и включать его по нажатию второй кнопки.

5. Потенциометр и analogRead (10 мин)

6. ШИМ и analogWrite (7 мин)

7. Практика 2: потенциометр плавно регулирует яркость (10 мин)

Подключение:

Потенциометр

#define LED_R 3
#define POT A0

void setup() {
  pinMode(LED_R, OUTPUT);
}

void loop() {
  int value = analogRead(POT);   // 0..1023
  int bright = value / 4;        // 0..255
  analogWrite(LED_R, bright);
}

Задание: сделать так, чтобы при повороте ручки менялся цвет RGB-модуля (например, R плавно растёт, B плавно падает).

8. Фоторезистор и делитель напряжения (8 мин)

9. Практика 3: ночник (10 мин)

Подключение:

Потенциометр

#define LED_R 3
#define LDR A1

void setup() {
  pinMode(LED_R, OUTPUT);
}

void loop() {
  int light = analogRead(LDR);

  if (light < 300) {
    digitalWrite(LED_R, HIGH);
  } else {
    digitalWrite(LED_R, LOW);
  }
}

Задание: подобрать порог так, чтобы ночник включался именно в темноте. Заменить digitalWrite на analogWrite, чтобы яркость зависела от освещённости (чем темнее — тем ярче).

10. Практика 4: одновременная работа (5 мин)

Потенциометр

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

  1. Чем вход отличается от выхода?
  2. Чем цифровой сигнал отличается от аналогового?
  3. Что такое плавающий пин и как от него избавиться?
  4. Что означает INPUT_PULLUP? Почему при нажатии читается LOW, а не HIGH?
  5. Какой диапазон значений у analogRead и analogWrite?
  6. Почему analogWrite работает не на всех пинах?
  7. Что такое делитель напряжения и зачем он нужен с фоторезистором?
  8. Что делает if ... else?

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


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

Вход, выход, INPUT, INPUT_PULLUP, подтяжка, плавающий пин, digitalRead, analogRead, analogWrite, ШИМ, PWM, АЦП, диапазон 0…1023, диапазон 0…255, int, if, else, потенциометр, фоторезистор, LDR, делитель напряжения, кнопка, BTN, POT, LDR, LED_R.