Раздел: Документация
0 ... 76 77 78 79 80 81 82 ... 105 («Пример показывает, как можно установить температурный предел и считать установленное значение в компьютер.») begin writelnCExample 1, ТН and TL are loaded with 35 and 25 deg C); writeln( Reading TH and TL temperature values from the DS1620"); write protocol(12);(*0Ch = запись команды настройки.*) write protocol(0);(*00h = режим непрерывного измерения температуры.*) write protocol(1);(*01h = команда записи верхнего температурного предела.*) write temperature(35);(*85D = верхний предел в градусах Цельсия.*) write protocol(2);(*02h = команда записи нижнего температурного предела.*) write temperature(25);(*20D = нижний предел в градусах Цельсия.*) write protocol(16l);(*A1h = команда считывания содержимого ЦПУ в ТН.*) writeln( High temperature limit:,temperature:5:1," °C); («Считывание верхнего предела температуры.*) write protocol(162);(*A2h = команда считывания содержимого ЦПУ в TL.*) writeln(Low temperature limit.,temperature:5• 1, °C); («Считывание нижнего предела температуры.*) end: Procedure Example2; («Проверка других свойств.») begin write protocol(12); write protocol(01): («Запуск режима однократного измерения.») write protocol(34); (»22h = остановка режима однократного измерения.») writeln; repeat write protocol(170); («AAh = команда считывания температуры.») gotoxy(8,10); writeCDS1620 stopped, Old temperature measured by DS1620 [deg C]: ,temperature:5:1); («После остановки DS1620 считывается старое значение температуры.*) delay(5000); until keypressed; readln; write protocol(238); (*EEh = начало преобразования температуры.*) repeat write protocol(170); (*AAh = команда считывания температуры.*) gotoxy(5,12); write(DS1620 active, present temperature measured by DS1620 [deg С]. temperature:5:1); («Многократное измерение нового значения температуры.*) delay(5000); until keypressed; end; («Главная программа.«) begin centronic address; examplel, example2; end. 6.4.2. Цифровой температурный датчик Микросхема SMAR.TEC (LJK Technology) - это температурный датчик, который позволяет передавать в компьютер информацию о температуре только по одной линии (рис. 6.36). На выход микросхемы подается ТТЛ/КМОП совместимый прямоугольный сигнал частотой 4 кГц и изменяемой скважностью, зависящей от температуры. По данным измерения скважности такого сигнала можно вычислить значение температуры. Для работы датчика не нужны АЦП, для сопряжения с внешним устройством используется только один провод. Диапазон измеряемой температуры от -45 до +130 °С. Общая погрешность измерения менее 2 "С во всем диапазоне. Напряжение источника питания от 4,75 до 7 В, ток потребления 200 мкА. О 1 мкФ Вид снизу 1- 5охад 2- питание 3- общий Температурной датчик SMARTEC Г 41-i н5В S1 GND Контакта на экспериментальной плате параллельного парта Рис. 6.36. Подключение температурного датчика SMARTEC к экспериментальной плате параллельного порта Контакт 1 - это выход прямоугольного сигнала, контакты 2 и 3 соединены с положительным и отрицательным проводами источника питания. Скважность линейно зависит от измеряемой температуры и определяется по следующей формуле: Скважность (%) = 0,320 + 0,00470 х температура (°С). Выход соединен с одной из линий входного порта ПК. Для вычисления температуры необходимо программно определить длительность временных интервалов высокого и низкого уровней выходного сигнала. На рис. 6.36 изображено подключение температурного датчика к экспериментальной плате параллельного порта. Программа управления написана на языке ТР6. Текст программы SMT.PAS Program temperature SMT sensor («Последовательный выход данных (контакт 1) соединен с S1 *) uses Crt.dos, {$1 с \ioexp\TPLIB1 PAS} var C or F,l byte, datax array[1 12] of byte, umtx char, Function temperature real, («Вычисление скважности и определение температуры *) var lp.hp i total scan longint, begin lp =0;(«На входе 0, счетчик состояния сбрасывается.*) hp:=0;(*На входе 1, счетчик состояния сбрасывается.*) total scan.=300000, («Общее число опросов.*) for i:=1 to Total scan do begin if port(P address+1) and 8=0 then lp:=lp+1, (*Если вход=0, то low count=low count+1 *) if port(P address+1) and 8=8 then hp:=hp+1; (*Если вход=1, то high count=high count+1.*) end, temperature:=(hp/Total scan-0.32)/0.0047; end, («Главная программа.*) begin Centronic address;(*Выбор параллельного порта.*) repeat gotoxy(10,10); write(Temperature from the SMT temperature sensor: , temperature:52,°C); until keypressed; end 6.4.3. Жидкокристаллические температурные модули Температурный модуль (Maplin FE33L) имеет встроенный температурный датчик и ЖК дисплей, которые установлены на миниатюрной печатной плате с 16-контактным ножевым разъемом. Печатная плата размещена в небольшом пластиковом корпусе вместе с элементом питания напряжением 1,5 В. Модуль не только измеряет и показывает температуру, но и отображает время. Потребление тока -15 мкА. Некоторые характеристики модуля приведены ниже: О термометр: 3,5 разряда работают как индикатор градусов Цельсия или Фаренгейта. Диапазон измеряемой температуры от -20 до +70 °С с разрешающей способностью 0,1 "С. Точность ±1 °С в диапазоне 0-40 °С и ±2 °С для других диапазонов. Период дискретизации: выбирается 10 или 1 с. Сигнализирует о самой высокой и самой низкой температурах. При измерении температуры выходные данные выводятся последовательно в двоично-десятичном коде, формат которого представлен на рис. 6.38; О часы: 3,5 разряда показывают часы и минуты. Точность 0,5 с/сут.; О источник питания: одна батарея 1,5 В, работающая более года. Экспериментальная схема изображена на рис. 6.37. Контакты 10 и 9 соединены с контактами S1 и S2 на экспериментальной плате параллельного порта через два транзисторных ключа. Программа на языке ТР6, приведенная ниже, считывает последовательные данные и преобразовывает их значение в температуру. Текст программы TMODULE.PAS Program Temperature LCD Module; (♦Выход синхроимпульсов (контакт 10) соединен с S1. Линия инвертирована. Последовательный выход данных (контакт 9) соединен с S2. Линия инвертирована.*) uses crt.dos; 0 ... 76 77 78 79 80 81 82 ... 105
|