PIC Урок 27. Датчик температуры LMT01. Часть 1



На данном занятии мы попробуем подключить интересный датчик температуры — LMT01.

Данный датчик интересен тем, что у него не только простейший протокол и температура определяется количеством переданных импульсов, а ещё и тем, что импульсы эти передаются не с помощью изменения напряжения на одном из выходов, а с помощью изменения тока, поэтому этот датчик ставится в разрыв схемы и имеет всего два выхода.

Также по сравнению с многими подобными датчиками датчик температуры LMT01 обладает очень хорошей энергоэффективностью и потребляет очень мало энергии.

Производитель датчика и его разработчик — Texas Instruments.

Сравнение датчиков температуры, также ряд их характеристик и варианты схемы подключения я увидел в апрельском номере журнала «Новости электроники» за 2017 год и поэтому позавидовал на этот датчик.

Датчик выполнен в корпусе TO-92

 

 

Вывод VP (Voltage Positive) — вывод, которым датчик подключается к плюсу питания.

Вывод VN (Voltage Negative) — второй вывод датчика, который, как правило, подключается через резистор на минус питания (общий провод) и затем с него снимается падение напряжение для последующей оценки.

Вывод, с которого снимается падение напряжения на резисторе, может быть подключен либо напрямую к контроллеру, либо через соответствующую схему преобразователя.

Так как изменение падения напряжения на резисторе обычно лежит в пределах, не покрывающих переход ножки порта контроллера из низкого состояния в высокое, то при прямом подключении к контроллеру для подсчёта импульсов используется аналоговый компаратор.

Теперь посмотрим некоторые характеристики датчика LMT001.

Датчик способен измерять температуру в пределах от -50oC до +150oC.

Погрешность составляет от +-0,50C до +-0,70C.

Время одного измерения 54 мс.

Напряжение питания — 2.05.5В.

Ток потребления в активном состоянии — 125 мкА, в режиме ожидания — 34 мкА.

Разрешение — 12 бит.

Измерение температуры датчиком происходит следующим образом.

Как только датчик получил необходимое питание, он начинает процесс измерения и конверсии температуры в цифровой код. Затем второй цикл — передача данной величины с помощью серии импульсов, количество которых и есть данная 12-битная величина. Посмотрим пока кратко передачу данных, а заодно и типовую схему подключения датчика LMT01

 

 

В дополнение к вышесказанному, мы видим здесь, что провода можно использовать до 2 метров, минимальное падение напряжения на датчике должно быть не менее 2 вольт, но это и известно из характеристик. Из этого и надо исходить при подборе резистора, учитывая также ток протекания через датчик.

Передаются импульсы с «сырым» результатом с частотой 88 килогерц. Так как наш датчик имеет разрешение 12 бит, то теоретический диапазон количества передаваемых импульсов будет от 1 до 4095.

 

 

Вычисляется температура из сырого значения результата по следующей формуле

 

 

PC — это Pulse Count (количество импульсов).

Исходя из формулы, мы можем сделать вывод, что цена одного импульса равна шестнадцатой доле градуса или 0,0625.

Получается, что если мы от датчика получим только 1 импульс, то температура у нас равна будет –49.93750C.

Так как верхний предел измерения у нас +1500C, то при таком значении температуры мы получим 3200 импульсов. Вот это и будет верхний предел.

Исходя из всего этого посчитаем максимальное время передачи данных с помощью импульсов.

Так как частота у нас 88 кГц, то полный период одного импульса равен обратному значению частоты — 1 / 88000. А время передачи 3200 импульсов будет 3200 / 88000, что составит примерно 36 милисекунд, хотя в документации значится 50. Ну 50, так 50.

А время измерения и ковертации — 54 милисекунды. После передачи данных датчик заново начинает цикл. Вот из этого мы и будем исходить, когда будем писать наш проект.

Вот диаграмма полного цикла работы датчика

 

 

Для сглаживания паразитных колебаний параллельно резистору ставят ещё и конденсатор

 

 

Правда, я его не ставил и вроде всё работает нормально и без него.

Номинал резистора здесь дан 10 килоом. Если у нас схема питается от 5 вольт, то номинал будет другим. Я подбирал резистор из соображения максимального количества импульсов.

А вообще в технической документации есть описание, как его подбирать. Но почему-то оно не всегда работает.

 

 

Также можно рассчитать его по падению напряжения на нём.

