版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第5 5章章 ArduinoArduino的扩展库的扩展库本章内容本章内容: Arduino扩展库扩展库 创建自己的函数库创建自己的函数库 DHT11温湿度传感器温湿度传感器 自定义函数库自定义函数库dht的使用的使用 5.1 Arduino 5.1 Arduino 扩展库扩展库1、什么是、什么是Arduino扩展库扩展库 使用使用 C+ 类将类将Arduino的某一类外设的复杂应用的某一类外设的复杂应用,尤其是将硬件底层的具体实现封装起来,对外提供,尤其是将硬件底层的具体实现封装起来,对外提供标准的、统一的接口,使得用户对开发标准的、统一的接口,使得用户对开发 Arduino 的应的应用变
2、得十分容易。由现有的这样的一系列的用变得十分容易。由现有的这样的一系列的C+类就类就组成了组成了 Arduino 的扩展库。的扩展库。Arduino扩展库作用:扩展库作用: 将硬件底层的应用封装起来将硬件底层的应用封装起来; 针对具体应用编写相应的库;针对具体应用编写相应的库; Arduino扩展库扩展库EEPROM库库SoftwareSerial库库HardwareSerial库库OneWire库库Wire库库SPI库库Servo库库Stepper库库LiquidCrystal库库数据存储数据存储数据通信数据通信舵机控制舵机控制步进电机步进电机液晶显示液晶显示XBee库库无线通信无线通信TL
3、C5940库库 PWM扩展扩展Ethernet库库以太网络以太网络图图1 Arduino类库结构示意图类库结构示意图2、Arduino扩展库的使用扩展库的使用 Arduino扩展库的使用分三步:扩展库的使用分三步: (1) 要确定要确定Arduino开发环境目录下的开发环境目录下的libraries文文 件夹包含要使用的库,如果是从网络上下载件夹包含要使用的库,如果是从网络上下载 的其它扩展库,也要复制到该目录下。的其它扩展库,也要复制到该目录下。 (2) 要了解扩展库的成员,一般在扩展库文件夹要了解扩展库的成员,一般在扩展库文件夹 下有个下有个Example,可帮助我们理解类成员函,可帮助我
4、们理解类成员函 数的使用。数的使用。 (3) 导入函数库。开发环境的菜单导入函数库。开发环境的菜单Sketch imp- ort Library 选择具体的库选择具体的库 。 5.2 5.2 创建自己的创建自己的ArduinoArduino库库1、类的定义、类的定义 C+ 类定义的形式如下,类定义的形式如下,MorseCode为类名。为类名。class MorseCode private: /定义私有数据成员和函数;定义私有数据成员和函数; public: /定义公有数据成员和函数;定义公有数据成员和函数; protected: /定义保护数据成员和函数;定义保护数据成员和函数; 一般的,一般
5、的,C+的类分两个部分,类的定义部分放的类分两个部分,类的定义部分放在一个后缀名为在一个后缀名为“.h”的头文件中,类的实现部分放的头文件中,类的实现部分放在一个后缀名为在一个后缀名为“.cpp”的文件中。的文件中。 本例的类文件分别保存为本例的类文件分别保存为Morse.h、MorseCode- .cpp 。2、引入自定义函数库、引入自定义函数库 在代码库在代码库(libraries)目录下,创建一个文件夹,目录下,创建一个文件夹,名字为名字为“Morse”,并将,并将MorseCode.h、MorseCode.cpp两个文件拷贝到两个文件拷贝到“Morse”文件夹下文件夹下。 启动启动Ar
6、duino IDE,打开打开SketchImport Library菜单,此时应能看到菜单,此时应能看到Morse菜单项。菜单项。3、使用自定义函数库、使用自定义函数库 目前目前Arduino的的IDE无法自动识别自定义函数库无法自动识别自定义函数库里的内容,所以需要给里的内容,所以需要给Arduino一点帮助:在一点帮助:在Morse的文件夹里,创建一个叫的文件夹里,创建一个叫keywords.txt文件。文件。MorseKEYWORD1 Dash KEYWORD2 dot KEYWORD2ET LITERAL1OT LITERAL1 注意注意:类名的类型是类名的类型是KEYWORD1,公共
7、函数的类型,公共函数的类型 是是KEYWORD2,常量的类型是,常量的类型是LITERAL1。4、对象的创建及成员函数的调用、对象的创建及成员函数的调用 对象的创建就象变量定义一样简单。对象的创建就象变量定义一样简单。 #include MorseCode morse; morse.dot( ); 6.3 DTH116.3 DTH11温湿度传感器温湿度传感器1、产品概述、产品概述 DHT11 数字温湿度传感器是一款含有已校准数数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感模块采集技术和温湿度
8、传感技术,确保产品具有极高的技术,确保产品具有极高的可靠性与卓越的长期稳定性可靠性与卓越的长期稳定性。传感器包括一个电阻式感。传感器包括一个电阻式感湿元件和一个湿元件和一个NTC 测温元件测温元件,并与一个高性能,并与一个高性能 8 位单片位单片机相连接。如图机相连接。如图 2 所示。所示。图图2 DTH11温湿度传感器实物图温湿度传感器实物图2、应用范围、应用范围 暖通空调、除湿器、测试及检测设备、消费品、暖通空调、除湿器、测试及检测设备、消费品、汽车、自动控制、数据记录器、气象站、家电、湿度汽车、自动控制、数据记录器、气象站、家电、湿度调节器、医疗、其他相关湿度检测控制。调节器、医疗、其他
9、相关湿度检测控制。 3、产品参数、产品参数 (1) 相对湿度相对湿度 分分 辨辨 率率: 0.1%RH 16Bit 重重 复复 性性: 1%RH 精精 度度: 25 2%RH 响应时间响应时间: 25 6s (2) 温度温度 分分 辨辨 率:率:0.1%RH 16Bit 重重 复复 性:性:0.2 量程范围:量程范围:25 0.2 -4080 1 响应时间:响应时间:1/e(63%) 10S (3) 电气特性电气特性 供供 电:电:DC 3.5-5.5V 供电电流:供电电流:测量测量0.3mA 待机待机 60A 采样周期:采样周期:大于大于2秒秒/次次 (4) 引脚说明引脚说明 VDD 供电供
10、电3.5-5.5V DC DATA 串行数据,单总线串行数据,单总线 GND 接地,电源负极接地,电源负极 NC 空脚空脚4、串行通信、串行通信 DHT11器件采用简化的器件采用简化的单总线单总线通信。单总线即只通信。单总线即只有一根数据线,系统中的数据交换、控制均由单总线有一根数据线,系统中的数据交换、控制均由单总线完成。设备(主机或从机)通过一个漏极开路或三态完成。设备(主机或从机)通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能够端口连至该数据线,以允许设备在不发送数据时能够释放总线,而让其它设备使用总线;单总线通常释放总线,而让其它设备使用总线;单总线通常要求要求外接
11、一个约外接一个约 5.1k的上拉电阻的上拉电阻,这样,当总线闲置时,这样,当总线闲置时,其状态为高电平。,其状态为高电平。 采用单总线传输的数据格式,一次传送采用单总线传输的数据格式,一次传送40位数位数据据 ,高位先出。,高位先出。 8bit湿度整数数据湿度整数数据 + 8bit湿度小数数据湿度小数数据 + 8bit温度整数数据温度整数数据 + 8bit温度小数数据温度小数数据 + 8bit校验位校验位 校验位数据定义为前四部分之和的后校验位数据定义为前四部分之和的后 8 位位。 示例一:接收到的示例一:接收到的40位数据为位数据为: 0011 0101 0000 0000 0001 100
12、0 0000 0000 0100 1101 湿度高湿度高8位位 湿度低湿度低8位位 温度高温度高8位位 温度低温度低8位位 校验位校验位 0011 0101+0000 0000+0001 1000+0000 0000= 0100 1101 接收数据正确:接收数据正确: 湿度:湿度:0011 0101=35H=53%RH 温度:温度:0001 1000=18H=24实践操作实践操作: 参考图参考图 3 所示电路原理图,测量当前环境下的温度和所示电路原理图,测量当前环境下的温度和湿度。注意湿度。注意DHT11外接电源和地取自外接电源和地取自Arduino的的5V电源和电源和Gnd,数据线外接一个,
13、数据线外接一个5K的上拉电阻,并将数据线连接在的上拉电阻,并将数据线连接在Arduino数字端口的数字端口的4号上。号上。图图3 DTH11测量温湿度电路连接示意图测量温湿度电路连接示意图 系统运行结果如图系统运行结果如图4所示。所示。图图4 DTH11测量温湿度结果测量温湿度结果参考代码参考代码:#include dht DHT; #define DHT11_PIN 5 void setup() Serial.begin(9600); Serial.println(DHT TEST PROGRAM ); Serial.print(LIBRARY VERSION: ); Serial.prin
14、tln(DHT_LIB_VERSION); Serial.println(); Serial.println(Type,tstatus,tHumidity(%) , tTemperature (C); pinMode(DHT11_PIN ,INPUT); void loop() Serial.print(DHT11, t); int chk = DHT.read11(DHT11_PIN); /读数据读数据 switch (chk) case 0: Serial.print(OK,t); /正常正常 break; case -1: Serial.print(Checksum error,t);
15、break; /数据校验错数据校验错 case -2: Serial.print(Time out error,t); break; /数据超时错数据超时错 default: Serial.print(Unknown error,t); break; /end switch / 显示采集的数据显示采集的数据 Serial.print(DHT.humidity,1); /输出湿度值输出湿度值 Serial.print(,t); Serial.println(DHT.temperature,1); /输出温度输出温度 值值 delay(1000); 思考和练习:思考和练习:1、了解、了解Arduino扩展库扩展库 。2、掌握、掌握Arduino扩展库的使用步骤。扩展库的使用步骤。3、掌握自定义函数库的创建方法。、掌握自定义函数库的创建方法。4、了解温湿度传感器、了解温湿度传感器DHT11的基本参数及单的基本参数及单 总线数据传输的方式等。总线数据传输的方式等。5、测试、测试DHT11。/ FILE: dht.h #ifndef dht_h #define dht_h #if ARDUINO 100
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 起重机轨道智能监测与维护方案
- 铁路建设机械租赁方案
- 建筑项目管理服务合同
- 2024年国际货物海运协议
- 2024年新疆客车从业资格证考试试题题库
- 2024年贺州客运从业资格证模拟考试题
- 2024年锦州小型客运从业资格证考试
- 2024年江苏客运从业资格证试题下载
- 企业竞争战略的临床分析
- 传染病疫情防控志愿者表彰培训总结
- 档案移交方案
- 高中英语外研版(2019)选择性必修第一册各单元主题语境与单元目标
- 人教版数学三年级上册《1-4单元综合复习》试题
- 2024年水利工程行业技能考试-水利部质量检测员笔试历年真题荟萃含答案
- (新版)三级物联网安装调试员技能鉴定考试题库大全-上(单选题汇总)
- 2024年室内装饰设计师(高级工)考试复习题库(含答案)
- 教育培训行业2024年生产与制度改革方案
- 快消行业品牌分析
- 口腔新技术护理课件
- 社交电商的供应链管理和优化
- 题材05乡土小说专题精练-2024年高考语文二轮复习三点突破讲解专练
评论
0/150
提交评论