Галерея проектов
Любой проект можно открыть, запустить и сделать своей копией. У каждого примера есть разбор: что на схеме, какие библиотеки нужны и что делает код.
Уровень: крен и тангаж
Углы считаются из вектора силы тяжести — двумя арктангенсами. Покрутите наклон в свойствах датчика и смотрите на пузырёк.
Усреднение по времени
Экспоненциальное сглаживание: одна переменная вместо буфера, коэффициент задаёт инерцию.
Файл во внутренней памяти
SPIFFS даёт обычные файлы поверх флеша: открыть, дописать, прочитать.
Форматирование вывода
Ширина поля, знаки после запятой, шестнадцатеричный вид. Читаемый лог экономит куда больше времени, чем кажется.
Фоторезистор: уровень освещённости
Сопротивление падает на свету. Абсолютных единиц нет — нужна калибровка по крайним точкам.
Частота процессора и потребление
Понижение частоты снижает ток. Видно и по времени выполнения одной и той же работы.
Часы на семисегментном
Часы, минуты и секунды с мигающими точками. Точка — старший разряд байта, и включается она отдельно от цифры.
Часы с мигающим двоеточием
Отдельного двоеточия у индикатора нет: это старший разряд второй цифры. Отсюда и способ им мигать.
Часы целиком: сеть, резерв, настройки, конфиг
Все пять библиотек вместе: время из сети, резерв в микросхеме, счётчик сверок в NVS, настройки конфигом JSON, экран.
Часы: поставить время и читать
Первое, с чего начинается любой скетч с часами: проверить, шли ли они, и поставить время только если нет.
Шаговый двигатель
Полношаговая последовательность на четырёх выводах. Скорость ограничена паузой между шагами.
Шагомер
Шаг — это всплеск длины вектора. Считать всплески без гистерезиса и паузы бесполезно: один шаг насчитается пятью.
Яркость и выключение
У микросхемы шестнадцать ступеней яркости и настоящее выключение. И то и другое видно на схеме.
Яркость и ночной режим
Восемь ступеней яркости и настоящее гашение. Ночью индикатор в спальне светит как прожектор — отсюда и пример.
NeoPixel: радуга по ленте
Оттенок зависит от позиции и времени — волна цвета вдоль ленты.
WiFi: подключение с переподключением
Соединение может пропасть в любой момент. Проверка состояния в loop() — не роскошь.
Веб-сервер: управление выводом
Страница с двумя кнопками и обработчики маршрутов. Кнопка «Веб-интерфейс» над схемой открывает её в отдельном окне — как если бы в…
Матричная клавиатура 4x4
Шестнадцать кнопок на восьми выводах. Сканирование по строкам и чтение столбцов.
Своя точка доступа
Без роутера: прибор сам раздаёт сеть и отвечает по адресу 192.168.4.1. Так делают первичную настройку.
Секундомер с сотыми
Четыре разряда под секунды и сотые. Показывать сотые каждый виток нельзя — индикатор не успевает, да и глаз тоже.
Сигнал о перегреве
Порог с гистерезисом поверх датчика: светодиод и зуммер срабатывают, когда температура выходит за границу.
Ультразвук: измерение расстояния
Импульс 10 мкс на TRIG, длительность ответа на ECHO. Расстояние — это время полёта, делённое пополам.
Ультразвук: медианный фильтр
Одиночный ложный отсчёт у сонара — норма. Медиана из трёх его выбрасывает, среднее — нет.