Skip to main content

💡 GPIO и цифровые сигналы

🎯 Цели и планируемые результаты урока

Предметные результаты:

  • Понимание принципов цифровых сигналов HIGH/LOW
  • Знание возможностей и ограничений GPIO портов ESP32
  • Навыки безопасного подключения внешних компонентов
  • Умение программировать взаимодействие кнопок и светодиодов
  • Практические навыки расчета резисторов для светодиодов
  • Создание функционального мини-проекта “Светофор”

Метапредметные результаты:

  • Развитие системного мышления при создании схем
  • Формирование навыков пошагового программирования
  • Умение применять математические знания в практических задачах
  • Развитие навыков отладки и поиска ошибок

Личностные результаты:

  • Формирование ответственного отношения к безопасности
  • Развитие творческого подхода к решению технических задач
  • Воспитание терпения и настойчивости в достижении результата

🚀 Мотивационное начало (6 минут)

“Разговор на языке единиц и нулей”

Учитель показывает светодиод, подключенный к ESP32

🤖 Демонстрация “цифрового разговора”:

ESP32 → Светодиод: "1" → Светодиод загорается
ESP32 → Светодиод: "0" → Светодиод гаснет
ESP32 → Светодиод: "1-0-1-0-1-0" → Светодиод мигает

🎭 Интерактивная демонстрация:

  • Дети становятся “цифровыми сигналами”
  • При слове “HIGH” - поднимают руки вверх
  • При слове “LOW” - опускают руки вниз
  • Учитель “программирует” класс: “HIGH-LOW-HIGH-HIGH-LOW”

🌟 Интрига урока: “Сегодня мы научимся говорить с ESP32 на его родном языке - языке единиц и нулей! И создадим настоящий светофор!”

🎯 Вызов дня: “К концу урока каждая команда создаст умный светофор, который будет управляться кнопкой, как настоящий!”

📖 Основная часть урока

Блок 1: “Мир цифровых сигналов - язык роботов” (12 минут)

🔌 “GPIO - универсальные пальцы ESP32”

Аналогия с человеческими пальцами:

👨 ЧЕЛОВЕК                    ↔    🤖 ESP32
🖐️ Пальцы рук                  ↔    📌 GPIO пины
👆 Показывает "да" (вверх)       ↔    ⬆️ HIGH (3.3В)
👇 Показывает "нет" (вниз)       ↔    ⬇️ LOW (0В)
👁️ Чувствует прикосновение      ↔    📥 INPUT (читает сигнал)
💪 Нажимает на кнопку           ↔    📤 OUTPUT (выдает сигнал)

⚡ “Цифровые сигналы - только два состояния”

Интерактивная демонстрация с выключателем:

💡 ВЫКЛЮЧАТЕЛЬ СВЕТА = ЦИФРОВОЙ СИГНАЛ

🔴 ВЫКЛЮЧЕН (0, LOW, FALSE):
- Напряжение: 0 Вольт
- Ток: не течет
- Светодиод: не горит
- На дисплее мультиметра: ~0В

🟢 ВКЛЮЧЕН (1, HIGH, TRUE):
- Напряжение: 3.3 Вольта
- Ток: течет через резистор
- Светодиод: горит
- На дисплее мультиметра: ~3.3В

❌ ПОЛУВКЛЮЧЕН - НЕ СУЩЕСТВУЕТ!
(Это аналоговые сигналы - о них позже)

🎯 “Исследование GPIO портов ESP32”

Практическое изучение возможностей:

📋 ПАСПОРТ GPIO ПИНОВ ESP32:

🔢 КОЛИЧЕСТВО: 34 пина (не все доступны!)
⚡ ЛОГИЧЕСКИЕ УРОВНИ:
   - LOW: 0В
   - HIGH: 3.3В (НЕ 5В!)
🔌 РЕЖИМЫ РАБОТЫ:
   - INPUT: читает сигналы (кнопки, датчики)
   - OUTPUT: выдает сигналы (светодиоды, реле)
   - INPUT_PULLUP: читает с внутренним подтягивающим резистором

⚠️ ОГРАНИЧЕНИЯ ПО ТОКУ:
   - Максимум на один пин: 12мА
   - Максимум на все пины: 40мА
   - ПРЕВЫШЕНИЕ = ПОЛОМКА ESP32!

