Статьи » Разработки
Добавить статью

Электронный термометр на Attiny 2313 с LCD дисплеем

2021-12-24 в 13:09 (последнее изменение 2022-01-24 в 17:02)

Началось все с того, что на работе мы постоянно спорили по поводу температуры и влажности в комнате, а от этого зависело использование отопительных приборов, так как аргументировать некоторым коллегам их включение без измерительного прибора было довольно сложно, я решил его собрать из подручных компонентов. Сидеть зимой при температуре в помещении ниже 19 градусов было совсем некомфортно.

Звезды совпали для создания устройства выходного дня, в столе лежит новая Attiny 2313 в DIP корпусе, DHT — 22 и 8×2 LCD 1602 дисплей. Схема электрическая принципиальная разработана в программе Dip Trace с условно бесплатной лицензией:

Для  быстрого моделирования я использовал breadboard, соединил проводники согласно схеме электрической принципиальной и принялся писать микропрограмму. Для отладки использовался LCD 16 x 2, так как у него пины расположены в один ряд и его проще соединять на монтажной плате.

Изначально я хотел сделать работу от двух сенсоров внутренний — DHT22, внешний DS18B20, но памяти программ в 1 Кб катастрофически не хватало, пришлось отказаться от идеи с внешним датчиком. В итоге написана прошивка на языке Си в среде Atmel Studio 7.0 только для работы с DHT — 22. Также в целях экономии места и средств было принято решение тактировать микроконтроллер от встроенного генератора на 8 МГц, для домашнего использования и устройства данного формата вполне приемлемо. Для этого из схемы была исключена цепочка С3, С4, Y1. Вот так выглядела отладочная модель:

 

Но постоянно загружать правки программы в реальное железо без внутрисхемного отладчика дело неблагодарное, и для ускорения процесса я создал компьютерную модель в программе Proteus 8.

Схема устройства:

После окончательных правок, микропрограмма была загружена в микроконтроллер и я наконец увидел результат:

Особенность микропрограммы, написанной на языке Си, заключается в том, что удалось необходимый функционал уместить в память объемом 1 Кб, вывод Atmel Studio показывает следующий результат:

Program Memory Usage : 1684 bytes 82,2 % Fulll
Data Memory Usage : 72 bytes 56,3 % Full

Печатная плата не проектировалась.  Сборка производилась на распаячной макетной плате, так как в этом проекте минимум соединений и необходимо было собрать устройство за пару часов.

Плата установлена в корпус KRADEX Z70. Микропрограмма написана на языке Си в Atmel Studio 7. Исходный код, схему электрическую принципиальную для Dip Trace и файл симуляции схемы можно найти в моем репозитории на GitHub.

Для программирования микроконтроллера был использован флешер USB-ASP и программа eXtreme Burner - AVR. Вы должны установить FUSE биты только для тактового генератора (внутренний 8 МГц или внешний кварцевый резонатор на 8 МГц). Остальные биты оставьте по умолчанию!

Список компонентов:

Наименование Количество, шт
WH0802A-YYH-CT 8х2LCD Display Winstar 1
Корпус KRADEX Z70 1
Датчик DHT-22 1
R1 CF-100 10K 1
R2 подстроечный резистор 3362H-1-103LF 10К 1
R3 CF-100 4.7K 1
С1 конденсатор 3362H-1-103LF 1
С2 конденсатор электролитический 330uF 10V TKR331M1AE11 1

 

Устройство проверено с несколькими термометрами, на изображении ниже термогигрометр от Xiaomi.

Расхождения между ними минимальны. Устройство питается от внешнего блока питания на 5В, разъем питания на плате применен Mini-USB. Термогигрометр работает больше года в домашних условиях и проявил себя с положительной стороны, принося пользу.

Вы также можете посетить мой Instagram и мой небольшой блог об электронике и программированию.


Не пропустите обновления! Подписывайтесь на нашу группу Вконтакте.
Так же у нас есть Telegram канал.
Вам понравился наш материал? Поделитесь с коллегами!

Просмотров: 2190. Оценка статьи: 5.0 из 5. Уже оценило 2 читателя

Об авторе - Ledrunner

More by Ledrunner

Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]