Галерея проектов
Любой проект можно открыть, запустить и сделать своей копией. У каждого примера есть разбор: что на схеме, какие библиотеки нужны и что делает код.
Arduino Uno: весы на тензодатчике
Тензодатчик отдаёт двадцать четыре разряда тактами по двум проводам. Показания в граммах получаются только после тарирования и кал…
DHT22: температура и влажность
Однопроводный протокол с собственным таймингом. Библиотека читает датчик не чаще раза в две секунды — быстрее он не отвечает.
Arduino Uno: давление, влажность и температура
Три величины с одного датчика по двум проводам. Показания уходят в монитор порта в формате плоттера — вкладка График строит по ним…
Arduino Uno: ночник с гистерезисом
Фоторезистор включает свет в темноте. Порогов два, а не один — иначе на границе освещённости лампа щёлкает по десять раз в секунду…
BME280: три величины сразу
Датчик отдаёт не градусы, а сырые числа и заводские поправки — считает библиотека. Пример показывает, что из этого получается.
LCD: термометр
Датчик и дисплей вместе. Собственный символ градуса — потому что в наборе LCD его нет.
Парктроник
Чем ближе препятствие, тем чаще писк. Расстояние превращается в период — приём, который работает и без дисплея.
Термометр на индикаторе
Показать -3.7°C на семисегментном индикаторе: знак, десятые и буква. Буквы C знакогенератор не знает — значит рисуем сегментами са…
Ультразвук: медианный фильтр
Одиночный ложный отсчёт у сонара — норма. Медиана из трёх его выбрасывает, среднее — нет.
Барометр: тенденция за три часа
Погоду предсказывает не давление, а его изменение. Кольцевой буфер и разность с отсчётом трёхчасовой давности.
Минимум и максимум за сеанс
Накопление статистики без массива: достаточно двух переменных и первого замера.
Ночник
Темнее — ярче. Обратная пропорция и гистерезис, чтобы лампа не моргала на границе.
Счётчик пересечений луча
Фоторезистор как датчик прохода. Считается фронт, а не уровень, иначе один проход даст сотню срабатываний.
Термометр с буквой
Показать -3.7C на четырёх разрядах: знак, десятые и буква. Сегменты приходится задавать руками.
Ультразвук: измерение расстояния
Импульс 10 мкс на TRIG, длительность ответа на ECHO. Расстояние — это время полёта, делённое пополам.
Arduino Uno: дальномер HC-SR04
Расстояние измеряется временем полёта звука. Без библиотеки: весь датчик — это импульс на TRIG и замер длины ответа на ECHO функци…
MPU6050: шесть чисел
Три ускорения, три угловые скорости и температура кристалла. И первое, о что все спотыкаются: датчик после включения спит.
Авиагоризонт на TFT
Наклон рисуется линией горизонта на цветном экране: земля снизу, небо сверху, и всё это поворачивается вместе с датчиком.
Дополняющий фильтр
Акселерометр шумит, гироскоп уплывает. Одна строка фильтра берёт от каждого лучшее — и объясняет, почему.
Индикатор духоты
Три величины сводятся в одну оценку. Гистерезис в пороге — иначе индикатор мигает на границе.
Метеостанция с журналом
Датчик, часы и карта вместе: раз в минуту строка в файл, имя файла — из даты.
Режим по требованию и экономия
Датчик умеет спать между измерениями. Разница режимов и то, чем за неё платят.
Тара и отрицательный вес
Ноль весов — это не ноль датчика. Что происходит, когда груз снимают после тары, и почему это нормально.
Точка росы и запотевание
Точку росы датчик не измеряет — её считают из температуры и влажности. Формула Магнуса и проверка «стекло запотеет».