Цифровой термометр на микроконтроллере PIC и датчике LM35


В данной статье мы рассмотрим подключение датчика температуры LM35 к микроконтроллеру PIC. Измеряемое значение температуры мы будем выводить на экран ЖК дисплея 16x2. Датчик LM35 является простым и дешевым устройством для измерения температуры, не требующим никакой внешней калибровки. Выходное напряжение датчика пропорционально окружающей температуре в градусах Цельсия и изменяется на 10mV на каждый °C.

Также на нашем сайте мы рассматривали подключение датчика температуры LM35 к другим микроконтроллерам (платам):

Необходимые компоненты

  1. Микроконтроллер PIC16F877A (купить на AliExpress).
  2. Датчик температуры LM35 (купить на AliExpress).
  3. Держатель микросхем на 40 контактов (купить на AliExpress).
  4. Программатор PICkit 3 (купить на AliExpress).
  5. Кварцевый генератор 20 МГц (купить на AliExpress).
  6. Конденсаторы 22 пФ (2 шт.) (купить на AliExpress).
  7. Потенциометр 10 кОм (купить на AliExpress).
  8. Регулятор напряжения 7805 (купить на AliExpress).
  9. Адаптер 12V.
  10. ЖК дисплей 16х2 (купить на AliExpress).
  11. Светодиод (купить на AliExpress).
  12. Перфорированная плата.
  13. Макетная плата.
  14. Соединительные провода.

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

Датчик температуры LM35 имеет нулевой сдвиг напряжения, что означает что при 0°C напряжение на его выходном контакте равно 0V. Его максимальное выходное напряжение равно 1.5V – это означает что максимальное значение температуры, которое он способен измерять, равно 150°C (1.5V / 10mV).

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

Внешний вид и распиновка датчика LM35

Номер контакта Функция Обозначение
1 Питающее напряжение; 5V (+35V to -2V) Vcc
2 Выходное напряжение (+6V to -1V) Output
3 Земля (0V) Ground

Поскольку датчик LM35 имеет аналоговый выход, это означает, что мы его должны подключать к аналоговому контакту (входу АЦП) микроконтроллера PIC.

АЦП в микроконтроллере PIC16F877A

В настоящее время существует много типов различных АЦП, и каждый из них имеет свою собственную скорость и разрешение. Наиболее распространенными типами АЦП являются АЦП с последовательным приближением и типа "сигма-дельта". АЦП, используемый в микроконтроллере PIC16F877A, называется АЦП последовательного приближения или сокращенно SAR (Successive approximation).

Последовательный аппроксимационный АЦП (SAR) работает с помощью компаратора и нескольких логических преобразований. Данный тип АЦП использует опорное напряжение (которое является переменным) и сравнивает входное напряжение с опорным напряжением с помощью компаратора, и разность этих напряжений, которая и будет цифровым выходом данного АЦП, сохраняется из самого значащего (старшего) бита (MSB). Скорость сравнения зависит от тактовой частоты (Fosc), на которой работает микроконтроллер PIC.

Теперь, когда мы знаем основы АЦП, давайте откроем даташит на микроконтроллер PIC16F877A и посмотрим какие возможности аналого-цифрового преобразования есть у него. Как мы можем увидеть из даташита, микроконтроллер PIC16F877A содержит 10-битный 8-канальный АЦП. Это значит, что у него есть 8 каналов АЦП, представленных на рисунке ниже. Разрешение каждого канала АЦП составляет 10 бит, что означает что диапазон его выходных значений составляет 0-1024 (2^10).

Каналы АЦП микроконтроллера PIC16F877A

На представленном рисунке подсвечены каналы АЦП микроконтроллера PIC16F877A – с AN0 до AN7. Только на этих контактах микроконтроллер может считывать аналоговые значения напряжений.

Более подробно об использовании АЦП в микроконтроллерах PIC можно прочитать в этой статье.

Схема проекта

Схема подключения датчика температуры LM35 к микроконтроллеру PIC представлена на следующем рисунке.

Схема подключения датчика температуры LM35 к микроконтроллеру PICДатчик температуры LM35 подключен к аналоговому входу AN4 микроконтроллера PIC. ЖК дисплей подключен к микроконтроллеру в 4-битном режиме, более подробно о его подключении к микроконтроллеру PIC можно прочитать в этой статье.

Для сборки конструкции проекта мы использовали перфорированную плату с установленным на нее микроконтроллером PIC из проекта мигания светодиодом.

Объяснение программы для микроконтроллера PIC

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

В программе мы будем считывать значение с выхода АЦП и затем на его основе определять аналоговое значение напряжения с выхода датчика LM35, после чего это значение напряжения мы будем конвертировать в значение температуры. После этого полученное значение температуры мы будем разделять на отдельные символы чтобы затем отобразить их на экране ЖК дисплея.

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

Тестирование работы цифрового термометра

После сборки схемы и загрузки программы в микроконтроллер PIC подайте на нее питание от адаптера на 12v. Значение с выходного контакта датчика LM35 будет подаваться на аналоговый вход микроконтроллера PIC и на его основе будет определяться измеренное значение температуры (на основе умножения значения с выхода АЦП на коэффициент 4.88281). После этого определенное значение температуры будет отображаться на экране ЖК дисплея.

Тестирование работы цифрового термометра

Более подробно работу проекта вы можете посмотреть на видео, приведенном в конце статьи.

Исходный код программы

Видео, демонстрирующее работу проекта

(Проголосуй первым!)
Загрузка...
428 просмотров

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

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