Скачать книгу
|
Бытовой цифровой термометр
|
||||||
|
Термометры комнатные или уличные, автомобильные или офисные используются в быту каждый день. В наши дни цифровая техника вытесняет спиртовые, пружинные и ртутные термометры. Погрешность показаний и срок эксплуатации современных цифровых термометров зависит от назначения прибора и от их производителя. Основная часть цифровых термометров производится на специализированных жидкокристаллических дисплеях, недоступных радиолюбителю. Автор собрал термометр из доступных импортных и отечественных деталей. Представленное устройство имеет универсальное бытовое применение как на улице, так и в помещении. В перспективе, если реализовать питание прибора от солнечных батарей совместно с аккумуляторами, эксплуатация термометра на улице будет достаточно длительной.
Термометр собран на основе микроконтроллера Tiny 15 и драйвера четырехразрядного семисегментного индикатора SAA1064 [20]. Микроконтроллер Tiny 15 оснащен четырехканальным 10-разрядным АЦП, Flash-памятью на 1 Кбайт, памятью EEPROM на 64 байт, шестью линиями ввода-вывода, встроенным RC-генератором, а также двумя таймерами/счетчиками.
Драйвер SAA1064 содержит интерфейс 12С, регистр-указатель, регистр управления, мультиплексор пар индикаторов и четыре регистра дешифратора семисегментных индикаторов [21].
Предел измерений температуры составляет -22°..+30° С. Прибор проектировался в наиболее дешевом варианте исполнения, поэтому точность измерения — в пределах последнего знака. Термометр можно использовать ночью, поскольку индикация температуры основана на све-тодиодах и потому очень яркая. Данные о температуре окружающей среды снимаются с терморезистора.
Температурный датчик
Терморезистор — это устройство, сопротивление которого значительно изменяется с изменением температуры. Он обладает высоким температурным коэффициентом сопротивления (ТКС) в широком диапазоне температур [22]. Различают терморезисторы с отрицательным
|
||||||
|
ТКС, сопротивление которых падает с возрастанием температуры (их часто называют термисторами), и терморезисторы с положительным ТКС, сопротивление которых увеличивается с возрастанием температуры (их называют позисторами).
Терморезисторы обоих типов изготавливают из полупроводниковых материалов. Диапазон изменения их ТКС составляет -6,5°....+70°С. Наиболее распространенные терморезисторы изготавливают на основе медно-марганцевых (ММТ), кобальто-марганцевых (КМТ) и медно-ко-бальто-марганцевых (СТЗ) оксидных полупооводников.
По конструктивному оформлению терморезисторы можно разделить на следующие категории (рис. 10.1):
• в виде цилиндрических стержней (КМТ-1, ММТ-1, КМТ-4 ММТ-4);
• в виде дисков (СТ1-17,' СТЗ-17, СТ5-1);
• в виде плоских прямоугольников (СТЗ-23);
• в виде миниатюрных бусинок (СТ1-18, СТ1-19) [22].
![]() Автор выбрал терморезистор ММТ-1 сопротивлением 9,0 кОм при 25°С.
У терморезисторов также есть недостатки, которые необходимо учитывать при выборе. Первый недостаток — это инерционность изменения сопротивления. Автор проделал следующий эксперимент. Терморезистор ММТ-1 на 9,0 кОм был помещен в морозильник и подключен к измерительному устройству, которое сканировало сопротивление каждые 200 мс. Данные передавались на компьютер и записывались в файл . dat, а затем были преобразованы в формат таблицы Excel (табл. 10.1), и на их основании был построен график выхода на температуру комнаты (рис. 10.2).
|
||||
![]() |
||||||
|
При выходе на постоянные показания, что соответствует примерно 0°С (сопротивление 30,44 кОм) терморезистор быстро перемещен из морозилки в комнату с температурой 20°С (сопротивление 11,8кОм). Можно сделать вывод, что для установки точных значений температуры необходимо около двух минут. Это объясняет неверные (некорректные) показания температуры в случаях, когда термометр был помещен на открытую местность и при этом дул ветер, или термометр быстро перемещали из комнаты на кухню или в ванную, где температура значительно отличается. Показания прибора будут явно некорректны, поскольку сопротивление терморезистора изменяется очень медленно.
Второй недостаток терморезисторов — это шумы. Амплитуда шумов, создаваемая терморезистором, может достигать больших значений, тогда как АЦП микроконтроллера быстро фиксирует эти данные с термодатчика. В результате показания термометра будут некорректны.
Эти недостатки, а также большой разброс параметров при изготовлении терморезисторов, ограничивают их массовое применение. Однако возможности микроконтроллеров (имеется ввиду не только Тту 15) неограниченны, поскольку данные можно не только измерять, но и обрабатывать с помощью математического анализа, использовав методы интеграции и интерполяции, а в крайних случаях — коррекцию по эталону.
Схема термометра
Схема термометра (рис. 10.3) имеет питание +4,5 В от трех батарей 1,5 В типа А А (относительно общей "земли") и ток потребления не более 60 мА.
|
||||||
![]() |
||||||
|
Канал измерения имеет стабилизированное питание +2,6 В от цепочки R5-D1 и состоит из измерительного моста TR1/R2/R3/R4/R7/R8 и операционного усилителя IC3, выполняющего роль сумматора. Для устранения смещения нуля операционного усилителя IC3 настраивается баланс R6 и выполняется коррекция по току нуля R9.
Операционный усилитель КР140УД1208 может работать при напряжении питания от +2,4 В до +18,0 В, поэтому питание ОУ не стабилизировано. В состав микроконтроллера Tiny 15 входит 10-разрядный АЦП, который коммутируется встроенным четырехканальным мультиплексором при настройке АЦП. На входе АЦП внутри микроконтроллера присутствует конденсатор, который компенсирует потери при считывании данных в АЦП, поэтому после операционного усилителя нет конденсатора, выполняющего роль компенсатора. Микроконтроллер сохраняет работоспособность при питании +2,7 В.
|
||||||
|
Связь между драйвером SAA1064 и АЦП микроконтроллера Tiny 15 осуществляется по линии 12С [20, 24]. Протокол 12С в микроконтроллере реализован программно. Скорость передачи данных по шине 1С ограничивается частотой тактовых импульсов SCL, равной 125 кГц.
Драйвер сохраняет работоспособность при напряжении питания +4,0 В. В случае постоянного сбоя передачи данных засвечивается или моргает светодиод "ERROR". Основной причиной сбоя является низкое напряжение питания или необходимость перезапуска микроконтроллера. Для управления семисегментными индикаторами в драйвере присутствуют дешифраторы, а также схема управления мультиплексированием по два разряда четырехразрядного индикатора. Мультиплексоры могут коммутировать ток до 110 мА, но в случае применения светодиодных матриц с ультраярким свечением и снижении питания ниже нормы драйвер может выйти из строя. По этой причине для усиления по току установлены транзисторы Ql, Q2. Ток базы транзисторов при управлении ограничен в драйвере.
В драйвере реализованы команды для ступенчатой регулировки выходного тока мультиплексора, а также в него встроен собственный генератор, поэтому синхронизация необязательна. Для знака "±" выпускаются специальные индикаторные матрицы, однако, если их нет, можно использовать четыре прямоугольных светодиода.
Для отключения питания существует кнопочный выключатель S1. В перспективе микроконтроллер может выполнять дополнительную функцию проверки собственного питающего напряжения, а также коррекции данных (в рассматриваемой конструкции эта идея не реализована).
Очень важное значение для правильности показаний имеет канал измерения. Прежде всего, зависимость сопротивления терморезистора от температуры в идеале — линейная, хотя на практике наблюдаются отклонения в каждом экземпляре.
Данные с терморезистора может снимать АЦП микроконтроллера, однако автор для измерения сопротивления терморезистора выбрал мост, а также усиление сигнала разницы, что накладывает нелинейность на напряжение с выхода операционного усилителя (т.е. на получаемые данные).
Еще одной проблемой является выбор коэффициента усиления операционного усилителя (ОУ). Питание схемы ОУ имеет ограничение сверху, поскольку иПит = 4,5 В, и снизу, поскольку питание ОУ — од-
|
||||
|
нополярное. Для решения проблемы питание измерительного моста стабилизировано на уровне +2,6 В, а коэффициент усиления ОУ равен 13. Дальнейшее уменьшение коэффициента усиления приведет к искажению данных и увеличению погрешности.
Если канал измерения идеально настроен, то необходимо обратить внимание на линеаризацию полученных данных после АЦП. При этом положительная ветвь температуры имеет одну формулу линеаризации, а отрицательная — другую. В качестве базисной точки автор выбрал 0°С. Результат линеаризации данных относительно этого базиса представлен на графике в файле Расчет характеристик терморезистора . х1 б 2 (идеальная прямая с углом наклона 45°).
Данные после АЦП линеаризуются (заодно масштабируются) и преобразуются в десятичное значение. Погрешность показаний достигает 3° в верхнем и нижнем пределе измерения температуры, что вполне допустимо для бытового применения. Для улучшения полученных данных можно ввести корректировочные коэффициенты на разных участках температурного диапазона. При разряде батарей менее 4,0 В данные индикации температуры будут иметь погрешность, которая увеличивается с падением напряжения питания.
|
||||||
|
Программа
Код программы на ассемблере представлен в листинге 10.1, а шест-надцатеричный код — в листинге 10.2.
|
||||||
|
I-:_I
Структура программы упрощена и не имеет сложных логических переходов (это видно из блок-схемы на рис. 10.4). В начале программы настраивается конфигурация порта ввода-вывода. Затем несколько раз считываются данные из АЦП. Эти данные суммируются и делятся на количество раз считывания (вычисляется среднее арифметическое). Это необходимо для уменьшения погрешности измерения и устранения шумов терморезистора.
АЦП настроен на преобразование с частотой 50 кГц. Опорное напряжение для АЦП берется от вывода питания микроконтроллера. В процессе аналого-цифрового преобразования двоичное число Ъ вычисляется по уравнению Ъ = 1024*иВх/ияЕР, где иВх при 0°С составит 0,58 В, а ииа^Усс. Для Тшу15 Ъ = 14716.
После получения точных данных АЦП в программе выделяется положительное и отрицательное значение температуры.
|
||||
|
В этом действии от данных АЦП вычитается эталонное шестнадца-теричное значение 0°С = 147i6- Получившиеся положительные данные соответствуют положительной температуре, а отрицательные — отрицательной. Положительные данные линеаризуются по формуле (константы — в шестнадцатеричном коде):
Линеаризация 1 =38- 7000/илцп.
Отрицательные данные линеаризуются по формуле (константы — в шестнадцатеричном коде):
Линеаризация 2 = (иАцп - 147)/6.
Детектор нуля должен быть нолем при Детектор 0 = (иАцп - 147) (константа — в шестнадцатеричном коде).
Подпрограмма деления длится 800 мкс при тактовой частоте микроконтроллера 1,6 МГц. После линеаризации получаем соответствующий масштаб полученных данных, которые преобразуются в данные о реальной температуре в десятичном коде (с помощью таблицы hex-bed по адресу prog2).
На следующем этапе данные разбиваются поразрядно. Для работы семисегментного индикатора двоично-десятичное значение преобразуется в семисегментный код с помощью таблицы в конце программы (по адресу ргодЗ). Преобразование кода выполнено по методике, описанной в [23]. Полученная цифра разряда передается по шине 12С на драйвер семисегментных индикаторов по протоколу, описанному в [21]. Поскольку первый индикатор состоит из светодиодов, то для засветки знака "минус" передается код 01XX, а для засветки знака "плюс"— код 11XX.
Драйвер SAA1064 имеет ряд особенностей. Поскольку питание схемы может снизиться до уровня меньше 4.0 В, необходимо сбросить флаг по питанию в драйвере SAA1064. Для этого следует прочитать данные из регистра состояния по адресу 77i6. Для записи байта информации в микросхему необходимо ввести адрес ведомого устройства 7616, определяющий направление записи, а затем — задать выходной ток драйвера (автор выбрал среднее значение 6 мА, код 47J6).
Далее при получении квитирования посредством логического нуля записывается субадрес каждой цифры, и пересылаются два разряда знака и два разряда значения температуры. В случае, если квитирование от SAA1064 не подтверждается (т.е. данные записываются с ошибкой), программа переходит в режим "ERROR" и засвечивается светодиод "ERROR". Выдерживается пауза в 230 мс, все данные обнуляются,
|
||||
|
а выполнение программы автоматически начинается сначала. В начале программы светодиод "ERROR" гаснет. Если ошибка повторяется регулярно, то светодиод "ERROR" моргает или светится, пока не будет устранена неисправность.
|
||||||||||
|
Плата
Монтажная схема платы представлена на рис. 10.5, а схема разводки с двух сторон — на рис. 10.6.
|
||||||||||
![]() |
||||||||||
|
Монтажная плата изготовляется из двухстороннего металлизированного текстолита. На ней установлен батарейный отсек с тремя секциями для батарей питания типа АА и элементы схемы с индикаторными матрицами (рис. 10.7). На плате присутствует кнопочный выключатель питания (на ток не более 0,2 А) и разъем PTR-500 для подсоединения датчика температуры. Примерный дизайн прибора представлен на рис. 10.8. Корпус из пластика имеет окно для индикации и отверстие для кнопочного выключателя питания и индикатора ошибки. Окно индикации изготовлено из оргстекла и снизу покрыто пленкой, выделяющей элементы индикации. К корпусу окно приклеено клеем.
|
||||||||||
|
Светодиодная матрица знака "±" собрана из четырех прямоугольных светодиодов в виде отдельных сегментов знака "+". Светодиоды установлены на панельки так, чтобы общая высота совпадала с высотой индикаторов. Индикатор и микросхемы установлены на панельки, для облегчения монтажа при отбраковке элементов.
Автор собрал термометр навесным монтажом, применив:
• семисегментные светодиодные индикаторы НЬЕК-8512С\¥А;
• операционный усилитель КР140УД1208 (или любой другой с низковольтным питанием и низким дрейфом "нуля");
• стабилитрон В1 — КС119А на напряжение стабилизации 2,6 В;
• резисторы мощностью 0,125 Вт;
• переменные резисторы — миниатюрные, маломощные на 22 кОм.
Остальные детали — любые отечественного или зарубежного производства.
Настройка
Прежде всего, необходимо проверить правильность сборки устройства. Для этого в микроконтроллер записывается тестовая программа, ассемблерный код которой представлен в листинге 10.3, а шестнадцате-пичный — в листинге 10.4.
|
||||
|
Эта программа выводит на дисплей цифры +25, микроконтроллер устанавливается в панельку, и затем включается питание. Если тест прошел без проблем, то в микроконтроллер записывается рабочая программа (см. листинг 10.1 и листинг 10.2) (микроконтроллер в панельку не устанавливается), после чего необходимо настроить канал измерения.
В этом случае правильные показания температуры настраиваются в следующей последовательности.
1. Терморезистор или термопару опустить в воду и заморозить в стакане в морозильной камере холодильника. При этом выводы термодатчика изолированы термоусадочной трубкой и не должны касаться какой-либо поверхности.
2. После заморозки необходимо подобрать резистор Я2, равный по сопротивлению замороженному датчику.
3. Установив замороженный датчик в схему и включив питание, замеряем напряжение на выводе 6 операционного усилителя. Нулевому показанию температуры должно соответствовать напряжение 0,58 В на этом выводе. В противном случае оно регулируется с помощью резисторов Я6 и 119.
4. Для установки коэффициента усиления Ку = 13 операционного усилителя, необходимо припаять навесным монтажом резистор 6 кОм от 6 вывода ОУ ІСЗ к выводу 2 ІСЗ (на схеме резистор имеет обозначение **, поскольку подбирается с высокой точностью при настройке канала измерения). Для улучшения чувствительности можно добавить положительную обратную связь. При снижении темпе-
|
||||
|
ратуры напряжение снижается, а при увеличении температуры — увеличивается.
5. Проверка работы. ОУ во всем диапазоне температур и регулировка с помощью R9, ПОС и ООС изменения выходного напряжения ОУ. Данные по напряжению соответствуют таблице Расчет характеристик терморезистора. xls (последний сектор).
6. Устанавливается микроконтроллер с "прошитой" рабочей программой, подается питание и проверяются осциллограммы SDA (канал В), SCL (канал А) при развертке 100 мс и 200 мс, а также показания температуры.
Небольшая коррекция температуры достигается настройкой резистора R4. В случае возникновения большой погрешности на разных участках показания температуры необходима коррекция программным путем. Если при включении питания происходят сбои, то к выводам 1 и 4 микроконтроллера припаивается конденсатор на 10 нФ.
При изготовлении прибора на SMD-элементах себестоимость можно снизить в два раза. Прибор является попыткой преодолеть различные проблемы путем математического моделирования с помощью современных средств. Математические преобразования выполнены на языке ассемблера из-за ограничения в ресурсах и размерах памяти микроконтроллера Tiny 15. Для дальнейшего улучшения характеристик измерения температуры необходимо реализовать два канала измерения (отдельно для положительной и отрицательной температуры) с хорошими линейными передаточными характеристиками, а также задействовать более производительный микроконтроллер.
|
||||