🔬 Практическое измерение “Проверяем цифровые уровни”

Каждая команда исследует:

🧪 ЭКСПЕРИМЕНТ "ЦИФРОВЫЕ УРОВНИ":

Оборудование:
- ESP32 с загруженной программой
- Мультиметр в режиме постоянного напряжения
- Простая программа переключения пина

Измерения:
1. digitalWrite(pin, HIGH) → Измеряем напряжение: ___В
2. digitalWrite(pin, LOW) → Измеряем напряжение: ___В
3. Делаем вывод: HIGH = ___В, LOW = ___В

✅ РЕЗУЛЬТАТ: Убеждаемся, что HIGH = 3.3В, LOW = 0В

Блок 2: “Безопасность GPIO - защищаем ESP32” (10 минут)

⚠️ “Правила безопасности для GPIO”

История о перегруженном пине:

📖 СКАЗКА О ЖАДНОМ ПИНЕ:

Жил-был GPIO пин номер 2. Он был очень добрый и хотел помочь всем светодиодам сразу. 
"Дам вам всем максимум тока!" - сказал он.

🔴 1-й светодиод: 20мА
🟡 2-й светодиод: 20мА  
🟢 3-й светодиод: 20мА
Итого: 60мА

Но пин мог дать только 12мА! Он очень старался, нагревался, нагревался... 
И в конце концов сломался. 😢

МОРАЛЬ: Не превышай максимальный ток GPIO!

🧮 “Расчеты безопасности”

Практические вычисления:

🔢 РАСЧЕТ МАКСИМАЛЬНОГО ТОКА:

Дано:
- Напряжение GPIO: 3.3В
- Падение напряжения красного светодиода: 2.0В
- Максимальный ток GPIO: 12мА

Шаг 1: Напряжение на резисторе
U_R = 3.3В - 2.0В = 1.3В

Шаг 2: Минимальное сопротивление для безопасности
R_min = U_R / I_max = 1.3В / 0.012А = 108 Ом

Шаг 3: Выбираем стандартный резистор
Ближайший больший: 120 Ом ✅

🛡️ ПРАВИЛО: Всегда берем резистор больше расчетного!

🎯 Практическое задание “Проверка безопасности”

Каждая команда тестирует разные резисторы:

🧪 ЛАБОРАТОРИЯ БЕЗОПАСНОСТИ:

Тестируем резисторы с красным светодиодом:

| Резистор | Расчетный ток | Измеренный ток | Безопасно? |
|----------|---------------|----------------|------------|
| 68 Ом    | 19.1 мА       | ___ мА         | ❌ НЕТ     |
| 120 Ом   | 10.8 мА       | ___ мА         | ✅ ДА      |
| 220 Ом   | 5.9 мА        | ___ мА         | ✅ ДА      |
| 470 Ом   | 2.8 мА        | ___ мА         | ✅ ДА      |

ВЫВОД: Используем резисторы от 120 Ом и выше!

Блок 3: “Подключение внешнего светодиода - первая схема” (15 минут)

🔧 “Сборка безопасной схемы”

Пошаговая инструкция:

🛠️ СХЕМА "ВНЕШНИЙ СВЕТОДИОД":

Компоненты:
- ESP32
- Светодиод (любой цвет)
- Резистор 220 Ом
- 2 провода

🔗 СОЕДИНЕНИЯ:
1. GPIO 2 → Резистор 220 Ом → Анод светодиода (+)
2. Катод светодиода (-) → GND ESP32

⚠️ ВАЖНО: 
- Длинная ножка светодиода = Анод (+)
- Короткая ножка светодиода = Катод (-)
- Резистор обязательно в цепи!

💻 “Программа управления светодиодом”

Код с подробными комментариями:

// 💡 ПРОГРАММА "УПРАВЛЯЕМЫЙ СВЕТОДИОД"
// Автор: [Имя ученика]
// Урок 7: GPIO и цифровые сигналы

// 🎯 Настройки
int ledPin = 2;          // Пин для светодиода

void setup() {
  // 🏗️ НАСТРОЙКА (выполняется 1 раз)
  Serial.begin(9600);
  Serial.println("🚀 Запуск программы управления светодиодом");
  
  pinMode(ledPin, OUTPUT);    // Настраиваем пин как ВЫХОД
  Serial.println("✅ Пин настроен как OUTPUT");
}

