Добрый день, сегодня я предоставлю на суд свой вариант часов на основе Digispark Attiny85 и OLED дисплеи. Это мой первый опыт работы с данным контролером, выбрал его так он самый маленький и смог поместиться в мой корпус.
Для отображения взял Oled дисплей 128х64 I2C синий с желтым. Для корпуса использовал пластик от канцелярского планшета (он попался под руку и был треснут, поэтому разрезал его на часы).
Склеил все клеевым пистолетом.
Для установки времени подключил две кнопки, а также датчик температуры DS18B20. Собрал все на маленьком обрезке монтажной платы.
Подключение следующим образов
P0 — SDA OLED
P1 — Кнопка SET
P2 — CSL OLED
P3 — Кнопка +
P4 — DS18B20
P5 — Не подключен (RESET контролера)
Питание от маленького литиево-ионного аккумулятора.
Мой скетч не поместился вместе с загрузчиком Digispark, поэтому я записывал скетч через Arduino UNO в качестве Arduino ISP. Подробно на теме прошивки не буду останавливаться, так как в интернете полно подробных инструкций. Приведу схему подключения:
UNO — Digispark
D11 – P0
D12 – P1
D13 – P2
D10 – P5
Чтобы это можно было сделать, нужно добавить в Arduino IDE в стоке «Additional Boards Manager URLs» стоку «https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json». И через менеджер плата установить контролеры Attiny.
Пробовал много разных библиотек для работы с экраном. На мой взгляд самая удобная и рабочая на Attiny85 : TinyOzOLED. Для датчика температуры нужна библиотека OneWire.
TinyOzOled-master.rar
OneWire.rar
Attiny85_Oled_SPI_Term_2.rar
Экран маленький, поместить и время и температуры, так чтобы было видно, невозможно. Поэтому часы сменяют время показаниями температуры каждые 10 секунд.
Надеюсь вам было интересно и полезно.