Термометр в виде столбика светодиодов

Микросхема LM35 представляет собой датчик температуры, который выдает аналоговый сигнал, пропорциональный температуре. Выходное напряжение можно легко интерпретировать для получения показаний температуры в градусах Цельсия. Преимущество LM35 перед термистором в том, что она не требует никакой внешней калибровки — впаяли и пользуемся. Здесь гистограмма светодиодного индикатора представляет собой простой для понимания и наглядный уровень выходного сигнала. Берем трехконтактный датчик температуры LM35 и Arduino Uno, чтобы получать входные данные от LM35 и управлять массивом светодиодов. Датчик температуры LM35 довольно точен, не изнашивается, работает в широких условиях окружающей среды и не требует для работы внешних компонентов. Обеспечивает типовую точность ±0,5°C при комнатной температуре и ±1°C во всем диапазоне температур от -55°C до +155°C.

Принципиальная схема

Термометр в виде столбика светодиодов

Требуемые детали

  • Ардуино Уно
  • Резисторы 220 Ом, 1 кОм
  • Датчик температуры LM35
  • Соединительные провода
  • Светодиоды 5 штук

Распиновка LM35

Термометр в виде столбика светодиодов

Код прошивки Arduino

int tempsensor = 0;
int firstled = 8;
int secondled = 9;
int thirdled = 10;
int fourthled = 11;
int fifthled = 12;
int buzzerpin = 7;
void setup()
{
Serial.begin(9600);
pinMode(firstled,OUTPUT);
pinMode(secondled,OUTPUT);
pinMode(thirdled,OUTPUT);
pinMode(fourthled,OUTPUT);
pinMode(fifthled,OUTPUT);
pinMode(buzzerpin,OUTPUT);
}
void loop()
{
tempsensor=analogRead(0);
if(tempsensor<=129)
{
digitalWrite(firstled,HIGH);
digitalWrite(secondled,LOW);
digitalWrite(thirdled,LOW);
digitalWrite(fourthled,LOW);
digitalWrite(fifthled,LOW);
digitalWrite(buzzerpin,LOW);
}
else if(tempsensor>=130&&tempsensor<155)
{
digitalWrite(firstled,LOW);
digitalWrite(secondled,HIGH);
digitalWrite(thirdled,LOW);
digitalWrite(fourthled,LOW);
digitalWrite(fifthled,LOW);
digitalWrite(buzzerpin,LOW);
}
else if(tempsensor>=155&&tempsensor<165)
{
digitalWrite(firstled,LOW);
digitalWrite(secondled,LOW);
digitalWrite(thirdled,HIGH);
digitalWrite(fourthled,LOW);
digitalWrite(fifthled,LOW);
digitalWrite(buzzerpin,LOW);
}
else if(tempsensor>=165&&tempsensor<180)
{
digitalWrite(firstled,LOW);
digitalWrite(secondled,LOW);
digitalWrite(thirdled,LOW);
digitalWrite(fourthled,HIGH);
digitalWrite(fifthled,LOW);
digitalWrite(buzzerpin,LOW);
}
else if(tempsensor>=180&&tempsensor<200)
{
digitalWrite(firstled,LOW);
digitalWrite(secondled,LOW);
digitalWrite(thirdled,LOW);
digitalWrite(fourthled,LOW);
digitalWrite(fifthled,HIGH);
digitalWrite(buzzerpin,LOW);
}
else if(tempsensor>200)
{
digitalWrite(firstled,HIGH);
digitalWrite(secondled,HIGH);
digitalWrite(thirdled,HIGH);
digitalWrite(fourthled,HIGH);
digitalWrite(fifthled,HIGH);
digitalWrite(buzzerpin,HIGH);
}
Serial.println(tempsensor);
delay(150);
}

Цифровой индикатор тут отсутствует, ведь не всегда это нужно. Здесь скорее наглядный вид того, что температура находится в заданных границах (или вышла за пределы). Применение возможно как измерение температуры определенной среды или мониторинг температуры батареи в электротранспорте.

Оцените полезность информации:

0 / 5. Голосов: 0

Расскажите, что надо исправить?