void loop() {
  // 🔄 ОСНОВНОЙ ЦИКЛ (повторяется бесконечно)
  
  // Включаем светодиод
  Serial.println("💡 Включаем светодиод (HIGH)");
  digitalWrite(ledPin, HIGH);
  delay(1000);
  
  // Выключаем светодиод
  Serial.println("🌑 Выключаем светодиод (LOW)");
  digitalWrite(ledPin, LOW);
  delay(1000);
}

🔍 “Отладка и диагностика”

Проверочный алгоритм при проблемах:

🚨 ЧТО ДЕЛАТЬ, ЕСЛИ НЕ РАБОТАЕТ:

1️⃣ ПРОВЕРКА ПИТАНИЯ:
   □ ESP32 подключен к USB?
   □ Горит индикатор питания?

2️⃣ ПРОВЕРКА СХЕМЫ:
   □ Правильная полярность светодиода?
   □ Резистор в цепи?
   □ Все соединения надежные?

3️⃣ ПРОВЕРКА ПРОГРАММЫ:
   □ Правильный номер пина?
   □ pinMode(pin, OUTPUT) есть в setup()?
   □ Программа загружена без ошибок?

4️⃣ ПРОВЕРКА НАПРЯЖЕНИЙ:
   □ На GPIO пине HIGH = 3.3В?
   □ На GPIO пине LOW = 0В?

5️⃣ ПРОВЕРКА ТОКА:
   □ Ток через светодиод < 12мА?
   □ Резистор достаточно большой?

Блок 4: “Кнопка управляет светодиодом - интерактивность!” (12 минут)

🔘 “Подключение кнопки - делаем ввод”

Схема с кнопкой:

🔘 СХЕМА "КНОПКА + СВЕТОДИОД":

Кнопка (INPUT):
- Один контакт → GPIO 0 (встроенная кнопка BOOT)
- Используем внутренний подтягивающий резистор

Светодиод (OUTPUT):
- GPIO 2 → Резистор 220 Ом → Светодиод → GND

🧠 ЛОГИКА:
- Кнопка НЕ нажата → GPIO 0 = HIGH (3.3В)
- Кнопка НАЖАТА → GPIO 0 = LOW (0В)

💻 “Программа с кнопкой”

// 🔘 ПРОГРАММА "КНОПКА УПРАВЛЯЕТ СВЕТОДИОДОМ"

// 🎯 Настройки пинов
int ledPin = 2;        // Пин светодиода
int buttonPin = 0;     // Пин кнопки (встроенная BOOT)

void setup() {
  Serial.begin(9600);
  Serial.println("🚀 Интерактивный светодиод запущен!");
  
  pinMode(ledPin, OUTPUT);           // Светодиод - выход
  pinMode(buttonPin, INPUT_PULLUP);  // Кнопка - вход с подтяжкой
  
  Serial.println("💡 Нажимайте кнопку BOOT для управления!");
}

void loop() {
  // 📖 Читаем состояние кнопки
  int buttonState = digitalRead(buttonPin);
  
  if (buttonState == LOW) {  // Кнопка нажата
    Serial.println("🔘 Кнопка нажата → Светодиод ВКЛ");
    digitalWrite(ledPin, HIGH);
  } else {                   // Кнопка не нажата
    Serial.println("⭕ Кнопка отпущена → Светодиод ВЫКЛ");
    digitalWrite(ledPin, LOW);
  }
  
  delay(100);  // Небольшая задержка для стабильности
}

🎯 “Понимание логики INPUT_PULLUP”

Объяснение через аналогию:

🎈 АНАЛОГИЯ С ВОЗДУШНЫМ ШАРИКОМ:

🎈 INPUT_PULLUP = "Шарик на веревочке"
- Без нажатия кнопки: шарик висит ВВЕРХУ (HIGH)
- При нажатии кнопки: шарик опускается ВНИЗ (LOW)

🔌 В ЭЛЕКТРОНИКЕ:
- Внутренний резистор "подтягивает" пин к +3.3В
- Без нажатия: пин = HIGH (3.3В)
- При нажатии: пин соединяется с GND = LOW (0В)

