Подключим аналоговый температурный датчик LM35 к Arduino, температуру будем выводить на дисплей 1602.
/*
Баловство аналоговым температурным датчиком LM35.
дисплей 1602, LM35, потенциометр для подсветки дисплея
Подклюение дисплея 1602:
Контакт дисплея Контакт Arduino Значение
1 GND Vss
2 5V Vdd
3 GND Vo (контрастность)
4 digital 12 RS
5 digital 11 R/W
6 digital 10 ENABLE
11 digital 5 DB4
12 digital 4 DB5
13 digital 3 DB6
14 digital 2 DB7
15 5V LED+
16 GND LED-
*/
// подключаем библиотеку для работы с LCD
#include <LiquidCrystal.h>
// инициализируем LCD, указывая контакты данных
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);
// задаем переменные
int Count = 0; // счетчик обновлений
int tempPin = 0; // пин куда подключен датчик
float tempc = 0; // переменная для температуры
float maxi = 0, mini = 30; // max/min значения температуры
void setup() {
// красивая "загрузка" программы при старте :)
lcd.begin(16, 2);
lcd.print("Loading");
delay(500); // ждем 0.5 секунды
lcd.print(".");
delay(500); // ждем 0.5 секунды
lcd.print(".");
delay(1000); // ждем 1 секунду
lcd.clear(); //очистка экрана
// Задаем режим работы портов
}
void loop() {
lcd.clear(); //очистка экрана
// считываем и вычисляем температуру
tempc = ( 5.0 * analogRead(tempPin) * 100.0) / 1024.0;
if(tempc > maxi) {maxi = tempc;} // max температура?
if(tempc < mini) {mini = tempc;} // min температура?
lcd.setCursor(0, 0); // устанавливаем курсор в 0-ом
// столбце, 1 строке (начинается с 0)
lcd.print("T=");
lcd.print(tempc); // выводим текущую температуру
lcd.print(" C");
lcd.setCursor(13, 0); // устанавливаем курсор в 12-ом столбце, 1 строке
lcd.print(Count); // выводим кол-во измерений
lcd.setCursor(0, 1); // устанавливаем курсор в 0-ом столбце, 2 строке
lcd.print(mini); // выводим min температуру
lcd.print("<T<");
lcd.print(maxi); // выводим max температуру
delay(5*1000); // задержка перед повторением измерений
Count++; // инкремент счетчика измерений
}
Схема подключения LM35 к Adruino LM35 и Adruino на макетке