Arduion学习(三)驱动温度传感器
一、实验目的:
1、将温度值打印显示在串口监视器
1、将温度值打印显示在串口,不同温度段显示不同的灯光,并在温度过高或过低时利用蜂鸣器报警。
二、实验准备:
1、查阅相关资料,了解本次实验所用到的引脚、接口的相关知识。
DS18B20引脚定义:
(1)DQ为数字信号输入/输出端;
(2)GND为电源地;
(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。
2、准备Arduion板(本次实验所用到的型号为mega2560)、温度传感器DS18B20、杜邦公母线、三色发光二极管、无源蜂鸣器
三、实验操作:
(一)1.0版本
1、将温度传感器的DQ引脚用杜邦线与Arduion板上的数字IO接口2相连,VDD和GND引脚分别与Arduion上的5V、GND接口相连。
2、将Arduion连上主机,打开IDE,在工具选项卡中设置对应的开发板(本次选择mega2560)和一个端口
3、验证代码并上传代码至Arduion
(二)2.0版本
1、将温度传感器的DQ引脚用杜邦线与Arduion板上的数字IO接口2相连,VDD和GND引脚分别与Arduion上的5V、GND接口相连。
2、将三色发光二极管的R、G、B引脚用杜邦线分别与Arduion板上的数字IO接口11、12、13相连,GND引脚连接Arduion上的GND接口。
3、将无源蜂鸣器的I/O引脚用杜邦线与Arduion板上的数字IO接口7相连,VDD和GND引脚分别与Arduion上的5V、GND接口相连。
4、将Arduion连上主机,打开IDE,在工具选项卡中设置对应的开发板(本次选择mega2560)和一个端口
5、验证代码并上传代码至Arduion
四、以下为我本次实验的运行代码:
1.0版本:
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2 // 定义DS18B20数据口连接arduino的 2 脚
OneWire oneWire(ONE_WIRE_BUS); // 初始连接在单总线上的单总线设备
DallasTemperature sensors(&oneWire);
void setup()
{
Serial.begin(9600); // 设置串口通信波特率
sensors.begin(); // 初始库
}
void loop(void)
{
sensors.requestTemperatures(); // 发送命令获取温度
Serial.print("温度值:"); //串口监视器打印温度值
Serial.print(sensors.getTempCByIndex(0));
Serial.println("℃");
delay(10);
}
温度传感器Plus代码:
2.0版本
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2 // 定义DS18B20数据口连接arduino的 2 脚
OneWire oneWire(ONE_WIRE_BUS); // 初始连接在单总线上的单总线设备
DallasTemperature sensors(&oneWire);
int buzzer=7;
int redled = 11;
int greenled =12;
int blueled = 13;
void setup()
{
Serial.begin(9600); // 设置串口通信波特率
sensors.begin(); // 初始库
pinMode(buzzer, OUTPUT); //设置数字IO脚模式,OUTPUT为输出
pinMode(redled, OUTPUT);
pinMode(greenled, OUTPUT);
pinMode(blueled, OUTPUT);
}
void loop(void)
{
sensors.requestTemperatures(); //发送命令获取温度
Serial.print("温度值:"); //串口打印"温度值:"
Serial.print(sensors.getTempCByIndex(0)); //串口打印温度
Serial.println("℃"); //串口打印摄氏度
delay(10); //等待10毫秒以观察数据
float temp = sensors.getTempCByIndex(0); //指定温度为一个浮点数数据类型
if(temp>=15.0) //如果温度大于15摄氏度,进入for循环
{
if(temp>=34.0)
{
int i=2000;
digitalWrite(redled, HIGH); //红灯亮起,温度过高报警
tone(buzzer,i); //在四号端口输出频率
delay(1000); //该频率维持1000毫秒
digitalWrite(redled, LOW); //红灯熄灭,报警结束
noTone(7); //报警停止
}else
{
digitalWrite(greenled, HIGH); //绿灯亮起
delay(1000); //等待1000毫秒
digitalWrite(greenled, LOW); //绿灯熄灭
delay(1000); //等待1000毫秒
}
}else{
int i=1000;
digitalWrite(blueled, HIGH); //蓝灯亮起,温度过低报警
tone(buzzer,i); //在四号端口输出频率
delay(1000); //该频率维持1000毫秒
digitalWrite(blueled, LOW); //蓝灯熄灭,报警结束
noTone(7); //报警停止
}
}
没大胆尝试怎知不可,未坚持到底如何放弃!
Arduion学习(三)驱动温度传感器的更多相关文章
- Struts2框架学习(三) 数据处理
Struts2框架学习(三) 数据处理 Struts2框架框架使用OGNL语言和值栈技术实现数据的流转处理. 值栈就相当于一个容器,用来存放数据,而OGNL是一种快速查询数据的语言. 值栈:Value ...
- Linux内核(17) - 高效学习Linux驱动开发
这本<Linux内核修炼之道>已经开卖(网上的链接为: 卓越.当当.china-pub ),虽然是严肃文学,但为了保证流畅性,大部分文字我还都是斟词灼句,反复的念几遍才写上去的,尽量考虑到 ...
- docker深入学习三
docker学习三:network docker支持容器之间的网络通信,docker的网络通信方式有以下五种: bridge docker 默认的网络驱动,如果不指定网络驱动,docker就会创建一个 ...
- HTTP学习三:HTTPS
HTTP学习三:HTTPS 1 HTTP安全问题 HTTP1.0/1.1在网络中是明文传输的,因此会被黑客进行攻击. 1.1 窃取数据 因为HTTP1.0/1.1是明文的,黑客很容易获得用户的重要数据 ...
- TweenMax动画库学习(三)
目录 TweenMax动画库学习(一) TweenMax动画库学习(二) TweenMax动画库学习(三) ...
- 解决mac 10.11 以后 无法使用未签名第三驱动
解决 最新版 mac 系统 无法使用未签名第三驱动 10.12.多 我的情况是 10.11.4 Beta (15E27e) 使用绿联usb网卡不正常. 下面的命令为检测驱动是否装载的一些命令.sudo ...
- 4.机器学习——统计学习三要素与最大似然估计、最大后验概率估计及L1、L2正则化
1.前言 之前我一直对于“最大似然估计”犯迷糊,今天在看了陶轻松.忆臻.nebulaf91等人的博客以及李航老师的<统计学习方法>后,豁然开朗,于是在此记下一些心得体会. “最大似然估计” ...
- DjangoRestFramework学习三之认证组件、权限组件、频率组件、url注册器、响应器、分页组件
DjangoRestFramework学习三之认证组件.权限组件.频率组件.url注册器.响应器.分页组件 本节目录 一 认证组件 二 权限组件 三 频率组件 四 URL注册器 五 响应器 六 分 ...
- [ZZ] 深度学习三巨头之一来清华演讲了,你只需要知道这7点
深度学习三巨头之一来清华演讲了,你只需要知道这7点 http://wemedia.ifeng.com/10939074/wemedia.shtml Yann LeCun还提到了一项FAIR开发的,用于 ...
- SVG 学习<三>渐变
目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...
随机推荐
- day80:luffy:短信sdk接入&点击获取验证码&注册功能的实现&Celery实现短信发送功能
目录 1.短信sdk接入 2.前端点击获取验证码效果 3.注册后端接口实现 4.注册-前端 5.Celery 6.Celery完成短信发送功能 1.短信sdk接入 1.准备工作 1.下载云通讯相关的文 ...
- 微信小程序——【百景游戏小攻略】
微信小程序--[百景游戏小攻略] 本次课程小项目中的图片以及文章还未获得授权!请勿商用!未经授权,请勿转载! 博客班级 https://edu.cnblogs.com/campus/zjcsxy/SE ...
- 1.深入Istio:Sidecar自动注入如何实现的?
转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 本文使用的Istio源码是 release 1.5. 这篇文章打算讲一下sidecar, ...
- SAP S/4HANA 2020安装实录
欢迎关注微信公众号:sap_gui (ERP咨询顾问之家) 今天开始试着安装SAP S/4HANA 2020版本,也是目前SAP ERP最高的版本,总安装文件大小大概50GB,数据库版本必须是HANA ...
- day86:luffy:前端发送请求生成订单&结算页面优惠劵的实现
目录 1.前端发送请求生成订单 1.前端点击支付按钮生成订单 2.结算成功之后应该清除结算页面的数据 3.后端计算结算页面总原价格和总的真实价格并存到数据库订单表中 2.优惠劵 1.准备工作 2.前端 ...
- layui表单提交
关于layui表单提交 只是简单用一个文本框记录一下提交过程 其他的如下拉框选择框样式可以参考官网 下面直接开始.首 一:前台页面 <!DOCTYPE html><html& ...
- C++ 基础 5:多态
1 什么是多态 多态按字面的意思就是多种形态.当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态. C++ 多态意味着由继承而产生的相关的不同的类,调用重写函数时,会根据实际的对象类型来执 ...
- 面试题:能谈谈Date、Datetime、Time、Timestamp、year的区别吗?
一. 推荐阅读 首发地址:https://mp.weixin.qq.com/s/9zKX86P4kzlKla6-NyS3EA 使用推荐阅读,有更好的阅读体验 二.准备 如果面试官问你:了解 date. ...
- [MIT6.006] 20. Daynamic Programming II: Text Justification, Blackjack 动态规划II:文本对齐,黑杰克
这节课通过讲解动态规划在文本对齐(Text Justification)和黑杰克(Blackjack)上的求解过程,来帮助我们理解动态规划的通用求解的五个步骤: 动态规划求解的五个"简单&q ...
- 指针常量&常量指针&指向常量的指针常量
搞不懂不吃晚饭 (1)指针常量 指针常量是一个常量,但是是指针修饰的. 格式:int * const p; 例如 int a, b; int * const p = &a;//指针常量 //分 ...