Галерея проектов
Любой проект можно открыть, запустить и сделать своей копией. У каждого примера есть разбор: что на схеме, какие библиотеки нужны и что делает код.
Стабилизатор тока: светодиод не боится напряжения
Ток эмиттера задаётся напряжением на базе: I ≈ (U_б − 0,7)/R_э, и от напряжения питания он почти не зависит. Здесь стабилитрон дер…
Счётчик импульсов на прерывании
Основа для расходомера, тахометра, счётчика оборотов: считать в обработчике, считать частоту в loop().
Счётчик пересечений луча
Фоторезистор как датчик прохода. Считается фронт, а не уровень, иначе один проход даст сотню срабатываний.
Таймер обратного отсчёта
Минуты и секунды на четырёх разрядах. Кнопка запускает и сбрасывает, а отсчёт идёт по millis, а не по delay.
Тара и отрицательный вес
Ноль весов — это не ноль датчика. Что происходит, когда груз снимают после тары, и почему это нормально.
Температура из часов
У DS3231 внутри свой термометр — им микросхема поправляет ход кварца. Его можно читать и просто так.
Термистор NTC
Уравнение Стейнхарта–Харта в упрощённой форме: сопротивление в градусы через бета-коэффициент.
Термометр на индикаторе
Показать -3.7°C на семисегментном индикаторе: знак, десятые и буква. Буквы C знакогенератор не знает — значит рисуем сегментами са…
Термометр с буквой
Показать -3.7C на четырёх разрядах: знак, десятые и буква. Сегменты приходится задавать руками.
Точка росы и запотевание
Точку росы датчик не измеряет — её считают из температуры и влажности. Формула Магнуса и проверка «стекло запотеет».
Трёхфазный ввод: распределение нагрузки и перекос фаз
Три фазы заводят туда, где одной не хватает: дом, мастерская, дача с электрокотлом. Нагрузка делится по фазам руками, и делится вс…
Трёхфазный двигатель: почему он не нагружает ноль
Три обмотки, соединённые звездой, сходятся в общей точке, к нулю сети не присоединённой. При исправных обмотках сумма трёх токов в…
Уровень: крен и тангаж
Углы считаются из вектора силы тяжести — двумя арктангенсами. Покрутите наклон в свойствах датчика и смотрите на пузырёк.
Усреднение по времени
Экспоненциальное сглаживание: одна переменная вместо буфера, коэффициент задаёт инерцию.
Файл во внутренней памяти
SPIFFS даёт обычные файлы поверх флеша: открыть, дописать, прочитать.
Фильтр верхних частот: конденсатор впереди
Поменяем резистор и конденсатор местами — получится фильтр верхних частот с той же частотой среза f = 1/(2π·R·C). Постоянную соста…
Фильтр второго порядка: крутизна вдвое больше
Два RC-звена подряд дают спад не двадцать децибел на декаду, а сорок: за срезом амплитуда падает уже не в десять раз на декаду, а…
Форматирование вывода
Ширина поля, знаки после запятой, шестнадцатеричный вид. Читаемый лог экономит куда больше времени, чем кажется.
Фоторезистор: уровень освещённости
Сопротивление падает на свету. Абсолютных единиц нет — нужна калибровка по крайним точкам.
Частота процессора и потребление
Понижение частоты снижает ток. Видно и по времени выполнения одной и той же работы.
Частота среза: где фильтр отдаёт половину мощности
У RC-фильтра нижних частот есть характерная точка — частота среза f = 1/(2π·R·C). На ней выходное напряжение составляет 1/√2 ≈ 0,7…
Часы на семисегментном
Часы, минуты и секунды с мигающими точками. Точка — старший разряд байта, и включается она отдельно от цифры.
Часы с мигающим двоеточием
Отдельного двоеточия у индикатора нет: это старший разряд второй цифры. Отсюда и способ им мигать.
Часы целиком: сеть, резерв, настройки, конфиг
Все пять библиотек вместе: время из сети, резерв в микросхеме, счётчик сверок в NVS, настройки конфигом JSON, экран.