使用器件:arduino uno,LM35模块,LCD602模块,10k电位器,面包板,杜邦线
线路连接
LCD1602模块连接
VSS(电源地) | GND |
---|---|
VDD(电源正极) | 5v |
V0(显示对比度调整) | 电位器 |
RS(数据/命令选择) | 11 |
RW (读/写选择) | 12 |
E(使能信号) | 10 |
D4(数据) | 5 |
D5(数据) | 4 |
D6 (数据) | 3 |
D7 (数据) | 2 |
A (背光源正极) | 5v |
K(背光源负极) | GND |
LM35模块连接
正极 | 5v |
---|---|
输出 | A0 |
负极 | GND |
LM35的输出连接上arduino的模拟引脚,Arduino的模拟引脚连接到一个了10位A/D转换,输入0–5V的电压对应读0–1023的数值,每个读到的数值对应的都是一个电压值。这里读到的是温度的电压值,以0~1023的方式输出,而LM35温度传感器每10mV对应1摄氏度。计算温度式子为:
data = (double) val *(5/10.24);
代码部分
#include <LiquidCrystal.h> //调用头文件
#include <SoftwareSerial.h>//软串口通信
LiquidCrystal lcd(11,12,10,5,4,3,2); //连接引脚LiquidCrystal(rs,rw,en,d4,d5,d6,d7);
void setup() {
lcd.begin(16,2);
lcd.clear();
}
void GetTemperatures(){
int val; //用于存储LM35读到的值
double data; //用于存储已转换的温度值
val=analogRead(0); //LM35连到模拟口,并从模拟口A0读值(输入0~5V的电压对应读到0~1023的数值)
data = (double) val *(5/10.24); // 得到电压值,通过公式换成温度
lcd.setCursor(9, 1) ;
lcd.print(data); // 串口输出温度值
lcd.setCursor(14, 1);
lcd.print((char)223); //显示o符号
lcd.setCursor(15, 1);
lcd.print("C"); //显示字母C
}
void loop() {
lcd.setCursor(2, 0);
lcd.print("hello world");
lcd.setCursor(0, 1);
lcd.print("Sec: ");
lcd.print(millis() / 1000);
GetTemperatures(); //获取LM135温度
delay(1000);
lcd.clear();
}