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