Галерея проектов
Любой проект можно открыть, запустить и сделать своей копией. У каждого примера есть разбор: что на схеме, какие библиотеки нужны и что делает код.
Термометр с буквой
Показать -3.7C на четырёх разрядах: знак, десятые и буква. Сегменты приходится задавать руками.
Arduino Uno: часы реального времени
millis считает от включения и обнуляется при сбросе. Часам нужна микросхема со своей батарейкой — и она же объясняет, зачем в схем…
TimeLib и часы: кто кого сверяет
setSyncProvider: библиотека сама раз в пять минут спрашивает время у микросхемы. Одна строка вместо ручной сверки.
Высота по давлению
Барометрическая высота: считается от давления на уровне моря, и ошибка в этом одном числе смещает всю шкалу.
Настольные часы на OLED
Часы и экран на одной шине I2C: два устройства, два провода. Экран перерисовывается только когда сменилась секунда.
Обратный отсчёт до срока
Разность двух моментов времени: RTClib считает её сама, и переносы через сутки и месяцы считать руками не надо.
Расписание: свет по часам
Включать нагрузку в заданные часы. Проверка написана так, чтобы работать и на промежутке через полночь.
Свободное падение
Падающий датчик не чувствует силы тяжести: длина вектора уходит к нулю. На этом и строится определение падения.
Сглаживание показаний
Скользящее среднее против дрожания последнего разряда. Заодно видно, чем оно платит за гладкость.
Сеть как источник, часы как резерв
Сеть точнее, но её может не быть. Микросхема всегда на месте, но уходит. Правильная схема — сверять первым вторым.
Температура из часов
У DS3231 внутри свой термометр — им микросхема поправляет ход кварца. Его можно читать и просто так.
Точка росы и запотевание
Точку росы датчик не измеряет — её считают из температуры и влажности. Формула Магнуса и проверка «стекло запотеет».
Часы на семисегментном
Часы, минуты и секунды с мигающими точками. Точка — старший разряд байта, и включается она отдельно от цифры.
Часы с мигающим двоеточием
Отдельного двоеточия у индикатора нет: это старший разряд второй цифры. Отсюда и способ им мигать.
Часы: поставить время и читать
Первое, с чего начинается любой скетч с часами: проверить, шли ли они, и поставить время только если нет.
Шагомер
Шаг — это всплеск длины вектора. Считать всплески без гистерезиса и паузы бесполезно: один шаг насчитается пятью.
Будильник на DS3231 и энкодере
Время на индикаторе TM1637, будильник настраивается одной ручкой: нажатие — часы, минуты, выход; долгое нажатие — включить или вык…
Будильник-рассвет: DS3231 будит светом NeoPixel
За полчаса до звонка лента медленно разгорается от тёмно-красного к тёплому белому — просыпаться на свет легче, чем на звук. В пок…
Метеостанция в браузере: BME280 и живой график на странице
Страница целиком лежит в прошивке: раз в пять секунд она забирает /data в JSON и перерисовывает график температуры и влажности обы…
Сейф с кодом: клавиатура, сервозамок и OLED
Код набирается на клавиатуре, «#» — ввод, «*» — стереть. Верный код отводит ригель сервоприводом на пять секунд. Три ошибки подряд…
Электронный кубик: встряхни — и выпадет число
Акселерометр в покое показывает ровно 1 g — это притяжение Земли. Встряхнули — модуль ускорения скачет выше полутора g, грани на м…