Аналоговый датчик температуры LM35

Аналоговый датчик температуры LM35.

Этот датчик имеет следующие характеристики:

  • напряжение питания: 2.7-5.5В;
  • погрешность: 2 градуса;
  • измеряемая температура: от 10°C до 125°C
  • потребляемый ток: 50мкА.
Датчик подключаем к аналоговым входам А0-А5.
НАМ ПОНАДОБИТСЯ
  • Плата Arduino Uno
  • Температурный датчик LM35
  • Провода
  • Макетная плата
СХЕМА ПОДКЛЮЧЕНИЯ
LM35
Значение температуры отправляем в последовательный порт.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int tempPin = 0;  // Присваиваем имя tempPin аналоговому выводу А0, к которому подключен датчик LM35
int analogValue;  // переменная считывания данных с аналогового входа
float tempC;      // переменная значений температуры
 
void setup()
{
  Serial.begin(9600); // Задаем скорость работы монитор порта 
}
 
void loop()
{
  analogValue = analogRead(tempPin); //записываем в переменную analogValue данные с аналогового входа
  tempC = analogValue *0.488; //Коэф. пересчета в градусы Цельсия (5.0/1024.0)*100;
  Serial.println(tempC); // отправляем значение температуры в порт
  delay(1000); // Пауза 1 секунда
}

Для увеличения точности измерения можно использовать функцию analogReference(INTERNAL);, которая включает использование встроенного опорного напряжения 1.1V для контроллеров ATmega168 и ATmega328.

Это будет выглядеть так:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int tempPin = 0;  // Присваиваем имя tempPin аналоговому выводу А0, к которому подключен датчик LM35
int analogValue;  // переменная считывания данных с аналогового входа
float tempC;      // переменная значений температуры
 
void setup()
{
  analogReference(INTERNAL);//включаем использование встроенного опорного напряжения 1.1V 
  Serial.begin(9600); // Задаем скорость работы монитор порта 
}
 
void loop()
{
  analogValue = analogRead(tempPin);//записываем в переменную analogValue данные с аналогового входа
  tempC = analogValue /9.31; //Коэф. пересчета в градусы Цельсия 
  Serial.println(tempC); // отправляем значение температуры в порт
  delay(1000); // Пауза 1 секунда
}

Подключим светодиод. Он будет включаться при превышение температуры, больше заданной. Например 30 градусов Цельсия.

СХЕМА ПОДКЛЮЧЕНИЯ

LM35_LED

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int ledPin = 11;  // Присваиваем имя ledPin цифровому выводу 11, к которому подключен светодиод
int tempPin = 0;  // Присваиваем имя tempPin аналоговому выводу А0, к которому подключен датчик LM35
int analogValue;  // переменная считывания данных с аналогового входа
float tempC;      // переменная значений температуры
 
void setup()
{
  pinMode(ledPin, OUTPUT); // Инициализируем цифровой вывод ledPin (pin 11) как выход
  analogReference(INTERNAL);//включаем использование встроенного опорного напряжения 1.1V 
  Serial.begin(9600); // Задаем скорость работы монитор порта 
}
 
void loop()
{
  analogValue = analogRead(tempPin);//записываем в переменную analogValue данные с аналогового входа
  tempC = analogValue /9.31; //Коэф. пересчета в градусы Цельсия 
  Serial.println(tempC); // отправляем значение температуры в порт
  if (tempC > 30) //если температура выше 30 гр.Цельсия,
    digitalWrite(ledPin, HIGH); //то светодиод включаем
  else
    digitalWrite(ledPin, LOW); //иначе, выключаем.
  delay(1000); // Пауза 1 секунда
}

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

IMG_1269