ESP32: Светодиоды
ESP32: Светодиоды — 55 готовых примеров со схемой и кодом. Откройте любой в браузере и запустите без платы и проводов.
Мигание светодиодом
Самый первый скетч: вывод переключается раз в секунду. С него начинается проверка того, что сборка, прошивка и симуляция работают.
Бегущий огонь
Четыре светодиода и массив выводов. Первый пример, где код короче схемы.
Конечный автомат
Состояния, переходы и таблица. Способ описать поведение прибора, который перестаёт помещаться в if-ы.
Бегущая строка по цепочке
Четыре модуля — это 32 столбца одного полотна. Строка едет по буферу, а на модули раскладывается по восемь столбцов.
NeoPixel: радуга по ленте
Оттенок зависит от позиции и времени — волна цвета вдоль ленты.
Игра на реакцию
Случайная задержка, вспышка, замер времени до нажатия. Всё вместе: вывод, ввод, время, случайность.
Два светодиода по очереди
Два вывода и противофаза. Показывает, что состояние выводов независимо.
Кнопка-триггер
Нажал — включилось, нажал ещё раз — выключилось. Реакция на фронт, а не на уровень.
Мигание без delay()
То же мигание, но на millis(). Пока идёт delay(), процессор не может делать ничего другого — здесь может.
Светофор
Конечный автомат на трёх светодиодах: состояние, длительность, переход. Основа для любой последовательности.
Сигнал перегруза
Порог с гистерезисом и усреднением. Заодно — что делает power_down и зачем он нужен на батарее.
Матрица 8×8: первая точка
Микросхема после подачи питания выключена, и это первое, обо что спотыкаются. Дальше — точки, строки и вся матрица.
Сигнал о перегреве
Порог с гистерезисом поверх датчика: светодиод и зуммер срабатывают, когда температура выходит за границу.
NeoPixel: шкала уровня
Лента как линейный индикатор: зелёный, жёлтый, красный по мере роста значения.
Датчик движения
PIR выдаёт готовый цифровой уровень. Вся сложность — в удержании света после последнего движения.
Жизнь на матрице
Игра «Жизнь» на поле 8×8 с замыканием краёв. Считается в двух буферах — иначе клетки видят соседей уже нового поколения.
Индикатор духоты
Три величины сводятся в одну оценку. Гистерезис в пороге — иначе индикатор мигает на границе.
Кнопка зажигает светодиод
Прямая связь входа и выхода. Кратчайший скетч, в котором есть и то и другое.
Матрица: рисунок и мигание
Картинка хранится восемью байтами — по байту на строку. Так её удобно и рисовать в коде, и отправлять.
Ночник
Темнее — ярче. Обратная пропорция и гистерезис, чтобы лампа не моргала на границе.
Семисегментный: счётчик
Та же микросхема, другой индикатор. Цифры рисует она сама — если включить знакогенератор.
Термометр на индикаторе
Показать -3.7°C на семисегментном индикаторе: знак, десятые и буква. Буквы C знакогенератор не знает — значит рисуем сегментами са…
FreeRTOS: две задачи
Каждая задача со своим циклом и своей задержкой. loop() при этом остаётся третьей задачей.
NeoPixel: адресные светодиоды
Одна линия данных на всю ленту. Цвет каждого пикселя задаётся отдельно, показывается по show().