Цифровой термометр на жесткой логике
Привет, Хабр!
В этой статье я расскажу вам, про электронный термометр с цифровой индикацией и линейной шкалой без применения микроконтроллеров и программирования.
Данный проект появился, когда очередной раз мне пришлось сменить САПР для проектирования печатных плат. Нужна была какая-то тестовая схема, чтобы изучить возможности новой для меня программы. И, как это часто бывает, в процессе я немного увлекся.
Схема разработана буквально на тех компонентах, которые болтались у меня под рукой. Она не претендует на что-то серьезное, но вполне сгодиться в качестве досуга на выходной день.
А что может получиться у скучающего схемотехника, когда нет четко сформулированного ТЗ, вы узнаете под катом.
Цифровой термометр предназначен для измерения температуры окружающего воздуха в помещениях. Диапазон измеряемых температур составляет от 0°С до 50°С с шагом в 1°С.
Отображение температуры производится на цифровом индикаторе в десятичном виде и с помощью светодиодной линейной шкалы. Также цифровой термометр позволяет регулировать яркость светодиодной индикации с помощью потенциометра.
Первую версию печатной платы я вырезал на фрезеровальном станке. О том, как я делаю печатные платы, вы можете дополнительно почитать в моем блоге.
Почему-то эта версия устройства не понравилась моим коллегам по работе. Может быть вы напишете мне в комментариях, что могло послужить причиной?
Пришлось немного изменить концепцию устройства. Печатная плата обзавелась крючком, за который ее можно повесить куда-нибудь на стенку, ну или на ручку оконной рамы.
К слову сказать, удалось добиться достаточно неплохой точности и стабильности измерений для устройства, которое «показывает погоду». В пределах одного — двух градусов показаниям верить можно. И чтобы закрепить успех, было принято решение повторить результат уже в «зеленке».
❯ Как устроена схема
Структурная схема цифрового термометра представлена на рисунке.
В основе схемы использован интегральный датчик температуры A2 TMP36 с аналоговым выходным сигналом. Чтобы выровнять диапазон выходного сигнала датчика температуры А2 с диапазоном цифрового индикатора B и линейной шкалы D, используется схема согласования A4.
Для преобразования аналогового сигнала температуры в цифровой вид схема генерирует ступенчато нарастающее напряжение. Для этого счетчик A3 накапливает 50 тактовых импульсов от генератора A1 на частоте 50Гц по количеству элементов светодиодной шкалы D2. А выходы счетчика A3 управляют напряжением на выходе схемы A5 R2R-ЦАП.
Напряжение на выходе A5 R2R-ЦАПа увеличивается с каждым тактовым импульсом на 80 мВ в диапазоне от 0В до 4В. Пятьдесят первый тактовый импульс от A1 сбрасывает схему счетчика A3, и напряжение на выходе A5 ЦАП снова начнет нарастать от 0В.
Напряжения с термодатчика A2 и с выхода ЦАП A5 поступают на вход компаратора A6, который определяет состояние входа Data сдвиговых регистров D1. Пока напряжение на выходе термодатчика A2, нормированное схемой согласования A4, ниже ступенчато нарастающего напряжения со схемы ЦАП A5, в сдвиговые регистры D1 записывается высокий уровень. После чего происходит запись сигнала низкого уровня.
Сигнал сброса Reset счетчика A3 одновременно обновляет состояние всех выходов сдвигового регистра D1. Таким образом на линейной шкале D2 формируется светящийся столбец, количество включенных светодиодов в котором эквивалентно измеренной температуре.
Для реализации цифровой индикации B в схеме использован двух разрядный семисегментный дисплей статического типа B4. Формирование цифровых значений температуры происходит с помощью двух дополнительных десятичных счетчиков B1. Первый — отсчитывает единицы, а второй — десятки градусов.
Десятичные счетчики B1 работают параллельно с двоичным счетчиком A3, который управляет схемой R2R-ЦАП A5. Схема детектирования среза B2 отслеживает переход сигнала Data на выходе компаратора A6 в схеме измерения температуры из высокого уровня в низкий, и подает импульс записи Strob на семисегментный дешифратор B3.
Управление яркостью светодиодной индикации B и D производится ШИМ на основе опорного напряжения, установленного потенциометром C1. Напряжение с потенциометра C1 сравнивается с пилообразным напряжением от генератора C2 на частоте 400Гц компаратором C3. Полученный ШИМ-сигнал управляет электронным ключом C4, который коммутирует катоды всех светодиодных индикаторов B4 и D2.
Питание схемы было решено сделать от USB. Мне показалось это удобно. Можно приладить повербанк, или просто воткнуть схему в порт компьютера.
❯ Вторая версия печатной платы
Как я и писал выше, было решено изготовить термометр в «зеленке». Я даже не смог отказать себе в удовольствии паять по иммерсионному золоту.
И только после того, как был пройден полный цикл проектирования от нескольких прототипов до первой опытной партии на «сувениры», я осознал, что схема получилась избыточной. Часть светодиодов в ней будет светиться постоянно, так как в комнате редко бывает ниже 15°С. А другая часть светодиодов наоборот включаться не будет, так как выше 35°С, ну максимум 40°С где-нибудь на юге, в помещениях тоже практически не бывает. А на улице использовать данное изделие тоже не получится, климатическое исполнение этому не способствует, да и отрицательные температуры оно показывать не обучено.
Я не стал отчаиваться, и преступил к устранению этих недостатков. В результате получился термометр с усеченной светодиодной линейной шкалой от 10°С до 30°С. Пришлось добавить еще два светодиода на случай выхода за заданные пределы температуры. Я снова вырезал печатную плату для прототипа на ЧПУ, дальше сборка, настройка, проверка…
Не спрашивайте зачем, но и эту версию я тоже собрал в «зеленке». И только после того, как работа была завершена, мои коллеги обратили внимание на то, что традиционные спиртовые комнатные термометры тоже имеют заведомо более широкий диапазон, и что это более привычно для пользователя. Вот к чему приводит отсутствие сформулированного ТЗ до начала проектных работ…
Втору версию печатной платы заказывал с обычным лужением. Печатные платы пришли с небольшим браком. Видимо при окунании платы олово, посадочное место для разъема USB оказалось снизу, и его основательно залило припоем. Пришлось прочищать все платы вручную.