Галерея проектов
Любой проект можно открыть, запустить и сделать своей копией. У каждого примера есть разбор: что на схеме, какие библиотеки нужны и что делает код.
Калибровка: из отсчётов в граммы
Коэффициент подбирается известным грузом один раз и записывается в скетч. Без него на экране будут отсчёты, а не вес.
Карта SD: чтение и запись файлов
Карта на аппаратном SPI с готовой файловой системой. На ней уже лежит README.TXT — его и читает пример.
Катушка: ток не может измениться мгновенно
В катушке ток нарастает по закону i(t) = (U/R)·(1 − e^(−t/τ)), где τ = L/R. Здесь L = 0,5 Гн и R = 50 Ом, значит τ = 0,01 с, а уст…
Кнопка зажигает светодиод
Прямая связь входа и выхода. Кратчайший скетч, в котором есть и то и другое.
Кнопка и подтягивающий резистор
Вход контроллера высокоомный: не подключённый ни к чему, он ловит наводки и читает случайные значения. Подтягивающий резистор зада…
Кнопка через прерывание
Обработчик вместо опроса. Показывает volatile и IRAM_ATTR — без них работать не будет.
Кнопка-триггер
Нажал — включилось, нажал ещё раз — выключилось. Реакция на фронт, а не на уровень.
Кнопка: чтение состояния
Подтяжка внутри контроллера и инверсия логики: нажатая кнопка даёт LOW. Первое, обо что спотыкаются все.
Кодовый замок
Ввод накапливается в строку и сравнивается с образцом. Сброс по звёздочке.
Колебательный контур: энергия ходит туда-обратно
Конденсатор и катушка обмениваются энергией: заряд перетекает в ток, ток — обратно в заряд. Частота этих колебаний равна f = 1/(2π…
Конфиг в JSON и в памяти
Настройки хранятся строкой JSON в NVS: одно поле вместо десяти ключей, и добавить новое можно не ломая старое.
Короткое замыкание и характеристика автомата
Фаза замкнута на ноль без нагрузки. Ток ограничен только сопротивлением проводки, автомат отключается мгновенно — не по тепловому…
Короткое и длинное нажатие
Одна кнопка — две команды. Различаются по длительности удержания.
Косинус фи: почему двигатель берёт больше, чем написано на шильдике
Двигатель на 1,1 кВт при косинусе 0,8 берёт из сети около 6 ампер, а не 4,8, как следовало бы из одной мощности. Разницу даёт реак…
Кухонные весы
Вес на индикаторе с округлением до грамма и подавлением дрожания последнего разряда.
Матрица 8×8: первая точка
Микросхема после подачи питания выключена, и это первое, обо что спотыкаются. Дальше — точки, строки и вся матрица.
Матрица R-2R: цифра превращается в напряжение
Резисторный ЦАП собирается всего из двух номиналов — R и 2R. Каждый следующий разряд весит вдвое меньше предыдущего, и выход равен…
Матрица: рисунок и мигание
Картинка хранится восемью байтами — по байту на строку. Так её удобно и рисовать в коде, и отправлять.
Матричная клавиатура 4x4
Шестнадцать кнопок на восьми выводах. Сканирование по строкам и чтение столбцов.
Метеостанция с журналом
Датчик, часы и карта вместе: раз в минуту строка в файл, имя файла — из даты.
Метроном
Темп задаётся потенциометром, щелчок — коротким импульсом. Пример совместной работы трёх устройств.
Мигалка на двух транзисторах: попеременно
Тот же мультивибратор, но с двумя светодиодами в коллекторах: они загораются по очереди. Период каждой половины равен t ≈ 0,7·R·C…
Мигание без delay()
То же мигание, но на millis(). Пока идёт delay(), процессор не может делать ничего другого — здесь может.
Микрофонный вход: питание и сигнал по одному проводу
Электретному микрофону нужно питание, а отдаёт он переменный сигнал — и то и другое идёт по одному проводу. Резистор подаёт постоя…