一、实验目的:

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学习(三)驱动温度传感器的更多相关文章

  1. Struts2框架学习(三) 数据处理

    Struts2框架学习(三) 数据处理 Struts2框架框架使用OGNL语言和值栈技术实现数据的流转处理. 值栈就相当于一个容器,用来存放数据,而OGNL是一种快速查询数据的语言. 值栈:Value ...

  2. Linux内核(17) - 高效学习Linux驱动开发

    这本<Linux内核修炼之道>已经开卖(网上的链接为: 卓越.当当.china-pub ),虽然是严肃文学,但为了保证流畅性,大部分文字我还都是斟词灼句,反复的念几遍才写上去的,尽量考虑到 ...

  3. docker深入学习三

    docker学习三:network docker支持容器之间的网络通信,docker的网络通信方式有以下五种: bridge docker 默认的网络驱动,如果不指定网络驱动,docker就会创建一个 ...

  4. HTTP学习三:HTTPS

    HTTP学习三:HTTPS 1 HTTP安全问题 HTTP1.0/1.1在网络中是明文传输的,因此会被黑客进行攻击. 1.1 窃取数据 因为HTTP1.0/1.1是明文的,黑客很容易获得用户的重要数据 ...

  5. TweenMax动画库学习(三)

    目录               TweenMax动画库学习(一)            TweenMax动画库学习(二)            TweenMax动画库学习(三)           ...

  6. 解决mac 10.11 以后 无法使用未签名第三驱动

    解决 最新版 mac 系统 无法使用未签名第三驱动 10.12.多 我的情况是 10.11.4 Beta (15E27e) 使用绿联usb网卡不正常. 下面的命令为检测驱动是否装载的一些命令.sudo ...

  7. 4.机器学习——统计学习三要素与最大似然估计、最大后验概率估计及L1、L2正则化

    1.前言 之前我一直对于“最大似然估计”犯迷糊,今天在看了陶轻松.忆臻.nebulaf91等人的博客以及李航老师的<统计学习方法>后,豁然开朗,于是在此记下一些心得体会. “最大似然估计” ...

  8. DjangoRestFramework学习三之认证组件、权限组件、频率组件、url注册器、响应器、分页组件

    DjangoRestFramework学习三之认证组件.权限组件.频率组件.url注册器.响应器.分页组件   本节目录 一 认证组件 二 权限组件 三 频率组件 四 URL注册器 五 响应器 六 分 ...

  9. [ZZ] 深度学习三巨头之一来清华演讲了,你只需要知道这7点

    深度学习三巨头之一来清华演讲了,你只需要知道这7点 http://wemedia.ifeng.com/10939074/wemedia.shtml Yann LeCun还提到了一项FAIR开发的,用于 ...

  10. SVG 学习<三>渐变

    目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...

随机推荐

  1. D. 停不下来的团长奥尔加 动态规划

    题目描述 分析 设\(f[i]\) 为从 \(i\) 走到 \(i+1\) 的步数 初始值 \(f[i]=2\) 则 \(f[i]=\sum_{i=p[i]}^{i}f[i]\) 考试的时候用树状数组 ...

  2. 模拟量采集模块433Mhz LoRa无线自组网络介绍

    模拟量采集模块433Mhz LoRa无线自组网络是LPWAN(低功耗广域网Low Power Wide Area Nerwork)通信技术中的一种,是美国Semtech公司采用和推广的一种基于扩频技术 ...

  3. Python+Django实现微信扫码支付流程

    Python+Django实现微信扫码支付流程 关注公众号"轻松学编程"了解更多. 获取源码可以加我微信[1257309054],文末有二维码. [微信公众号支付官网]https: ...

  4. P2346 四子连棋

    P2346 四子连棋 迭代加深++ 题意描述 在一个4*4的棋盘上摆放了14颗棋子,其中有7颗白色棋子,7颗黑色棋子,有两个空白地带,任何一颗黑白棋子都可以向上下左右四个方向移动到相邻的空格,这叫行棋 ...

  5. How to get last SysExcelWorksheet object row or column[X++]

    findLastColumn int findLastColumn(SysExcelWorksheet _sysExcelWorksheet, boolean _data = true) { #Exc ...

  6. Android Studio导入github项目源码步骤

    1.从github上将源码下载下来 2.打开AS,新建一个新项目(我选择了EmptyActivity) 3.先不要在AS 中打开源码,来整理源码 在源码的目录下面,将project下的build.gr ...

  7. mongoDB之C#and.net Driver

    之前一直都是用NodeJS来连接操作mongoDB的,但是最近需要用C#操作mongoDB的需要,所以研究了下C#驱动.mongoDB官方在GitHub上提供了C#驱动源码https://github ...

  8. C# 时间格式处理

    C#的常用时间格式意义: 1字符"y"---year,年,yy显示13,yyyy显示2013 2字符"M"---Month,月份,M显示5,MM显示05 3字符 ...

  9. 测试工具-慢sql日志分析工具pt-query-digest

    pt-query-digest分析来自慢速日志文件,常规日志文件和二进制日志文件的MySQL查询.它还可以分析来自tcpdump的查询和MySQL协议数据. 开启慢日志 set global slow ...

  10. Linux AWK工作原理

    本篇文章我们主要为大家介绍 AWK 是如何工作的. AWK 工作流程可分为三个部分:1.读输入文件之前执行的代码段(由BEGIN关键字标识).2.主循环执行输入文件的代码段.3. 读输入文件之后的代码 ...