💡 ПОЧЕМУ ТАК:
- Без подтяжки пин "болтается в воздухе"
- Может читать случайные сигналы
- Подтяжка дает стабильное состояние

Блок 5: “Мини-проект: Умный светофор” (15 минут)

🚦 “Создание настоящего светофора”

Техническое задание:

🎯 ПРОЕКТ "УМНЫЙ СВЕТОФОР":

Требования:
✅ 3 светодиода: красный, желтый, зеленый
✅ Автоматическое переключение сигналов
✅ Управление кнопкой (пешеходный переход)
✅ Реалистичные временные интервалы
✅ Сообщения в Serial Monitor

Схема подключения:
- Красный светодиод: GPIO 4 + резистор 220 Ом
- Желтый светодиод: GPIO 5 + резистор 220 Ом  
- Зеленый светодиод: GPIO 18 + резистор 220 Ом
- Кнопка: GPIO 0 (встроенная BOOT)

💻 “Программа светофора - полная версия”

// 🚦 УМНЫЙ СВЕТОФОР v1.0
// Автор: [Имя команды]
// Урок 7: GPIO и цифровые сигналы

// 🎯 Настройки пинов
int redPin = 4;      // Красный светодиод
int yellowPin = 5;   // Желтый светодиод
int greenPin = 18;   // Зеленый светодиод
int buttonPin = 0;   // Кнопка пешехода

// ⏰ Временные интервалы (в миллисекундах)
int greenTime = 5000;    // Зеленый: 5 секунд
int yellowTime = 2000;   // Желтый: 2 секунды
int redTime = 4000;      // Красный: 4 секунды

