Термометр с матричными светодиодными индикаторами
К. АБДУКАРИМОВ, г. Шымкент, Казахстан
В этом термометре значения температуры отображаются с помощью матричных светодиодных модулей. Имеется возможность регулировки яркости индикатора и выбор дискретности показаний.
В термометре применён микроконтроллер PIC16F630-I/R Датчик температуры — DS18B20. Интервал измеряемой температуры от -55 °С до +125 °С. Погрешность её измерения — ±0,5 °С. Показания могут быть округлены до 1 °С.
На рис. 1 показан внешний вид термометра. Он закреплён на стене двусторонней липкой лентой, датчик установлен за окном в тени деревьев.
Схема термометра изображена на рис. 2. Нажатиями на кнопку SB1 увеличивают яркость индикатора, а на кнопку SB2 — уменьшают её. Всего имеются 16 градаций. При изменении яркости микроконтроллер сохраняет новое значение в своей энергонезависимой памяти. Индикатор построен на трёх матричных модулях А1—АЗ FZ0148 [1]. Каждый из них состоит из светодиодной матрицы 8x8 и микросхемы МАХ7219 [2], управляющей светодио-ш I дами по командам микроконтроллера. По линиям питания VCC и GND и сигналам управления CLK и CS модули включены параллельно (эти линии проходят от первого разъёма модуля ко второму "насквозь"), а по информационной линии — последовательно. Информация на выходе DOUT задержана относительно поступающей на вход DIN на 16 тактов, задаваемых импульсами CLK. Выход DOUT каждого модуля, кроме последнего, соединён с входом DIN следующего.

Последние 16 разрядов информации, переданной модулю, всегда находятся в сдвиговом регистре микросхемы МАХ7219. Перенос состояния входа DIN в младший разряд регистра происходит по нарастающему перепаду импульса CLK, но только при низком уровне на входе CS. При нарастающем перепаде на входе CS информация из сдвигового регистра отображается светодиодами и остаётся на них до следующего такого перепада.
В рассматриваемом устройстве низкий уровень сигнала CS устанавливается на время передачи 48 (16x3) двоичных разрядов информации, загружаемых последовательно в три модуля FZ0148. По её завершении нарастающий перепад этого сигнала разрешает вывод информации на светодиоды трём модулям одновременно. На рис. 3 представлено размещение выводимых символов на их матрицах. Установка перемычки S1 переводит устройство в режим округления показания до целого значения. В этом режиме нет необходимости в модуле АЗ, отображавшем десятые доли градуса, и его можно исключить из устройства. Если же этот модуль оставить, он станет всегда показывать 0.
Номинальное напряжение питания термометра — 9 В, однако фактически оно может находиться в интервале от 7,5 В до 25 В. Необходимое для работы прибора напряжение 5 В обеспечивает интегральный стабилизатор положительного напряжения DA1.
На рис. 4 представлен чертёж печатной платы термометра и расположения деталей на ней. Для микроконтроллера DD1 должна быть предусмотрена панель, в которую его вставляют уже запрограммированным. Модули FZ0148 устанавливают в разъёмы Х1, Х2 (А1), ХЗ, Х4 (А2) и Х5, Х6 (АЗ).
Отсутствующий на схеме разъём Х6 на плате служит только для надёжной механической фиксации модуля АЗ.
Плата со снятыми модулями показана на рис. 5. Модули FZ0148 были приобретены в разобранном виде. Штыревые колодки устанавливаемых на них разъёмов в наборе были угловыми, но при сборке я заменил их прямыми. Образовавшийся за счёт высоты разъёмов зазор между основной платой и платами модулей позволяет лучше отводить тепло от интегрального стабилизатора DA1.
Датчик температуры ВК1 помещают в металлический защищённый от проникновения влаги корпус и жгутом из трёх проводов длиной до нескольких метров соединяют с платой. Размещать датчик нужно в месте, защищённом от прямого солнечного света и удалённом от нагревательных и других приборов, выделяющих при работе много тепла.
Полный набор отображаемых символов, включая знак минуса и пробел, представлен на рис. 6, а на рис. 7 показано содержимое хранящего изображения этих символов EEPROM микроконтроллера. На каждый символ в нём отведено по четыре байта памяти. Байт по адресу ЗОН служит для хранения установленного значения яркости.
Программа микроконтроллера создана в среде PIC Simulator IDE v7.21. Считываемые с датчика ВК1 каждые 0,7 с значения температуры перед выводом на индикатор программно сглаживаются — каждое новое значение записывается в массив из четырёх двухбайтовых слов взамен самого старого. Таким образом, в этом массиве всегда находятся результаты последних четырёх измерений. Их среднее значение и выводится на индикатор.
В использованной версии среды разработки имеется возможность симулировать работу датчика DS18B20 (рис. 8), что заметно упростило отладку программы. Для организации связи микроконтроллера с устройствами с интерфейсом SPI, подобным использованному в светодиодных модулях, в среде есть набор стандартных процедур и функций.
ЛИТЕРАТУРА
1. МАХ7219 Module Dot Matrix Modules for Arduino «Control FZ0148. — URL: http://www. dhgate.com/store/product/5pcs-lot-max 7219-module-dot-matrix-modules/ 196738799.html (04/11/14).
2. Serially Interfaced, 8-Digit LED Display Drivers. — URL: http://www.adafruit.com/ datasheets/MAX7219.pdf (11 /12/14).