转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi

欢迎加入讨论群 64770604

一、本次实验所需器材

1、Arduino板 :https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-15820725129.16.AtgoEm&id=545093340395

2、1602液晶板:http://www.cnblogs.com/xiaowuyi/p/3390024.html(或者http://wikicode.net/?p=232)已经介绍过。

3、DS18b20数字温度传感器:多数入门学习时会使用LM35温度传感器(该传感器为模拟信号,需转换),由于本人在最初购买时没有注意,直接买了DS18b20,所以就使用了这个传感器。

(1)实物及管脚排列图

       

面对平面,左边为接地,中间DQ为数字信号输入/输出端,VDD为外接供电电源输入端,电源供电 3.0~5.5V (在寄生电源接线方式时接地)。

(2)DS18B20的硬件接口非常简单。供电方式为计生电源供电或外部供电。寄生电源供电(连接方法如下图)的原理是在数据线为高电平的时候“窃取”数据线的电源,电荷被存储在寄生供电电容上,用于在数据线为低的时候为设备提供电源。需要注意的是,DS18B20在进行温度转换或者将高速缓存里面的数据复制到EEPROM中时,所需的电流会达到1.5mA,超出了电容所能提供的电流,此时可采用一个MOSFET三极管来供电。

当DS18B20采用外部供电时,只需将其数据线,与单片机的一位双向端口相连就可以实现数据的传递。

注意:当温度高于100℃ 时,不能使用寄生电源,因为此时器件中较大的漏电流会使总线不能可靠检测高低电平,从而导致数据传输误码率的增大。

更加详细的DS18B20介绍,可查阅技术手册,这里不在详细记录。

4、LED:3个

5、电阻:1KΩ(1个) 4.7KΩ(1个)

6、杜邦线:若干

7、面包板:一个

二、温度传感器实验

1、硬件连接方法

上节驱动液晶是使用的手工编写代码,这次我们直接使用arduino自带的LiquidCrystal库来进行驱动,此库文件允许arduino控制板控制基于Hitachi HD44780或与之相兼容芯片大部分的液晶,可以工作于4bit或者8bit状态。下图为我们所使用的arduino的LiquidCrystal库文件位置,只有这里显示的库文件,arduino才可以调用。当然也可以自己导入库文件。另外,这里需要使用OneWire库和DallasTemperature库(读取相应地址传感器),这两个库需要下载后,自己导入。

连接图为:

2、代码

