Галерея проектов
Любой проект можно открыть, запустить и сделать своей копией. У каждого примера есть разбор: что на схеме, какие библиотеки нужны и что делает код.
Arduino Mega: шина I2C переехала на 20 и 21
Схема с Uno на Mega не переносится: A4 и A5 здесь обычные аналоговые входы, а шина выведена на 20 и 21. Дисплей молчит, и в коде и…
Arduino Uno: дисплей LCD 16x2 по I2C
Два провода данных вместо шести. На Uno шина прибита к A4 и A5 — схема с ESP32 сюда не переносится, и молчащий дисплей означает им…
Arduino Uno: индикатор TM1637 на двух выводах
Четыре разряда на двух проводах. Протокол похож на I2C и им не является, поэтому выводы любые — в отличие от дисплеев, прибитых к…
LCD 16x2: первый текст
Дисплей на I2C: два провода данных вместо шести. Адрес обычно 0x27, реже 0x3F — проверяется сканером шины.
LCD: бегущая строка
Текст длиннее шестнадцати символов показывается окном, которое ползёт по строке.
LCD: меню на двух кнопках
Список пунктов, курсор и выбор. Минимальный интерфейс, из которого вырастает любой прибор.
LCD: счётчик секунд
Обновление одной строки без очистки всего экрана: мигания не будет.
LCD: термометр
Датчик и дисплей вместе. Собственный символ градуса — потому что в наборе LCD его нет.
Arduino Uno: экран OLED и его цена в памяти
SSD1306 держит картинку в ОЗУ платы: 1024 байта из 2048 у Uno. Половина памяти уходит на экран ещё до первой переменной — и это на…
OLED SSD1306: первый вывод
128x64 точки. Всё рисуется в буфер, на экран попадает по display().
OLED: анимация
Шарик, отражающийся от краёв. Скорость и координаты как состояние между кадрами.
OLED: график значения
Кольцевой буфер и столбики. Показывает не только текущее значение, но и как оно менялось.
OLED: индикатор выполнения
Рамка, заливка и проценты. Примитивы GFX: прямоугольники и текст.
OLED: крупные цифры
Перерисовка кадра целиком: очистка, вывод, display(). Так делается любая динамика.
TFT ST7735: цвет и фигуры
Цветной дисплей на аппаратном SPI. Провод DC отличает команду от данных — без него экран останется чёрным.
TM1637: четыре разряда
Индикатор на двух проводах: не I2C, хотя и похоже. Числа, ведущие нули и то, чем показ отличается от вычисления.
Авиагоризонт на TFT
Наклон рисуется линией горизонта на цветном экране: земля снизу, небо сверху, и всё это поворачивается вместе с датчиком.
Барометр: тенденция за три часа
Погоду предсказывает не давление, а его изменение. Кольцевой буфер и разность с отсчётом трёхчасовой давности.
Бегущая строка по цепочке
Четыре модуля — это 32 столбца одного полотна. Строка едет по буферу, а на модули раскладывается по восемь столбцов.
Дополняющий фильтр
Акселерометр шумит, гироскоп уплывает. Одна строка фильтра берёт от каждого лучшее — и объясняет, почему.
Жизнь на матрице
Игра «Жизнь» на поле 8×8 с замыканием краёв. Считается в двух буферах — иначе клетки видят соседей уже нового поколения.
Кухонные весы
Вес на индикаторе с округлением до грамма и подавлением дрожания последнего разряда.
Матрица 8×8: первая точка
Микросхема после подачи питания выключена, и это первое, обо что спотыкаются. Дальше — точки, строки и вся матрица.
Матрица: рисунок и мигание
Картинка хранится восемью байтами — по байту на строку. Так её удобно и рисовать в коде, и отправлять.