Галерея проектов
Любой проект можно открыть, запустить и сделать своей копией. У каждого примера есть разбор: что на схеме, какие библиотеки нужны и что делает код.
Глубокий сон по таймеру
Основной режим для приборов на батарее: проснуться, замерить, отправить, уснуть. После пробуждения setup() начинается заново.
Датчик Холла
Встроен в кристалл ESP32, внешних деталей не нужно. Реагирует на магнитное поле обоими знаками.
Датчик влажности почвы
Аналоговый вход и обратная шкала: чем влажнее, тем меньше сопротивление и ниже показание.
Датчик движения
PIR выдаёт готовый цифровой уровень. Вся сложность — в удержании света после последнего движения.
Датчик освещённости: фоторезистор и АЦП
Фоторезистор включают в делитель с постоянным резистором: U = 3,3·R/(R+R_ф). На свету сопротивление фоторезистора падает до килоом…
Два светодиода по очереди
Два вывода и противофаза. Показывает, что состояние выводов независимо.
Дополняющий фильтр
Акселерометр шумит, гироскоп уплывает. Одна строка фильтра берёт от каждого лучшее — и объясняет, почему.
Дыхание светодиода
Та же яркость, но по синусу. Линейное изменение скважности глаз воспринимает неравномерно.
Жизнь на матрице
Игра «Жизнь» на поле 8×8 с замыканием краёв. Считается в двух буферах — иначе клетки видят соседей уже нового поколения.
Журнал на карту с отметкой времени
Часы и карта вместе: каждая запись получает время, а не «столько-то миллисекунд с включения».
Замер времени выполнения
micros() и разница до/после. Первый шаг к оптимизации — узнать, что именно медленное.
Заряд конденсатора: откуда берётся постоянная времени
Выключатель, резистор и конденсатор. При замыкании напряжение на конденсаторе растёт не сразу и не по прямой, а по экспоненте. За…
Защитный диод: куда девать ток обмотки
При размыкании цепи ток в катушке не может исчезнуть мгновенно, и напряжение на ней взлетает по закону u = L·di/dt — тем выше, чем…
Звук: мелодия по нотам
Массив частот и длительностей. Пауза между нотами нужна, иначе они сливаются.
Звук: одна нота
Пьезоизлучатель на ШИМ. Частота задаёт высоту, скважность — громкость.
Звук: сирена
Частота меняется непрерывно. Тот же приём, что у плавной яркости, но для звука.
Звуковой тракт целиком: от микрофона до динамика
Самая большая схема галереи — восемнадцать деталей, и каждый узел в ней уже знаком. Потенциометр на входе задаёт громкость, раздел…
ИК-пульт: приём кода
Приёмник ловит кадр пульта, а разбирает его блок RMT: импульсы по полмиллисекунды скетч поймать не успеет. Нажмите на кружок приём…
Игра на реакцию
Случайная задержка, вспышка, замер времени до нажатия. Всё вместе: вывод, ввод, время, случайность.
Измерение напряжения делителем
АЦП принимает максимум 3.3 В. Делитель расширяет диапазон, а коэффициент возвращается в коде.
Индикатор духоты
Три величины сводятся в одну оценку. Гистерезис в пороге — иначе индикатор мигает на границе.
Интегрирующая цепь: меандр становится треугольником
Если постоянная времени много больше периода сигнала (τ ≫ T), конденсатор не успевает зарядиться и его напряжение растёт почти лин…
Какой стороной вверх
Шесть положений кубика из знаков трёх ускорений. Простая задача, на которой видно, зачем нужен порог уверенности.
Калибровка нуля
У лежащего неподвижно датчика гироскоп показывает не ноль. Смещение снимают один раз при старте и вычитают дальше.