Галерея проектов
Любой проект можно открыть, запустить и сделать своей копией. У каждого примера есть разбор: что на схеме, какие библиотеки нужны и что делает код.
Мигание светодиодом
Самый первый скетч: вывод переключается раз в секунду. С него начинается проверка того, что сборка, прошивка и симуляция работают.
Веб-сервер: форма настроек
Форма и разбор полей через server.arg(): так прибору задают имя, яркость, пороги. Ползунок меняет скважность ШИМ — яркость видна п…
Веб-сервер: лампа без перезагрузки
Страница сама спрашивает состояние и переключает лампу, не перезагружаясь. Разделение на страницу и JSON — то, с чего начинается л…
Мигание без delay()
То же мигание, но на millis(). Пока идёт delay(), процессор не может делать ничего другого — здесь может.
Дыхание светодиода
Та же яркость, но по синусу. Линейное изменение скважности глаз воспринимает неравномерно.
NeoPixel: адресные светодиоды
Одна линия данных на всю ленту. Цвет каждого пикселя задаётся отдельно, показывается по show().
Светофор
Конечный автомат на трёх светодиодах: состояние, длительность, переход. Основа для любой последовательности.
Бегущий огонь
Четыре светодиода и массив выводов. Первый пример, где код короче схемы.
Два светодиода по очереди
Два вывода и противофаза. Показывает, что состояние выводов независимо.
NeoPixel: радуга по ленте
Оттенок зависит от позиции и времени — волна цвета вдоль ленты.
Веб-сервер: управление выводом
Страница с двумя кнопками и обработчики маршрутов. Кнопка «Веб-интерфейс» над схемой открывает её в отдельном окне — как если бы в…
Плавное разгорание (ШИМ)
ledcWrite и скважность: яркость задаётся долей времени, когда вывод включён.
Кнопка зажигает светодиод
Прямая связь входа и выхода. Кратчайший скетч, в котором есть и то и другое.
Игра на реакцию
Случайная задержка, вспышка, замер времени до нажатия. Всё вместе: вывод, ввод, время, случайность.
Конечный автомат
Состояния, переходы и таблица. Способ описать поведение прибора, который перестаёт помещаться в if-ы.
NeoPixel: эффект огня
Случайное мерцание в тёплой части палитры. Простейший генеративный эффект.
NeoPixel: шкала уровня
Лента как линейный индикатор: зелёный, жёлтый, красный по мере роста значения.
Serial: разбор команд
Команда и аргумент, разделённые пробелом. Отсюда вырастает консоль прибора.
Метроном
Темп задаётся потенциометром, щелчок — коротким импульсом. Пример совместной работы трёх устройств.
RGB: перебор цветов
Три канала ШИМ на один светодиод. Показывает, что цвет — это три независимые яркости.
RGB: плавная радуга
Перевод HSV в RGB. Один параметр — оттенок — вместо трёх яркостей.
Кнопка-триггер
Нажал — включилось, нажал ещё раз — выключилось. Реакция на фронт, а не на уровень.
Переключатель режимов
Тумблер задаёт режим, а не событие: состояние читается когда угодно.
Потенциометр управляет яркостью
Связка вход-выход через map(). Первый пример, где приборы взаимодействуют.