Arduino的扩展库

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Aduino第5章阿帝诺扩展库第5章Arduino的扩展库本章内容:Arduino扩展库创建自己的函数库DHT11温湿度传感器自定义函数库dht的使用Aduino第5章阿帝诺扩展库5.1Arduino扩展库1、什么是Arduino扩展库使用C++类将Arduino的某一类外设的复杂应用,尤其是将硬件底层的具体实现封装起来,对外提供标准的、统一的接口,使得用户对开发Arduino的应用变得十分容易。由现有的这样的一系列的C++类就组成了Arduino的扩展库。Arduino扩展库作用:•将硬件底层的应用封装起来;•针对具体应用编写相应的库;Aduino第5章阿帝诺扩展库Arduino扩展库EEPROM库SoftwareSerial库HardwareSerial库OneWire库Wire库SPI库Servo库Stepper库LiquidCrystal库数据存储数据通信舵机控制步进电机液晶显示XBee库无线通信TLC5940库PWM扩展Ethernet库以太网络图1Arduino类库结构示意图Aduino第5章阿帝诺扩展库2、Arduino扩展库的使用Arduino扩展库的使用分三步:(1)要确定Arduino开发环境目录下的libraries文件夹包含要使用的库,如果是从网络上下载的其它扩展库,也要复制到该目录下。(2)要了解扩展库的成员,一般在扩展库文件夹下有个Example,可帮助我们理解类成员函数的使用。(3)导入函数库。开发环境的菜单Sketch→imp-ortLibrary→选择具体的库。Aduino第5章阿帝诺扩展库5.2创建自己的Arduino库1、类的定义C++类定义的形式如下,MorseCode为类名。classMorseCode{private://定义私有数据成员和函数;public://定义公有数据成员和函数;protected://定义保护数据成员和函数;}Aduino第5章阿帝诺扩展库一般的,C++的类分两个部分,类的定义部分放在一个后缀名为“.h”的头文件中,类的实现部分放在一个后缀名为“.cpp”的文件中。本例的类文件分别保存为Morse.h、MorseCode-.cpp。2、引入自定义函数库在代码库(libraries)目录下,创建一个文件夹,名字为“Morse”,并将MorseCode.h、MorseCode.cpp两个文件拷贝到“Morse”文件夹下。启动ArduinoIDE,打开Sketch→ImportLibrary菜单,此时应能看到Morse菜单项。Aduino第5章阿帝诺扩展库3、使用自定义函数库目前Arduino的IDE无法自动识别自定义函数库里的内容,所以需要给Arduino一点帮助:在Morse的文件夹里,创建一个叫keywords.txt文件。MorseKEYWORD1DashKEYWORD2dotKEYWORD2ETLITERAL1OTLITERAL1注意:类名的类型是KEYWORD1,公共函数的类型是KEYWORD2,常量的类型是LITERAL1。Aduino第5章阿帝诺扩展库4、对象的创建及成员函数的调用对象的创建就象变量定义一样简单。#includeMorse.hMorseCodemorse;morse.dot();Aduino第5章阿帝诺扩展库6.3DTH11温湿度传感器1、产品概述DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。如图2所示。图2DTH11温湿度传感器实物图Aduino第5章阿帝诺扩展库2、应用范围暖通空调、除湿器、测试及检测设备、消费品、汽车、自动控制、数据记录器、气象站、家电、湿度调节器、医疗、其他相关湿度检测控制。3、产品参数(1)相对湿度分辨率:0.1%RH16Bit重复性:±1%RH精度:25℃±2%RH响应时间:25℃6sAduino第5章阿帝诺扩展库(2)温度分辨率:0.1%RH16Bit重复性:±0.2℃量程范围:25℃±0.2℃-40~80℃±1℃响应时间:1/e(63%)10S(3)电气特性供电:DC3.5-5.5V供电电流:测量0.3mA待机60μA采样周期:大于2秒/次Aduino第5章阿帝诺扩展库(4)引脚说明VDD供电3.5-5.5VDCDATA串行数据,单总线GND接地,电源负极NC空脚4、串行通信DHT11器件采用简化的单总线通信。单总线即只有一根数据线,系统中的数据交换、控制均由单总线完成。设备(主机或从机)通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能够释放总线,而让其它设备使用总线;单总线通常要求外接一个约5.1kΩ的上拉电阻,这样,当总线闲置时,其状态为高电平。Aduino第5章阿帝诺扩展库◎采用单总线传输的数据格式,一次传送40位数据,高位先出。8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验位◎校验位数据定义为前四部分之和的后8位。示例一:接收到的40位数据为:0011010100000000000110000000000001001101湿度高8位湿度低8位温度高8位温度低8位校验位00110101+00000000+00011000+00000000=01001101接收数据正确:湿度:00110101=35H=53%RH温度:00011000=18H=24℃Aduino第5章阿帝诺扩展库实践操作:参考图3所示电路原理图,测量当前环境下的温度和湿度。注意DHT11外接电源和地取自Arduino的5V电源和Gnd,数据线外接一个5K的上拉电阻,并将数据线连接在Arduino数字端口的4号上。图3DTH11测量温湿度电路连接示意图Aduino第5章阿帝诺扩展库系统运行结果如图4所示。图4DTH11测量温湿度结果参考代码:Aduino第5章阿帝诺扩展库#includedht.hdhtDHT;#defineDHT11_PIN5voidsetup(){Serial.begin(9600);Serial.println(DHTTESTPROGRAM);Serial.print(LIBRARYVERSION:);Serial.println(DHT_LIB_VERSION);Serial.println();Serial.println(Type,\tstatus,\tHumidity(%),\tTemperature(C));pinMode(DHT11_PIN,INPUT);}Aduino第5章阿帝诺扩展库voidloop(){Serial.print(DHT11,\t);intchk=DHT.read11(DHT11_PIN);//读数据switch(chk){case0:Serial.print(OK,\t);//正常break;case-1:Serial.print(Checksumerror,\t);break;//数据校验错case-2:Serial.print(Timeouterror,\t);break;//数据超时错Aduino第5章阿帝诺扩展库default:Serial.print(Unknownerror,\t);break;}//endswitch//显示采集的数据Serial.print(DHT.humidity,1);//输出湿度值Serial.print(,\t);Serial.println(DHT.temperature,1);//输出温度值delay(1000);}Aduino第5章阿帝诺扩展库思考和练习:1、了解Arduino扩展库。2、掌握Arduino扩展库的使用步骤。3、掌握自定义函数库的创建方法。4、了解温湿度传感器DHT11的基本参数及单总线数据传输的方式等。5、测试DHT11。Aduino第5章阿帝诺扩展库//FILE:dht.h#ifndefdht_h#definedht_h#ifARDUINO100#includeWProgram.h#else#includeArduino.h#endif#defineDHT_LIB_VERSION0.1.01”Aduino第5章阿帝诺扩展库classdht{public:intread11(uint8_tpin);intread22(uint8_tpin);doublehumidity;doubletemperature;private:uint8_tbits[5];//buffertoreceivedataintread(uint8_tpin);};#endif

1 / 21
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功