Arduino入门教程(8)—温度报警器

Arduino入门教程(8)—温度报警器

ID:39576680

大小:519.29 KB

页数:8页

时间:2019-07-06

Arduino入门教程(8)—温度报警器_第1页
Arduino入门教程(8)—温度报警器_第2页
Arduino入门教程(8)—温度报警器_第3页
Arduino入门教程(8)—温度报警器_第4页
Arduino入门教程(8)—温度报警器_第5页
Arduino入门教程(8)—温度报警器_第6页
Arduino入门教程(8)—温度报警器_第7页
Arduino入门教程(8)—温度报警器_第8页
资源描述:

《Arduino入门教程(8)—温度报警器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Arduino入门教程(8)—温度报警器在上一节中,我们认识了一个发声元件——蜂鸣器,也做了一个简单的小报警器。是不是还不过瘾呢?这次我们要做一个更实际的应用——温度报警器。当温度到达我们设定的限定值时,报警器就会响。我们可以用于厨房温度检测报警等等,各种需要检测温度的场合。这个项目中,除了要用到蜂鸣器外,还需要一个LM35温度传感器。我们这里将头一回接触传感器,传感器是什么?简单的从字面上的理解就是,一种能感知周围环境,并把感知到的信号转换为电信号的感应元件。感应元件再把电信号传递给控制器。就好比人的各个感官,感知周围环境后,再信息传递给大

2、脑是一样的道理。所需元件1×蜂鸣器1×LM35温度传感器STEP1:硬件连接在接LM35温度传感器时,注意三个引脚的位置,从左至右依次接5V、Analog0、GND,如我们下图所示。STEP2:输入代码完成硬件连接后,打开ArduinoIDE,输入下面这段代码。1.floatsinVal;2.inttoneVal;3.unsignedlongtepTimer;4.5.voidsetup(){6.pinMode(8,OUTPUT);//蜂鸣器引脚设置7.Serial.begin(9600);//设置波特率为9600bps8.}9.10.void

3、loop(){11.intval;//用于存储LM35读到的值12.doubledata;//用于存储已转换的温度值13.val=analogRead(0);//LM35连到模拟口,并从模拟口读值14.data=(double)val*(5/10.24);//得到电压值,通过公式换成温度15.16.if(data>27){//如果温度大于27,蜂鸣器响17.for(intx=0;x<180;x++){18.//将sin函数角度转化为弧度19.sinVal=(sin(x*(3.1412/180)));20.//用sin函数值产生声音的频率21.

4、toneVal=2000+(int(sinVal*1000));22.//给引脚8一个23.tone(8,toneVal);24.delay(2);25.}26.}else{//如果温度小于27,关闭蜂鸣器27.noTone(8);//关闭蜂鸣器28.}29.30.if(millis()-tepTimer>500){//每500ms,串口输出一次温度值31.tepTimer=millis();32.Serial.print("temperature:");//串口输出“温度”33.Serial.print(data);//串口输出温度值34.

5、Serial.println("C");//串口输出温度单位35.}36.}成功下载完程序后,打开ArduinoIDE的串口监视器。设置串口监视器的波特率为9600。就可以直接从串口中读取温度值,并尝试升高周围环境温度,或者用手直接接触LM35使其升温,串口可以很直观的看到温度有明显的变化。蜂鸣器工作的条件是,一旦检测到环境温度大于27度,蜂鸣器鸣响,环境温度小于27度,则关闭蜂鸣器。STEP3:代码回顾这段代码与报警器一节的大部分内容是相同的,就直接讲讲不同的吧!setup()函数的第一句,我们想必已经很熟了,设置蜂鸣器为输出模式,有人可能

6、会问为什么LM35不用设置呢?LM35是个模拟量,模拟量不需要设置引脚模式。pinMode只用于数字引脚。Arduino的通信伙伴——串口串口是Arduino和外界进行通信的一个简单的方法。每个Arduino都至少有一个串口,UNO分别与数字引脚0(RX)和数字引脚1(TX)相连。所以如果要用到串口通信的,数字0和1不能用于输入输出功能。串口可用的函数也有好多,可用查看语法手册。我们这里就先介绍几个常用的:1.Serial.begin(9600);这个函数用于初始化串口波特率,也就是数据传输的速率,是使用串口必不可少的函数。直接输入相应设定的

7、数值就可以了,如果不是一些特定的无线模块对波特率有特殊要求的话,波特率设置只需和串口监视器保持一致即可。我们这里就只是用于串口监视器。1.val=analogRead(0);这里用到了一个新函数——analogRead(pin)。这个函数用于从模拟引脚读值,pin是指连接的模拟引脚。Arduino的模拟引脚连接到一个了10位A/D转换,输入0~5V的电压对应读到0~1023的数值,每个读到的数值对应的都是一个电压值。我们这里读到的是温度的电压值,是以0~1023的方式输出。而我们LM35温度传感器每10mV对应1摄氏度。1.data=(dou

8、ble)val*(5/10.24);从传感器中读到的电压值,它的范围在0~1023,将该值分成1024份,再把结果乘以5,映射到0~5V,因为每度10mV,需要再乘

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。