Arduino 卡片7 温度报警器
来源:互联网 发布:linux中find mtime 编辑:程序博客网 时间:2024/04/29 21:00
1、硬件部分
温度报警器。当温度到达我们设定的限定值时,报警器就会响,只是抛砖引玉,以后可自由发挥,能学到的知识点,串口监视器的使用。
LM35温度传感器正负为两测(正负极的方法:平面对自己,左边为+,右边为负,中间为模拟信号输出,具体还得看说明,这是自己总结的),Arduino板的右下方A0-A5是模拟信号的输入端子;
2、代码部分
float sinValue;int toneVal;unsigned long tepTimer;void setup() { pinMode(8,OUTPUT); Serial.begin(9600); //使用串口监控}void loop() { int val = analogRead(0); //用于读取LM35的值,读取到的是电压的值 double data = (double) val * (5/10.24); //用于存储已经转换过的值,通过电压值利用公式转换成温度 if(data > 30){ for(int i=0;i<180;i++){ //将sin函数角度转化为弧度 sinValue = (sin(i*(3.1412/180))); //用sin函数值产生声音的频率 toneVal = 2000 + (int(sinValue*1000)); tone(8,toneVal); delay(2); } }else{ noTone(8); //如果温度小于30,则关闭蜂鸣器 } if(millis() - tepTimer > 5000){ tepTimer = millis(); Serial.print("tmp:"); Serial.print(data); Serial.println("C"); //输出温度单位并换行 }}成功下载完程序后,打开Arduino IDE的串口监视器。
就可以直接从串口中读取温度值,并尝试升高周围环境温度,或者用手直接接触LM35使其升温,串口可以很直观的看到温度有明显的变化。
蜂鸣器工作的条件是,一旦检测到环境温度大于30度,蜂鸣器鸣响,环境温度小于30度,则关闭蜂鸣器。
3、关键部分
setup()函数的第一句,我们想必已经很熟了,设置蜂鸣器为输出模式,有人可能会问为什么LM35不用设置呢?LM35是个模拟量,模拟量不需要设置引脚模式。pinMode只用于数字引脚。
Arduino的通信伙伴——串口
串口是Arduino和外界进行通信的一个简单的方法。每个Arduino都至少有一个串口,UNO分别与数字引脚0(RX)和数字引脚1(TX)相连。所以如果要用到串口通信的,数字0和1不能用于输入输出功能。
这里用到了一个新函数——analogRead(pin)。
int val = analogRead(0); //用于读取LM35的值,读取到的是电压的值这个函数用于从模拟引脚读值,pin是指连接的模拟引脚。Arduino的模拟引脚连接到一个了10位A/D转换,输入0~5V的电压对应读到0~1023的数值,每个读到的数值对应的都是一个电压值。
double data = (double) val * (5/10.24); //用于存储已经转换过的值,通过电压值利用公式转换成温度这里读到的是温度的电压值,是以0~1023的方式输出。而我们LM35温度传感器每10mV对应1摄氏度。从传感器中读到的电压值,它的范围在0~1023,将该值分成1024份,再把结果乘以5,映射到0~5V,因为每度10mV,需要再乘以100得到一个double型温度值,最后赋给data变量。
Serial.print("tmp:");Serial.print(data);Serial.println("C"); //输出温度单位并换行print()的解释是,以我们可读的ASCII形式从串口输出。
这条命令有多种形式:
(1)数字则是以位形式输出(例1)
(2)浮点型数据输出时只保留小数点后两位(例2)
(3)字符和字符串则原样输出,字符需要加单引号(例3),字符串需要加双引号(例4)。
例如:
(1)Serial.print(78); 输出“78”
(2)Serial.print(1.23456); 输出“1.23”
(3)Serial.print(‘N’); 输出“N”
(4)Serial.print(“Hello world.”); 输出“Hello world.”
0 0
- Arduino 卡片7 温度报警器
- Arduino 卡片6报警器
- 小小温度报警器
- DS18B20温度报警器
- GREEN HAND(2)--温度报警器
- 温度采集报警器(条件结构)
- Arduino LCD 温度显示
- 报警器
- Arduino + BMP180 显示气压 温度
- Arduino 卡片5炫彩LED
- Arduino 卡片8震动探测
- Arduino 卡片9感光灯
- Arduino 卡片11可控舵机
- Arduino 卡片13自制风扇
- 【应用实例】基于Arduino控制的无线烟雾报警器
- 基于 Arduino 的温度+湿度传感器
- RaspberryPi和Arduino控制温室温度
- 【Arduino】使用LM35传感器实时测量温度
- 【C++】泛型编程基础:模板通识
- Git(转载)
- Coordinate System and Shapes
- 并查集小结
- PAT乙级练习题B1010. 一元多项式求导
- Arduino 卡片7 温度报警器
- 深度学习与自然语言处理(3)_斯坦福cs224d Lecture 3
- zookeeper 简单集群配置
- 【EA】实体的生成
- svn 回退/更新/取消至某个版本命令详解
- 深入理解C#委托及原理
- 多表查询
- 【译】.NET中六个重要的概念:栈、堆、值类型、引用类型、装箱和拆箱
- 16 数据的输出