Падение напряжения на резисторе будет максимальным при активном состоянии датчика, то есть именно в тот момент когда передаваемый импульс находится в стадии своего высокого состояния. В этот момент ток составляет 125 микроампер. А падение напряжения на самом датчике в данный момент минимальное. Так считает закон Ома. Так как минимальное падение на датчике должно быть 2 вольта, а лучше, я думаю не менее 2,5 вольт, так как у нас есть запас, у нас же 5 вольт общих, то падение напряжения на резисторе в данный момент будет также 2,5 вольта. Выходит, что сопротивления и резистора и датчика в данный момент равны. Поэтому нам достаточно посчитать их суммарное сопротивление и разделить его затем на два. Используя закон Ома, мы получим

:

Rобщее =Uпит / I = 5 / 0,000125 = 40 килоом

 

Получается, что нам потребуется резистор на 20 килоом. Падение на нём при максимальном токе составит 2,5 вольта.

Попробуем посчитать падение напряжения на резисторе при минимальном значении тока, то есть тогда, когда импульс находится в стадии низкого уровня. Здесь будет немного посложнее, так как общее сопротивление у нас изменится и на датчике уже будет другое падение напряжения.

Вычислим это общее сопротивление

 

Rобщее =Uпит / I = 5 / 0,000034 = 147 килоом

 

Поэтому падение напряжения на резисторе 20 килоом будет

 

UR = 5 * 20 / 147 = 0.68 вольт

 

Я замерил напряжение, поступающее на контроллер от внешнего источника напряжения. Оно составляет 5,06 вольт. Резистор я поставил на 22 килоома. При этом я рассчитал напряжение на нём при разных токах и получил соответственно 0,75 при токе 34 микроаппера и 2,75 при 125 микроамер.

Так как при большем токе у нас падение напряжения будет принимать наибольшее значение, то импульсы на резисторе будут положительными, это также мы берём во внимание, иначе потеряем один импульс при подсчёте.

Вот из этого мы и будем исходить, назначая порог срабатывания компаратора.

Думаю, что порог срабатывания компаратора мы назначим при таких характеристиках примерно 1,27 вольта.

Алгоритм снятия показаний с датчика у нас будет следующий.

Датчик будет подключен положительным контактом к ножке какого-нибудь порта, назначенной на выход. Точка соединений отрицательного выхода датчика и резистора будет подключена к входу компаратора, а другая ножка резистора — на общий провод.

Мы устанавливаем высокий уровень на ножке порта, подключенной к положительному контакту датчика, ждём некоторое время, чтобы датчик преобразовал измеренное напряжение в цифровой код и начинаем подсчитывать импульсы. Воспользовавшись следующей паузой и вычислив её наступление, мы в этот момент установим на ножке порта низкий уровень. Затем через некоторое время мы повторяем наш цикл. И так поступаем периодично. Это позволит нам сэкономить немало энергии, так как датчик наш в тот момент, когда нам не нужно будет измерять напряжение, питаться не будет.

Подключим схему для нашего занятия.

Плату мы, как обычно, возьмём с контроллером PIC16F877A от WaveShare.

Первым делом давайте увеличим частоту тактового генератора, так как при 4 МГц скорее всего наш компаратор может не справиться с подсчётом импульсов. Для этого мы возьмём кварцевый резонатор на 16 мегагерц и поместим его в специальное гнездо, и также переключим перемычку в соответствующее положение

 

 

Установим датчик и резистор на макетную плату и подключим их к контроллеру. В качестве управляющего напряжения для датчика мы воспользуемся ножкой порта RC0

 

 

Подключим также программатор, дисплей и внешний источник напряжения.

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

 

 

Предыдущий урок Программирование МК PIC Следующая часть

 

 

Купить программатор (неоригинальный) можно здесь: PICKit3

Купить программатор (оригинальный) можно здесь: PICKit3 original

Отладочную плату PIC Open18F4520-16F877A можно приобрести здесь: PIC Open18F4520-16F877A

Датчик температуры LMT01 можно приобрести здесь: LMT01

Дисплей LCD 20×4 можно приобрести тут: Дисплей LCD 20×4

Переходник I2C to LCD можно приобрести здесь: I2C to LCD1602 2004

 

 

Смотреть ВИДЕОУРОК (нажмите на картинку)

 

PIC Датчик температуры LMT01

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*