void setup() {
  Serial.begin(9600);
  Serial.println("🚦 УМНЫЙ СВЕТОФОР ЗАПУЩЕН");
  
  // Настраиваем все пины
  pinMode(redPin, OUTPUT);
  pinMode(yellowPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(buttonPin, INPUT_PULLUP);
  
  // Выключаем все светодиоды
  allLightsOff();
  
  Serial.println("✅ Светофор готов к работе!");
  Serial.println("🚶 Нажмите кнопку для вызова пешеходного сигнала");
}

void loop() {
  // 🚗 Обычный режим светофора
  normalTrafficLight();
  
  // 🚶 Проверяем кнопку пешехода
  if (digitalRead(buttonPin) == LOW) {
    pedestrianCrossing();
  }
}

// 🚦 Функция обычного режима светофора
void normalTrafficLight() {
  // 🟢 ЗЕЛЕНЫЙ СВЕТ
  Serial.println("🟢 ЗЕЛЕНЫЙ - Проезд разрешен");
  allLightsOff();
  digitalWrite(greenPin, HIGH);
  delay(greenTime);
  
  // 🟡 ЖЕЛТЫЙ СВЕТ
  Serial.println("🟡 ЖЕЛТЫЙ - Внимание!");
  allLightsOff();
  digitalWrite(yellowPin, HIGH);
  delay(yellowTime);
  
  // 🔴 КРАСНЫЙ СВЕТ
  Serial.println("🔴 КРАСНЫЙ - Стоп!");
  allLightsOff();
  digitalWrite(redPin, HIGH);
  delay(redTime);
}

// 🚶 Функция пешеходного перехода
void pedestrianCrossing() {
  Serial.println("🚶 ВЫЗОВ ПЕШЕХОДНОГО ПЕРЕХОДА!");
  
  // Быстро переключаемся на красный
  allLightsOff();
  digitalWrite(yellowPin, HIGH);
  delay(1000);
  
  allLightsOff();
  digitalWrite(redPin, HIGH);
  Serial.println("🚶 Пешеходы могут переходить!");
  delay(8000);  // Длинная пауза для пешеходов
  
  Serial.println("🚗 Пешеходный переход завершен");
}

// 💡 Функция выключения всех светодиодов
void allLightsOff() {
  digitalWrite(redPin, LOW);
  digitalWrite(yellowPin, LOW);
  digitalWrite(greenPin, LOW);
}

🎨 “Кастомизация светофора”

Творческие модификации для команд:

🎨 ВАРИАНТЫ УЛУЧШЕНИЙ:

Команда 1: "Мигающий режим"
- Желтый мигает в ночном режиме
- Добавить функцию nightMode()

Команда 2: "Звуковые сигналы"  
- Разные частоты tone() для разных сигналов
- Звук при переключении

Команда 3: "Счетчик времени"
- Показывать оставшееся время в Serial Monitor
- Обратный отсчет

Команда 4: "Двойное нажатие"
- Реакция только на двойное нажатие кнопки
- Защита от случайных нажатий

🎨 Творческое задание: “Мой уникальный светофор” (8 минут)

🚦 “Персонализация проекта”

Каждая команда создает свою версию:

🎯 ТЕХНИЧЕСКОЕ ТВОРЧЕСТВО:

1️⃣ ИЗМЕНЕНИЕ ВРЕМЕННЫХ ИНТЕРВАЛОВ:
- Быстрый светофор (для игрушечных машинок)
- Медленный светофор (для пешеходной зоны)
- Асимметричный (разное время для разных направлений)

2️⃣ ДОБАВЛЕНИЕ ЭФФЕКТОВ:
- Плавное мигание
- SOS сигнал в аварийном режиме
- "Бегущие огни"

3️⃣ ЛОГИЧЕСКИЕ УЛУЧШЕНИЯ:
- Умный режим (анализ нажатий)
- Приоритет для спецтранспорта
- Адаптивные интервалы

📊 “Документация проекта”

Создание технического паспорта:

📋 ПАСПОРТ СВЕТОФОРА
Команда: _________________ Дата: _________

🎯 НАША ВЕРСИЯ НАЗЫВАЕТСЯ: _______________

⚙️ ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ:
- Время зеленого: _____ сек
- Время желтого: _____ сек  
- Время красного: _____ сек
- Время пешеходного перехода: _____ сек

🎨 УНИКАЛЬНЫЕ ФУНКЦИИ:
1. _________________________________
2. _________________________________
3. _________________________________

🧮 РАСЧЕТЫ РЕЗИСТОРОВ:
- Красный LED (2.0В): R = (3.3-2.0)/0.02 = ___Ом
- Желтый LED (2.1В): R = (3.3-2.1)/0.02 = ___Ом
- Зеленый LED (2.2В): R = (3.3-2.2)/0.02 = ___Ом

✅ ТЕСТИРОВАНИЕ:
□ Все светодиоды работают
□ Кнопка реагирует правильно
□ Временные интервалы соблюдаются
□ Нет превышения тока GPIO

🎖️ ОЦЕНКА КОМАНДЫ: ⭐⭐⭐⭐⭐

🎪 “Демонстрация проектов”

Презентация результатов:

  • Каждая команда демонстрирует свой светофор (2 минуты)
  • Объясняет уникальные особенности
  • Показывает работу кнопки пешеходного перехода
  • Получает вопросы от других команд

📝 Рефлексия и закрепление (5 минут)

🎯 “Цифровая викторина”

Быстрые вопросы HIGH/LOW:

❓ ПОКАЖИ РУКАМИ:
1. Какой уровень HIGH? (руки вверх)
2. Сколько вольт LOW? (показать 0 пальцев)
3. Максимальный ток GPIO? (показать 12 пальцев)
4. Что означает INPUT_PULLUP? (руки вверх + указать на себя)

📊 “Лестница достижений”

🏆 Уровень 4: "Инженер" - Создал уникальный светофор с дополнительными функциями
🥇 Уровень 3: "Техник" - Собрал и запрограммировал базовый светофор
🥈 Уровень 2: "Электрик" - Подключил светодиод и кнопку, понял GPIO
🥉 Уровень 1: "Ученик" - Понимаю разницу между HIGH и LOW

💭 “Рефлексия в стиле GPIO”

Каждый ученик выбирает состояние:

  • HIGH - “Все понятно, готов к следующему уроку!”
  • LOW - “Нужно еще поработать с материалом”
  • INPUT - “Хочу узнать больше”
  • OUTPUT - “Готов научить других”

🏠 Домашнее задание

🔍 “GPIO детектив дома”

Основное задание:

  1. Поиск цифровых устройств дома

    • Найти 5 устройств с кнопками (пульты, микроволновка, стиральная машина)
    • Определить, какие сигналы они подают (звук, свет, движение)
    • Подумать, как это можно было бы сделать на ESP32
  2. Эксперименты с программой

    • Изменить временные интервалы светофора
    • Добавить свои сообщения в Serial Monitor
    • Попробовать другие комбинации светодиодов
  3. Дневник GPIO

📔 МОЙ ДНЕВНИК GPIO - УРОК 7

🎯 ГЛАВНЫЕ ОТКРЫТИЯ:
- HIGH = _____ Вольт
- LOW = _____ Вольт  
- Максимальный ток GPIO = _____ мА

💡 МОЯ ПЕРВАЯ СХЕМА:
[Нарисовать схему светодиод + резистор + ESP32]

🚦 МОЙ СВЕТОФОР:
Что особенного: ____________________
Как работает кнопка: _______________
Самая сложная часть: _______________

🚀 ИДЕИ ДЛЯ УЛУЧШЕНИЯ:
1. ________________________________
2. ________________________________
3. ________________________________

🔬 Исследовательское задание (для увлеченных):

  • Изучить другие режимы GPIO (INPUT, OUTPUT, INPUT_PULLDOWN)
  • Найти примеры использования GPIO в реальных IoT устройствах
  • Подготовить вопросы о том, как подключать более мощные устройства

🎨 Творческое задание:

  • Нарисовать схему “умного дома” с множеством GPIO устройств
  • Создать комикс “Приключения сигнала HIGH в схеме”

📊 Критерии оценивания

“Отлично” (5):

  • Понимает принципы работы цифровых сигналов HIGH/LOW
  • Правильно рассчитывает резисторы для защиты GPIO
  • Самостоятельно собирает схемы и пишет программы
  • Создает функциональный светофор с дополнительными возможностями
  • Может объяснить принцип работы INPUT_PULLUP
  • Демонстрирует творческий подход к решению задач

“Хорошо” (4):

  • Знает основы цифровых сигналов
  • Собирает схемы по инструкции
  • Программирует базовую логику кнопка-светодиод
  • Создает работающий светофор
  • Понимает необходимость ограничения тока

“Удовлетворительно” (3):

  • Имеет общее представление о GPIO
  • С помощью подключает светодиоды
  • Модифицирует готовые программы
  • Участвует в создании группового проекта

🛠️ Материалы и оборудование

Для каждой команды (3-4 человека):

  • ESP32 DevKit плата
  • 3 светодиода (красный, желтый, зеленый)
  • 3 резистора 220 Ом
  • Кнопка (или использование встроенной BOOT)
  • Макетная плата
  • Провода для соединений (разных цветов)
  • Мультиметр для проверки

Для демонстраций учителем:

  • Проектор для показа кода
  • Осциллограф для демонстрации цифровых сигналов
  • Различные светодиоды для показа падений напряжения
  • Токоизмерительные клещи для демонстрации превышения тока

Дополнительные компоненты:

  • Резисторы различных номиналов для экспериментов
  • Пьезобузер для звуковых эффектов
  • Потенциометр для будущих экспериментов
  • Светодиодная лента для продвинутых проектов

🔍 Методические заметки для учителя

Ключевые принципы урока:

  1. Безопасность GPIO - постоянно подчеркивать ограничения по току
  2. Практическая применимость - связывать с реальными устройствами
  3. Пошаговое усложнение - от простого светодиода к сложному светофору
  4. Творческий подход - поощрять модификации и улучшения

Возможные сложности:

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

Проблема: Превышение тока GPIO при параллельном подключении светодиодов Решение: Обязательные расчеты перед каждым подключением, использование мультиметра

Проблема: Сложность отладки программы светофора Решение: Пошаговое написание, начиная с простого мигания одного светодиода

Дифференциация обучения:

Для продвинутых учеников:

  • Добавление звуковых эффектов
  • Создание более сложной логики (двойное нажатие, таймеры)
  • Изучение других режимов GPIO

Для начинающих:

  • Упрощенная версия светофора (без кнопки)
  • Больше времени на понимание базовых концепций
  • Работа в паре с более опытным учеником

Связь с реальной жизнью:

  • Светофоры в городе и их логика работы
  • Кнопки в бытовых приборах
  • Индикаторы состояния в технике

Подготовка к следующему уроку:

  • Навыки работы с GPIO понадобятся для аналоговых сигналов
  • Понимание цифровых уровней - основа для работы с датчиками
  • Опыт программирования интерактивности пригодится для создания умных устройств