Галерея проектов
Любой проект можно открыть, запустить и сделать своей копией. У каждого примера есть разбор: что на схеме, какие библиотеки нужны и что делает код.
Тара и отрицательный вес
Ноль весов — это не ноль датчика. Что происходит, когда груз снимают после тары, и почему это нормально.
Точка росы и запотевание
Точку росы датчик не измеряет — её считают из температуры и влажности. Формула Магнуса и проверка «стекло запотеет».
Уровень: крен и тангаж
Углы считаются из вектора силы тяжести — двумя арктангенсами. Покрутите наклон в свойствах датчика и смотрите на пузырёк.
Фоторезистор: уровень освещённости
Сопротивление падает на свету. Абсолютных единиц нет — нужна калибровка по крайним точкам.
Часы на семисегментном
Часы, минуты и секунды с мигающими точками. Точка — старший разряд байта, и включается она отдельно от цифры.
Часы целиком: сеть, резерв, настройки, конфиг
Все пять библиотек вместе: время из сети, резерв в микросхеме, счётчик сверок в NVS, настройки конфигом JSON, экран.
Шагомер
Шаг — это всплеск длины вектора. Считать всплески без гистерезиса и паузы бесполезно: один шаг насчитается пятью.
Яркость и ночной режим
Восемь ступеней яркости и настоящее гашение. Ночью индикатор в спальне светит как прожектор — отсюда и пример.
HX711: сырые отсчёты
Двадцать четыре разряда тактами и признак готовности на линии данных. С этого начинается всё остальное.
NVS: настройки прибора
Строки и числа под именами. Команды из Serial меняют настройки, и они остаются после перезапуска.
Высота по давлению
Барометрическая высота: считается от давления на уровне моря, и ошибка в этом одном числе смещает всю шкалу.
Какой стороной вверх
Шесть положений кубика из знаков трёх ускорений. Простая задача, на которой видно, зачем нужен порог уверенности.
Калибровка нуля
У лежащего неподвижно датчика гироскоп показывает не ноль. Смещение снимают один раз при старте и вычитают дальше.
Калибровка: из отсчётов в граммы
Коэффициент подбирается известным грузом один раз и записывается в скетч. Без него на экране будут отсчёты, а не вес.
Кухонные весы
Вес на индикаторе с округлением до грамма и подавлением дрожания последнего разряда.
Свободное падение
Падающий датчик не чувствует силы тяжести: длина вектора уходит к нулю. На этом и строится определение падения.
Сглаживание показаний
Скользящее среднее против дрожания последнего разряда. Заодно видно, чем оно платит за гладкость.
Сервопривод по потенциометру
Ручка задаёт угол напрямую. Классический пример пропорционального управления.
Сигнал о перегреве
Порог с гистерезисом поверх датчика: светодиод и зуммер срабатывают, когда температура выходит за границу.
Температура из часов
У DS3231 внутри свой термометр — им микросхема поправляет ход кварца. Его можно читать и просто так.
Часы: поставить время и читать
Первое, с чего начинается любой скетч с часами: проверить, шли ли они, и поставить время только если нет.
Яркость и выключение
У микросхемы шестнадцать ступеней яркости и настоящее выключение. И то и другое видно на схеме.
Сигнал перегруза
Порог с гистерезисом и усреднением. Заодно — что делает power_down и зачем он нужен на батарее.