Необычный термометр на ATtiny13 и DS18B20

В интернете можно найти большое количество схем термометров различной сложности: от самых простеньких, т.н. «показометров», до «продвинутых» систем, способных не только измерять температуру/влажность/скорость ветра но и отслеживать китайские спутники вести логи, строить графики, с последующей загрузкой на конкретный сервер и т.д. В этой статье пойдет речь о простеньком устройстве из первой упомянутой категории — «показометре». Меня натолкнуло на создание такого устройства недавно опубликованная на сайте статья с названием RGB индикатор. Прочитав эту статью тоже захотел собрать что-нибудь из категории «светящихся бесполезных красивых сувениров». В итоге, получилось то, что описано ниже.

Схема собрана на микроконтроллере ATtiny13, датчике температуры DS18B20, RGB — светодиоде и еще на нескольких компонентах. Был выбран именно этот микроконтроллер, так как  в данном случае размеры платы очень критичны. Датчик для измерения температуры — DB18B20. Он использует исключительно 1-Wire протокол – при этом формируется соединение, которое осуществляет коммуникацию на шине, используя всего один управляющий сигнал. Таким образом, у микроконтроллера осталось целых 4 свободных вывода (PB5, он же RESET, используется по своему прямому назначению).

Схема прибора представлена ниже:

Программа для микроконтроллера написана на С в среде разработки Atmel Studio 7. В архиве, прикрепленном к статье есть все необходимые файлы, а также уже скомпилированная прошивка.

Fuse-биты необходимо выставить в соответствии со скриншотом, представленным ниже:

Внешний вид устройства (3D модель):

Спасибо за внимание!

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
U1 МК AVR 8-бит ATtiny13 1 SO8
U2 Датчик температуры DS18B20 1
R1-R3 Резистор 510 Ом 1 0805
R4 Резистор 4.7 кОм 1 0805
D1 Светодиод RGB 1 5050
BT0 Кнопка 1 3 x 6 x 2.5мм