#include <LiquidCrystal.h>
#include <DallasTemperature.h>
#include <OneWire.h>#define ONE_WIRE_BUS 8LiquidCrystal lcd(12, 11, 5, 4, 3, 2);//设置接口
  OneWire oneWire(ONE_WIRE_BUS);DallasTemperature sensors(&oneWire);void setup(void){lcd.begin(16, 2);  //初始化LCD
    delay(1000); //延时1000ms
    sensors.begin();}void loop(void){sensors.requestTemperatures(); // Send the command to get temperatureslcd.clear(); //清屏lcd.setCursor(0,0);lcd.print("Local Temperature");lcd.setCursor(0, 1) ; //设置光标位置为第二行第一个位置lcd.print(" is ");lcd.setCursor(5, 1) ;lcd.print( sensors.getTempCByIndex(0)); //获取温度//  delay(1000);lcd.print((char)223); //显示o符号lcd.print("C"); //显示字母Cdelay(1000);}

3、实验效果

从实验效果来看,温度显示正常。

三、简单感温杯实验

感温杯可以直观的知道杯内水温的高低,当水温超过一定温度时,会有相应的灯亮起以提示水温。结合上面的实验,只要在上面的电路中加入几个LED灯用来显示水温即可。

1、设计思路

由于没有多种颜色的LED灯进行实验,因此本实验使用三个LED灯,用亮灯的个数来表示水温。当水温高于41度时,三个灯同时亮起,表示温度过高;当水温界于31度与40度之间,两个灯亮起,表示水温刚好;当水温低于31底时,一个灯亮起,表示水温过低。

2、硬件连接图

3、代码

#include <LiquidCrystal.h>
#include <DallasTemperature.h>
#include <OneWire.h>
#define ONE_WIRE_BUS 8
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);//设置接口
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);void setup(void){pinMode(6,OUTPUT);pinMode(7,OUTPUT);pinMode(9,OUTPUT);lcd.begin(16, 2);  //初始化LCDdelay(1000); //延时1000ms
    sensors.begin();}void loop(void){sensors.requestTemperatures();if (sensors.getTempCByIndex(0)<=31.00){digitalWrite(6,HIGH);digitalWrite(7,LOW);digitalWrite(9,LOW);}else if (sensors.getTempCByIndex(0)>31.00 && sensors.getTempCByIndex(0)<=41.00){digitalWrite(6,HIGH);digitalWrite(7,HIGH);digitalWrite(9,LOW);}else{digitalWrite(6,HIGH);digitalWrite(7,HIGH);digitalWrite(9,HIGH);        }lcd.clear(); //清屏lcd.setCursor(0,0);lcd.print("Local Temperature");lcd.setCursor(0, 1) ; //设置光标位置为第二行第一个位置lcd.print(" is ");lcd.setCursor(5, 1) ;lcd.print( sensors.getTempCByIndex(0)); //显示温度小数点后一位//  delay(1000);lcd.print((char)223); //显示o符号lcd.print("C"); //显示字母Cdelay(2000);}

4、实验效果

从实验效果来看,当把传感器放入水杯后,温度上升,从开始亮一个灯,到亮三个灯。当传感器从水杯中取出后,温度开始下降,从亮三个灯到亮一个灯,由于本人视频录制水平有限,所以在录制过程中效果体现的不是很明显。

从效果看,还存在一个问题,就是温度上升和下降的速度比较慢,如何能上其瞬间测量出实际温度,还没想清楚。

Arduino入门笔记(6):温度传感器及感温杯实验相关推荐

  1. STM32入门笔记(02):F103C8T6 舵机PWM控制实验(SPL库函数版)

    舵机的结构 舵机简单的说就是集成了直流电机. 电机控制器和减速器等, 并封装在一个便于安装的外壳里的伺服单元. 能够利用简单的输入信号比较精确的转动给定角度的电机系统. 舵机安装了一个电位器(或其它角 ...

  2. [FPGA入门笔记](九):序列检测实验,Moore和Mealy状态机对比

    简介 今天购买了AXLINX AX7020的开发板,从今天开始每一个例程都要做文档记录,为自己加油. 本实验,基于ALINX AX7020开发板,芯片为xc7z020clg400-2.开发板输入时钟为 ...

  3. ESP32 入门笔记03:PWM (ESP32 for Arduino IDE)

    先导知识 ESP32 入门笔记01:开发板信息.开发环境搭建以及学资料准备 ESP32 入门笔记02: GPIO参考指南 ESP32 有一个 LED PWM 控制器,具有 16 个独立通道,可配置为生 ...

  4. arduino 学习笔记及课件01基础入门

    arduino 学习笔记及课件01基础入门 以下学习笔记中图片部分由太极创客视频截图所得 概论 一. 引脚及信号 1.1引脚模式 INPUT:当Arduino没有使用上拉电阻或下拉电阻而直接与开放的开 ...

  5. arduino 入门套件_计算机视觉入门套件

    arduino 入门套件 Among the many disciplines in the field of machine learning, computer vision has arguab ...

  6. 机器学习入门笔记(一):模型性能评价与选择

    文章目录 一.训练误差与测试误差 1.1 基本概念 1.2 训练误差 1.3 泛化误差(测试误差) 1.4 过拟合 二.模型评估方法 2.1 留出法(hold-out) 2.2 正则化 2.3 交叉验 ...

  7. [R语言] ggplot2入门笔记4—前50个ggplot2可视化效果

    文章目录 通用教程简介(Introduction To ggplot2) 4 ggplot2入门笔记4-前50个ggplot2可视化效果 1 相关性(Correlation) 1.1 散点图(Scat ...

  8. 深度学习入门笔记(十六):计算机视觉之边缘检测

    欢迎关注WX公众号:[程序员管小亮] 专栏--深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献. 2)本文仅供学术交流,非商用.所以每一部分具 ...

  9. arduino入门教程书籍推荐,arduino从入门到精通

    今天给大家推荐的这本Arduino入门教程由国内知名创客教育和开源硬件供应商DFRobot出品,由15个基础的 Arduino项目组成,分别配合实例介绍了Arduino 的基本使用方法和各种扩展模块的 ...

最新文章

  1. C语言解析pcap文件得到HTTP信息实例(原创,附源码)
  2. Nginx搭建flv视频点播服务器
  3. Kali Linux 安全渗透教程第三更1.2 安全渗透所需工具
  4. c++中的deque容器
  5. 北大教授最短毕业致辞。#人性的可爱 #饶毅#自我尊重
  6. 基于canvas的视频遮罩插件
  7. 将可执行文件加入到系统启动项中
  8. Pytorch:线性代数
  9. 傻丫头字幕精灵(Sayatoo字幕精灵)2.3.9下载附教程
  10. OkHttp3 源码解读
  11. [Windows] 专业的家谱族谱制作软件My Family Tree v10.3.4
  12. 菜菜之路-C语言求阶乘和
  13. control reaches end of non-void function
  14. 八段数码管动态显示(输入数据为BCD编码)
  15. 演示笔记本重装系统win7教程,笔记本电脑安装win7系统
  16. 雨季车辆天窗漏水解决银弹
  17. 英国AI研究员揭开真相,中国人工智能为何能发展迅速?
  18. TOP 1比不加TOP慢的疑惑
  19. 电报加密C语言版(字符串整体后移一位的方法)
  20. 数据结构(二)算法绪论

热门文章

  1. linux:你不知道的echo
  2. 大数据之-Hadoop3.x_生产调优手册_HDFS读写压测---大数据之hadoop3.x工作笔记0162
  3. 程序人生001--点滴感悟-随笔01
  4. AndroidStudio_android中实现ImageView的清空操作---Android原生开发工作笔记235
  5. ElementUI以及uvie的图标使用和设置---SpringCloud Alibaba_若依微服务框架改造_ElementUI+uniapp_uview---工作笔记015
  6. 持续集成部署Jenkins工作笔记0019---19.在Jenkins中指定Git客户端位置
  7. maven异常001---报错The folder is already a source folder.的解决办法
  8. 人脸识别FAR值重新认识
  9. vector 的删除
  10. 学习编写测试桩之declspec (dllexport)篇