arduino学习笔记24 温度传感器实验 通过上一次的实验,我们学会了1602液晶的使用。下面我们做一个简单的温度传感器,通过一个LM35温度传感器读取室温后,使温度显示在1602液晶屏幕上。
上次我们驱动液晶是使用的手工编写代码,这次我们直接使用arduino自带的LiquidCrystal库来进行驱动,此库文件允许arduino控制板控制基于Hitachi HD44780或与之相兼容芯片大部分的液晶,可以工作于4bit或者8bit状态。
下图为我们所使用的arduino的LiquidCrystal库文件位置,只有这里显示的库文件,arduino才可以调用。
什么是温度传感器?
温度传感器就是利用物质随温度变化特性的规律,把温度转换为电量的传感器。按照测量方式可以分为接触式和非接触式两大类,按照传感器材料以及元件特性分为热电阻传感器和热电偶传感器两类。白光烙铁头使用的是热电偶传感器,本次试验使用的LM35是热电阻传感器。
LM35温度传感器实物如下图:
LM35使用非常普遍,他使用内部补偿机制,输出可以从0℃开始。封装为T0992,工作电压4—30V。而且在上述电压范围内,芯片的工作电流不超过60ua。根据产品使用手册,得知LM35传感器的输出电压与摄氏温度呈线性关系,0℃时输出为0V,每升高1℃,输出电压增加10mv。
下图为实验硬件连接方式
代码如下 1. #include <LiquidCrystal.h> //调用arduino自带的LiquidCrystal库 2. 3. LiquidCrystal lcd(12, 11, 5, 4, 3, 2);//设置接口 4. 5. int potPin = 4; //设置模拟口4为LM35的信号输入端口 6. float temperature = 0; //设置temperature为浮点变量 7. long val=0; //设置val为长整数变量 8. 9. void setup() 10. { 11. lcd.begin(16, 2); //初始化LCD 12. lcd.print("LM35 Thermometer"); //使屏幕显示文字LM35 Thermometer 13. delay(1000); //延时1000ms 14. } 15. 16. void loop () 17. { 18. 19. val = analogRead(potPin); //val变量为从LM35信号口读取到的数值 20. temperature = ((val+1)*0.0048828125*1000); //把读取到的val转换为温度数值的10倍 21. lcd.clear(); //清屏 22. lcd.print("LM35 Thermometer"); //使屏幕显示文字LM35 Thermometer 23. lcd.setCursor(0, 1) ; //设置光标位置为第二行第一个位置 24. lcd.print((long)temperature / 10); //显示温度整数位 25. lcd.print("."); //显示小数点 26. lcd.print( (long)temperature % 10); //显示温度小数点后一位 27. lcd.print((char)223); //显示o符号 28. lcd.print("C"); //显示字母C 29. 30. delay(2000); //延时2秒,这里也就是刷新速度。 31. 32. }
|