Мониторинг температуры с помощью Arduino и датчика LM35
Вы можете использовать плату Arduino для контроля температуры воздуха, подключив к ней датчик температуры LM35.
LM35 – это идеальный температурный датчик для измерения температуры окружающей среды. Он обеспечивает линейный выход, пропорциональный температуре, где 0 В соответствует температуре 0 градусов Цельсия, а изменение выходного напряжения на 10 мВ соответствует изменению температуры на один градус Цельсия. Датчики LM35 проще в использовании по сравнению с термисторами и термопарами, потому что они очень линейны и не требуют никакой обработки сигнала.
Выход LM35 может быть подключен непосредственно к аналоговому входу Arduino. Поскольку аналого-цифровой преобразователь (АЦП, ADC) Arduino обладает разрешением 1024 бита, а опорное напряжение составляет 5 В, для вычисления температуры из измеренного значения АЦП будет использоваться следующая формула:
\[T = {5,0 \cdot \text{analogRead(temperaturePin)} \over 1024} \cdot 100,0\]
Для отображения температуры мы будем использовать жидкокристаллический дисплей (LCD).
Эксперимент
Цель данного эксперимента – построить монитор температуры, используя LM35, 16x2 LCD дисплей и плату Arduino.
Необходимые комплектующие
- 1 x Arduino Mega2560;
- 1 x LCD;
- 1 x потенциометр 5 кОм;
- 1 x макетная плата;
- 1 x датчик температуры LM35;
- 1 x резистор 1 кОм;
- перемычки.
Схема соединений
Подключите компоненты, как показано на рисунке выше. Резистор 1 кОм подключен между выходом LM35 и общим проводом GND, чтобы ограничить ток без влияния на выходное напряжение.
LCD дисплей подключен к Arduino, как показано ниже. Средний вывод потенциометра подключен к выводу 3 LCD дисплея, чтобы изменять его контрастность. Другие два вывода потенциометра подключены к линиям 5V и GND. Вывод включения EN LCD дисплея подключен к выводу 9 Arduino, а вывод дисплея RS подключен к выводу 8 Arduino. Вывод RW дисплея подключен к общему проводу.
Вывод LCD дисплея | Вывод платы Arduino |
---|---|
DB4 | 4 |
DB5 | 5 |
DB6 | 6 |
DB7 | 7 |
RS | 8 |
EN | 9 |
Код
Для записи данных на дисплей программа использует библиотеку LiquidCrystal.h
. В функции loop()
непрерывно считывается значение на выходе датчика, преобразуется в градусы Цельсия, а затем выводится на LCD.
// LCD библиотека Arduino
#include <LiquidCrystal.h>
// Определение выводов LCD
LiquidCrystal lcd(8,9,4,5,6,7);
// инициализация переменных
int value=0;
float volts=0.0;
float temp=0.0;
float tempF=0.0;
void setup()
{
pinMode(3,INPUT); // установка вывода 3 Arduino на вход
Serial.begin(9600); // открыть последовательный порт и установить скорость 9600 бит/с
lcd.begin(16,2); // установить количество строк и столбцов LCD дисплея
}
void loop()
{
value=analogRead(A0); // прочитать из A0
volts=(value/1024.0)*5.0; // преобразование в вольты
temp= volts*100.0; // поеобразование в температуру в градусах Цельсия
tempF=temp*9/5+32; // поеобразование в температуру в градусах Фаренгейта
// показать температуру на LCD дисплее
Serial.print("temperature= ");
Serial.println(temp);
lcd.setCursor(0,0);
lcd.print("TEMP= ");
lcd.print(temp);
lcd.print(" C");
lcd.setCursor(0,1);
lcd.print("TEMP= ");
lcd.print(tempF);
lcd.print(" F");
delay(500);
}
Видео
Вот и всё! Надеюсь, статья оказалась полезной. Оставляйте комментарии!