Галерея проектов
Любой проект можно открыть, запустить и сделать своей копией. У каждого примера есть разбор: что на схеме, какие библиотеки нужны и что делает код.
Сравнение фильтров
Скользящее среднее, экспоненциальное и медиана на одних данных. Видно, чем они отличаются на выбросах.
Arduino Uno: два ритма без delay
Два светодиода мигают с разной частотой одновременно. С delay так не выйдет ни при каких ухищрениях — и это первое, обо что упирае…
Arduino Uno: мигание встроенным светодиодом
Первый скетч на Uno. Светодиод припаян к плате на выводе 13 — подключать ничего не нужно, и это лучший способ проверить, что сборк…
NeoPixel: шкала уровня
Лента как линейный индикатор: зелёный, жёлтый, красный по мере роста значения.
OLED SSD1306: первый вывод
128x64 точки. Всё рисуется в буфер, на экран попадает по display().
Serial: разбор команд
Команда и аргумент, разделённые пробелом. Отсюда вырастает консоль прибора.
Время по NTP
Часов реального времени у ESP32 нет — время берётся из сети и дальше идёт от системного счётчика.
Датчик Холла
Встроен в кристалл ESP32, внешних деталей не нужно. Реагирует на магнитное поле обоими знаками.
Двухклавишный выключатель на две группы света
Одна фаза приходит на выключатель, две уходят на разные светильники. Так делают люстру с раздельным включением рожков — и так же э…
Звуковой тракт целиком: от микрофона до динамика
Самая большая схема галереи — восемнадцать деталей, и каждый узел в ней уже знаком. Потенциометр на входе задаёт громкость, раздел…
Метроном
Темп задаётся потенциометром, щелчок — коротким импульсом. Пример совместной работы трёх устройств.
Мотор через реле и обратный диод
Реле включает мотор, а параллельно катушке реле стоит диод. В модели он ничего не меняет, и это честно сказано в разборе: обратный…
Потенциометр: чтение АЦП
analogRead и 12 бит разрешения. Значение 0…4095 на всю шкалу.
Предохранитель и короткое замыкание
Рабочая цепь с предохранителем на 5 А и вторым тумблером, который замыкает лампу накоротко. Пока он разомкнут — всё исправно; замк…
Пуск двигателя: почему автомат ставят характеристики D
Пока ротор стоит, обмотка двигателя — это почти закороченный трансформатор: ток в шесть раз выше рабочего, косинус фи около трёх д…
Сведения о чипе
Ревизия, число ядер, объём флеша, MAC-адрес, свободная память. Первое, что стоит вывести в незнакомом железе.
Случайные числа
esp_random() берёт энтропию из аппаратного генератора. random() без засева даёт одну и ту же последовательность.
Трёхфазный ввод: распределение нагрузки и перекос фаз
Три фазы заводят туда, где одной не хватает: дом, мастерская, дача с электрокотлом. Нагрузка делится по фазам руками, и делится вс…
Arduino Uno: переключатель режимов
Переключатель на три вывода: средний идёт на плату, крайние на землю и питание. От кнопки отличается тем, что положение держит сам…
Arduino Uno: плавная яркость и выводы с ШИМ
analogWrite работает не на всяком выводе: на Uno ШИМ есть только на шести. Пример показывает разницу — на одном светодиоде яркость…
FreeRTOS: сигнал из прерывания
Обработчик должен быть коротким. Он лишь отдаёт семафор, а работу делает задача.
NVS: сохранение рекордов
Запись только при изменении. Ресурс флеша конечен, и переписывать одно и то же в цикле не стоит.
OLED: анимация
Шарик, отражающийся от краёв. Скорость и координаты как состояние между кадрами.
RGB: перебор цветов
Три канала ШИМ на один светодиод. Показывает, что цвет — это три независимые яркости.