Например TDA7294

РадиоКот >Конкурсы >Поздравь Кота по-человечески 2021! >

Теги статьи: Добавить тег

Двухканальный термометр с ЖК - дисплеем

Автор: Романович Никита
Опубликовано 27.09.2021
Создано при помощи КотоРед.

Поздравляю Кота с 16-летием, желаю ему успехов и процветания. И в честь такой праздничной даты хочу подарить ему необходимое в каждом доме устройство – цифровой термометр.

Данный термометр измеряет температуру с двух датчиков, один внутренний, а другой внешний, и распаян на отдельной плате. Показания выводятся на 9-и символьный ЖКИ. Таким образом реализована возможность контроля температуры в двух точках. Питание осуществляется от батарейки типоразмера CR2032. Диапазон напряжения питания от 3 до 5 Вольт.

Общий вид платы устройства показан на рисунке ниже:

Отличительной особенностью данного термометра является применение ЖК – индикатора с мультиплексом 1:4. В качестве управляющего микроконтроллера применён 8-битный микроконтроллер фирмы Microchip с технологией nanoWatt - PIC16F684. Это позволило снизить энергопотребление в рабочем режиме до 350мкА, в ждущем режиме ток потребления мой китайский мультиметр измерить не смог. В качестве датчиков температуры используются датчики STLM75 в корпусе MSOP8. Микросхема HT1621B - драйвер ЖКИ.

Принципиальная схема:

 Принцип работы

Термометр всё время находится в спящем режиме. При нажатии кнопки SB1 микроконтроллер выходит из режима сна, будит первый датчик и считывает данные температуры, после повторяет то же самое со вторым датчиком. После преобразования данные отправляются в микросхему-драйвер ЖКИ, по истечению 3 секунд флаг прерывания от кнопки сбрасывается и микроконтроллер переходит в основной цикл программы, в котором он переводит в режим сна все датчики и драйвер ЖКИ и уходит в сон. 

Хочу рассказать подробнее про работу с микросхемой-драйвером ЖКИ. HT1621B представляет собой контроллер для LCD дисплея 32х4 с управлением памятью, и позволяет управлять мультиплексированными дисплеями с количеством сегментов до 32-х.  Она управляется по SPI интерфейсу, имеет встроенный генератор тактовой частоты и рабочее напряжение 2,4-5,2 В. Код команды для настройки микросхемы имеет вид: 0b100 хххх-хххх-х.  Для инициализации микросхемы достаточно отправить команды: SYS EN, RC256K, BIAS1/3. Команда  SYS EN - включает внутренний генератор, RC256K - выбирает источник тактового сигнала (в данном случае внутренний RC), BIAS1/3 - позволяет выбрать необходимый режим мультиплексирования ЖКИ. 

Команды для начальной инициализации драйвера (взяты из datasheet):

 Для отправки данных служит команда вида: 0b101 A5A4A3A2A1A0 D0D1D2D3, где A5A4A3A2A1A0 - указывают адрес RAM (включает нужные сегменты), D0D1D2D3 - указывают на включение нужного общего провода ЖКИ.

Организация памяти HT1621B:

 

 Резистор R7 служит для установки напряжения питания дисплея. Сопротивление резистора зависит от напряжения питания схемы и необходимого напряжения для работы ЖКИ. Так как термометр питается от 3 Вольт и напряжение питания ЖКИ то же 3 Вольта, то вместо резистора устанавливается перемычка. Если напряжение питания схемы будет 5 Вольт, то сопротивление резистора R7 необходимо выбрать в районе 30кОм. 

 В качестве датчиков температуры используются микросхемы STLM75. Они работают по интерфейсу I2C, имеют низкий рабочий ток около 125 мкА, измеряют температуру от -55 до +125 градусов с точностью измерений 0,5 градуса, напряжение питания 2,7-5,5 Вольт. Работа с этим датчиком ничем особенным не выделяется. Оцифрованное значение температуры готово уже сразу после включения питания микросхемы. Необходимо только выдержать паузу около 150 мс для проведения преобразования. Для получения данных о температуре нужно отправить команду записи с адресом микросхемы. Данная команда имеет вид: 0b1001A2A1A0 0, где A2A1A0 - адрес микросхемы, который устанавливается подключением выводов 5,6 и 7 к минусу или плюсу питания.  Затем отправляется команда чтения 0b1001000и после этого датчик отправляет 16 бит со значением температуры. Вывод 3 микросхемы DD1 можно к микроконтроллеру не подключать, он служит как выход прерывания которое срабатывает при превышении запрограммированного порога  температуры, а эта функция пока в прошивке не реализована. Но резисторы подтяжки R3 и R4 необходимо оставить, так как этот вывод имеет выход с открытым стоком. 

Конструкция устройства

Термометр выполнен на односторонней печатной плате с двумя перемычками. Плата разрабатывалась в САПР DipTrace. Также в архиве есть проект созданный в САПР AltiumDesigner. На фото выше плата имеет некоторые ошибки, в архиве они исправлены. 

Чертёж печатной платы:

Чертёж печатной платы внешнего датчика температуры:

Внешний датчик температуры подключается к основной плате проводами. 

В устройстве используется ЖКИ производства минского НПО"Интеграл" ИЖЦ 6-9/7Ф, эти индикаторы применяются в газовых счётчиках. Понятно, что не все, при желании повторения данного устройства, смогут найти необходимый ЖКИ. Но это не является проблемой. Подойдёт любой ЖКИ с нужным количеством символов. Естественно прошивку мк придётся немного переделать, исходный файл есть в архиве. В этой статье автор рассказывает о технологии приклеивания контактов к ЖКИ которые не имеют собственных контактов, поэтому можно использовать ЖКИ со старых нерабочих (или рабочих:)) калькуляторов. На фото ниже показан такой дисплей, к которому я приклеил контакты по данной технологии:

 Прошивка написана на Си в среде MPLab. Интерфейсы ISP и I2C реализованы на программном уровне. Для прошивки микроконтроллера использовался программатор Pickit3. 

Всем хорошего настроения и удачи. Если возникнут вопросы, задавайте их на форуме. 


Файлы:
Схема принципиальная
Прошивка с исходным файлом
Архив проекта в Altium
Архив проекта в DipTrace


Все вопросы в Форум.




Как вам эта статья?

Заработало ли это устройство у вас?

12 12 5