Галерея проектов
Любой проект можно открыть, запустить и сделать своей копией. У каждого примера есть разбор: что на схеме, какие библиотеки нужны и что делает код.
Мигание светодиодом
Самый первый скетч: вывод переключается раз в секунду. С него начинается проверка того, что сборка, прошивка и симуляция работают.
Веб-сервер: форма настроек
Форма и разбор полей через server.arg(): так прибору задают имя, яркость, пороги. Ползунок меняет скважность ШИМ — яркость видна п…
Arduino Mega: пятнадцать выводов с ШИМ
Главная причина брать Mega — не память, а выводы. ШИМ здесь на пятнадцати выводах против шести у Uno, и четыре светодиода с плавно…
Веб-сервер: лампа без перезагрузки
Страница сама спрашивает состояние и переключает лампу, не перезагружаясь. Разделение на страницу и JSON — то, с чего начинается л…
Мигание без delay()
То же мигание, но на millis(). Пока идёт delay(), процессор не может делать ничего другого — здесь может.
Arduino Nano: выводы A6 и A7, которые только читают
У Nano на два аналоговых входа больше, чем у Uno. Но digitalWrite и pinMode на них не работают вовсе — не запрещены, а физически н…
Дыхание светодиода
Та же яркость, но по синусу. Линейное изменение скважности глаз воспринимает неравномерно.
NeoPixel: адресные светодиоды
Одна линия данных на всю ленту. Цвет каждого пикселя задаётся отдельно, показывается по show().
Светофор
Конечный автомат на трёх светодиодах: состояние, длительность, переход. Основа для любой последовательности.
Бегущий огонь
Четыре светодиода и массив выводов. Первый пример, где код короче схемы.
Два светодиода по очереди
Два вывода и противофаза. Показывает, что состояние выводов независимо.
NeoPixel: радуга по ленте
Оттенок зависит от позиции и времени — волна цвета вдоль ленты.
Веб-сервер: управление выводом
Страница с двумя кнопками и обработчики маршрутов. Кнопка «Веб-интерфейс» над схемой открывает её в отдельном окне — как если бы в…
Плавное разгорание (ШИМ)
ledcWrite и скважность: яркость задаётся долей времени, когда вывод включён.
Arduino Uno: прерывание по фронту
На Uno прерывания по фронту есть только на выводах 2 и 3 — это первое, обо что спотыкаются переносящие код с ESP32, где их можно п…
Кнопка зажигает светодиод
Прямая связь входа и выхода. Кратчайший скетч, в котором есть и то и другое.
Arduino Uno: восемь выходов из трёх проводов
Сдвиговый регистр 74HC595 на аппаратном SPI. У Uno это выводы 11 и 13 — не те, что у ESP32, и схема оттуда без правки не заработае…
Arduino Uno: кнопка со внутренней подтяжкой
Кнопка на выводе 2 без единого резистора: подтяжка включается в самом контроллере. Заодно видно, почему нажатие читается как LOW…
Игра на реакцию
Случайная задержка, вспышка, замер времени до нажатия. Всё вместе: вывод, ввод, время, случайность.
Конечный автомат
Состояния, переходы и таблица. Способ описать поведение прибора, который перестаёт помещаться в if-ы.
Arduino Uno: выводы через регистры порта
digitalWrite тратит около пятидесяти тактов на один вывод. Запись прямо в регистр порта — один такт и восемь выводов сразу. Показа…
Arduino Uno: нажал — включил, нажал — выключил
Кнопка без фиксации, а свет с фиксацией. Ловится не уровень на выводе, а момент перехода — иначе светодиод мигает всё время, пока…
NeoPixel: эффект огня
Случайное мерцание в тёплой части палитры. Простейший генеративный эффект.
Arduino Uno: два ритма без delay
Два светодиода мигают с разной частотой одновременно. С delay так не выйдет ни при каких ухищрениях — и это первое, обо что упирае…