Arduino 入门教程GO 第五章 制作自己的温度计-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 589|回复: 0

Arduino 入门教程GO 第五章 制作自己的温度计

[复制链接]
发表于 2022-1-17 14:02 | 显示全部楼层 |阅读模式
[md]## 一、温度计

上一章中我们接触到了不同于之前的新的元器件——无源蜂鸣器,同时也使用无源蜂鸣器完成了实验,不知道大家回去以后有没有通过蜂鸣器来播放出不同的歌曲呢?

今天我们将继续认识我们的新朋友——LM35温度传感器,生活中各个地方都离不开温度这个话题,而我们今天的实验,将通过LM35温度传感器,来进行温度的测试。

## 二、实验器材

+ UNO控制板:1块

+ LM35温度传感器:1个

+ 面包板:1块

+ 面包板跳线:若干

## 三、连线示意图

01.jpg
图5-1


## 四、硬件连接图

02.jpg
图5-2


## 五、硬件知识要点

LM35D温度传感器,这款传感器能够测量0-100摄氏度的温度,并以电压的数值输出。从0度开始温度每升高1度输出电压就会提高10mv,这样我们就能够使用模拟口检测传感器的电压,进过简单计算得到当前的温度数值了。

**模块特点:**

1、有较好的线性度和较高的灵敏度。

2、传感器的输出电压与摄氏温度呈线性关系,0℃时输出为0V,每升高1℃,输出电压增加10mv。

3、与Arduino专用传感器扩展板结合使用,可以非常容易地实现与环境温度感知相关的互动效果。

**模块规格:**

+ 主要芯片:LM35

+ 工作电压:5V

+ 传感器类型:模拟

**引脚:**

+ out:输出

+ +:VCC  DC4V~6V输入端  

+ -:GND 接地端

## 六、程序编写[/md]
  1. void setup() {
  2. Serial.begin(9600);         //使用9600速率进行串口通讯
  3. }
  4. void loop() {
  5. int n = analogRead(A0);    //读取A0口的电压值
  6. float vol = n * (5.0 / 1023.0*100);   //使用浮点数存储温度数据,温度数据由电压值换算得到
  7. Serial.println(vol);                   //串口输出温度数据
  8.   delay(2000);                           //等待2秒,控制刷新速度
  9. }
复制代码

[md]
## 七、程序知识要点

初始化函数中有一个语句 Serial.begin(9600); 这个语句的目的是初始化串口的参数,arduino内部规定只允许改变波特率参数,其他的参数使用通用数值。如果你需要和其他

的单片机串口通讯,波特率要一致才可以正常工作,否则会出现乱码甚至不能通讯。

## 八、拓展阅读

在进行了上述的试验之后,我们已经学会了使用程序结合LM35温度传感器来进行温度的测试,那么,能否更进一步,将LM35温度传感器测温,与之前的LED结合起来,使用不同颜色的LED,进行不同温度的显示呢?接下来在我们的拓展实验当中,我们将会把LM35温度传感器和之前的LED控制实验结合起来,进行一个温度显示装置的设计。
电路如图5-3所示,

03.jpg
图5-3


我们在电路中加入了黄、绿、红三个颜色的LED灯,以不同颜色的LED来区分不同的温度区域,实验程序如下:[/md]

  1. void setup() {
  2.   pinMode(13, OUTPUT);
  3.   pinMode(12, OUTPUT);
  4.   pinMode(11, OUTPUT);
  5. }
  6. void loop() {
  7.   int vol = analogRead(A0) * (5.0 / 1023.0*100);             //读取LM35温度值
  8. if (vol<=31)                                               //低温区的温度值设置、以及led显示
  9. {
  10.   digitalWrite(13, HIGH);
  11.   digitalWrite(12, LOW);
  12.   digitalWrite(11, LOW);
  13. }
  14. else if (vol>=32 && vol<=40)                              //中温区温度范围设置  &&为“与”的意思,具体请查阅wiki
  15. {
  16.    digitalWrite(13, LOW);
  17.   digitalWrite(12, HIGH);
  18.   digitalWrite(11, LOW);
  19. }
  20. else if (vol>=41)                                           //高温区温度设置
  21. {
  22.    digitalWrite(13, LOW);
  23.   digitalWrite(12, LOW);
  24.   digitalWrite(11, HIGH);
  25. }

  26. }
复制代码

[md]
在上述程序中,我们可以看到,将温度划分为三个区间,其中低温区为0摄氏度到30摄氏度,在这个区间范围内,会亮起绿色灯,而中温区为31摄氏度到50摄氏度,在这个区间将亮起黄色灯,最后,高于50摄氏度被设置为高温区,高于这个温度将亮起红色灯。这样一款简易的温度显示装置就完成了。

LM35温度传感器除了配合LED使用之外,还有很多其他可以配合的地方,如果我们将它和蜂鸣器配合起来,是不是就可以做出一个温度报警装置呢,当温度高于一定界限时,让蜂鸣器报警,这些有兴趣的同学可以自己去研究了。[/md]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-27 14:14 , Processed in 0.117459 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表