Цифровой термометр на Arduino и датчике температуры LM35

Термометры – это полезные устройства, которые используются человечеством уже долгое время. В этой статье мы спроектируем цифровой термометр на базе платы Arduino Uno и датчика температуры LM35, который будет измерять температуру окружающей среды в режиме реального времени и выводить ее значение на жидкокристаллический (ЖК) дисплей 16×2.

Цифровой термометр на Arduino и датчике температуры LM35: внешний вид

Данное устройство условно можно разделить на три модуля: первый измеряет температуру используя температурный датчик LM35, второй конвертирует измеренное значение температуры в привычную нам шкалу Цельсия (выполняется с помощью Arduino), а третий отображает это значение температуры на ЖК дисплее. Условно весь этот процесс можно представить в виде следующей диаграммы:

Диаграмма работы устройства

Все процессы на этой диаграмме проходят под контролем Arduino. Датчик температуры LM35 используется для измерения окружающей температуры и обеспечивает при изменении температуры на 1 градус изменение напряжения на 10 мВ на своем выходном контакте. Этот факт можно достаточно просто проверить с помощью вольтметра, подсоединив Vcc к pin 1, землю (Ground) к pin 3 и выходное напряжение к контакту pin 2 датчика LM35. К примеру, если напряжение на выходе датчика LM35 равно 250 мВ, то это означает, что температура окружающей среды примерно равна 25 градусам Цельсия.

Arduino считывает выходное напряжение датчика температуры со своего аналогового контакта A0 и выполняет вычисления, направленные на конвертацию этого аналогового значения напряжения в цифровое значение температуры. После проведения вычислений Arduino передает полученное значение температуры на ЖК дисплей 16×2.

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

Arduino

В этом проекте мы используем микроконтроллер для контроля всего процесса, который размещен на плате Arduino. Некоторые называют Arduino микроконтроллером, но это не совсем так, потому что Arduino представляет собой операционную систему или начальный загрузчик, который работает на основе микроконтроллера AVR. Если говорить шире, то Arduino – это аппаратная платформа с открытым исходным кодом, которая очень удобна для реализации многих практических проектов в электронике.

Внешний вид платы Arduino Uno

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

LM35 представляет собой датчик температуры с 3 контактами, который обеспечивает изменение напряжения на своем выходе на 10 мВ при изменении температуры на 1 градус Цельсия. Верхний предел измерения температуры у него составляет около 150 градусов Цельсия. На 1-й контакт датчика подается питающее напряжение, 2-й контакт – выход датчика, а на 3-й подается земля.

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

Внешний вид датчика температуры LM35 и обозначение его контактов

ЖК дисплей

ЖК дисплеи 16×2 широко используются в различных проектах поскольку они дешевы, легко доступны, относительно небольшие по размеру и просты в подключении. ЖК дисплей 16×2 имеет 2 строки и 16 столбцов, что означает что он состоит из 16 блоков по 5×8 точек в каждом. Он имеет 16 контактов, из которых 8 контактов для передачи данных (D0-D7) и 3 контакта для управления, которые обозначаются как RS, RW and EN. Остальные контакты используются для подачи питания, контроля яркости и подсветки.

Внешний вид ЖК дисплея 16x2

Питание

Плата Arduino уже имеет встроенный модуль подачи питания, поэтому здесь нам необходимо только подсоединить адаптер на 9 или 12 вольт к плате, или можно запитать ее от USB-порта компьютера или ноутбука.

Работа схемы

Схема устройства представлена на следующем рисунке.

Схема цифрового термометра на Arduino и датчике температуры LM35На представленной схеме ЖК дисплей 16×2 напрямую подсоединен к плате Arduino в 4-битном режиме. Контакты ЖК дисплея с обозначениями RS, EN, D4, D5, D6, D7 подсоединены к цифровым контактам Arduino 7, 6, 5, 4, 3, 2. Датчик температуры LM35 подсоединен к аналоговому контакту A0 платы Arduino.

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

Чтобы написать код программы для нашего цифрового термометра, мы должны написать код для Arduino, датчика температуры LM35 и ЖК дисплея 16×2. Сначала подключим библиотеку для ЖК дисплея, а затем определим контакты данных и управления для подключения ЖК дисплея и датчика температуры.

Код для инициализации ЖК дисплея

После получения аналогового значения напряжения на аналоговом входе A0 мы считываем это значение и сохраняем его в переменной с помощью команды float analog_value=analogRead(analog_pin). После этого мы преобразуем его в цифровое значение температуры по следующей формуле:

float Temperature=analog_value*factor*100

где factor=5/1023, analog_value – аналоговое значение напряжение с выхода датчика температуры.

То есть получаем код вида:

Код для преобразования значения температуры

Символ градуса формируем используя стандартный метод с помощью следующего кода:

Код для формирования символа градуса

Далее представлен полный исходный код программы нашего цифрового термометра.

void setup()
{
lcd.begin(16,2);
lcd.createChar(1, degree);
lcd.setCursor(0,0);
lcd.print(" Digital ");
lcd.setCursor(0,1);
lcd.print(" Thermometer ");
delay(4000);
lcd.clear();
lcd.print(" Circuit Digest ");
delay(4000);
lcd.clear();
}
void loop()
{
/*---------Temperature-------*/
float reading=analogRead(sensor);
float temperature=reading*(5.0/1023.0)*100;
delay(10);

/*------Display Result------*/
lcd.clear();
lcd.setCursor(2,0);
lcd.print("Temperature");
lcd.setCursor(4,1);
lcd.print(temperature);
lcd.write(1);
lcd.print("C");
delay(1000);
}

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

(1 голосов, оценка: 5,00 из 5)
Загрузка...
21 просмотров

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

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