《Arduino的扩展库.ppt》由会员分享,可在线阅读,更多相关《Arduino的扩展库.ppt(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 第第第第章章章章阿阿阿阿帝帝帝帝诺诺诺诺扩扩扩扩展展展展库库库库第第5 5章章 ArduinoArduino的扩展库的扩展库本章内容本章内容:Arduino扩展库扩展库创建自己的函数库创建自己的函数库DHT11温湿度传感器温湿度传感器自定义函数库自定义函数库dht的使用的使用 第第第第章章章章阿阿阿阿帝帝帝帝诺诺诺诺扩扩扩扩展展展展库库库库 5.1 Arduino 5.1 Arduino 扩展库扩展库1、什么是、什么是Arduino扩展库扩展库使用使用C+类将类将Arduino的某一类外设的复杂应用,的某一类外设的复杂应用,尤其是将硬件底层的具体实现封装起来,对外提供标尤其是将硬件底层的具体
2、实现封装起来,对外提供标准的、统一的接口,使得用户对开发准的、统一的接口,使得用户对开发Arduino的应用的应用变得十分容易。由现有的这样的一系列的变得十分容易。由现有的这样的一系列的C+类就组类就组成了成了Arduino的扩展库。的扩展库。Arduino扩展库作用:扩展库作用:将硬件底层的应用封装起来将硬件底层的应用封装起来;针对具体应用编写相应的库;针对具体应用编写相应的库;第第第第章章章章阿阿阿阿帝帝帝帝诺诺诺诺扩扩扩扩展展展展库库库库Arduino扩展库扩展库EEPROM库库SoftwareSerial库库HardwareSerial库库OneWire库库Wire库库SPI库库Ser
3、vo库库Stepper库库LiquidCrystal库库数据存储数据存储数据通信数据通信舵机控制舵机控制步进电机步进电机液晶显示液晶显示XBee库库无线通信无线通信TLC5940库库PWM扩展扩展Ethernet库库以太网络以太网络图图1Arduino类库结构示意图类库结构示意图 第第第第章章章章阿阿阿阿帝帝帝帝诺诺诺诺扩扩扩扩展展展展库库库库2、Arduino扩展库的使用扩展库的使用Arduino扩展库的使用分三步:扩展库的使用分三步:(1)要确定要确定Arduino开发环境目录下的开发环境目录下的libraries文文件夹包含要使用的库,如果是从网络上下载件夹包含要使用的库,如果是从网络上
4、下载的其它扩展库,也要复制到该目录下。的其它扩展库,也要复制到该目录下。(2)要了解扩展库的成员,一般在扩展库文件夹要了解扩展库的成员,一般在扩展库文件夹下有个下有个Example,可帮助我们理解类成员函,可帮助我们理解类成员函数的使用。数的使用。(3)导入函数库。开发环境的菜单导入函数库。开发环境的菜单Sketchimp-ortLibrary选择具体的库选择具体的库。第第第第章章章章阿阿阿阿帝帝帝帝诺诺诺诺扩扩扩扩展展展展库库库库 5.2 5.2 创建自己的创建自己的ArduinoArduino库库1、类的定义、类的定义C+类定义的形式如下,类定义的形式如下,MorseCode为类名。为类名
5、。classMorseCodeprivate:/定义私有数据成员和函数;定义私有数据成员和函数;public:/定义公有数据成员和函数;定义公有数据成员和函数;protected:/定义保护数据成员和函数;定义保护数据成员和函数;第第第第章章章章阿阿阿阿帝帝帝帝诺诺诺诺扩扩扩扩展展展展库库库库一般的,一般的,C+的类分两个部分,类的定义部分放的类分两个部分,类的定义部分放在一个后缀名为在一个后缀名为“.h”的头文件中,类的实现部分放的头文件中,类的实现部分放在一个后缀名为在一个后缀名为“.cpp”的文件中。的文件中。本例的类文件分别保存为本例的类文件分别保存为Morse.h、MorseCode
6、-.cpp。2、引入自定义函数库、引入自定义函数库在代码库在代码库(libraries)目录下,创建一个文件夹,名目录下,创建一个文件夹,名字为字为“Morse”,并将,并将MorseCode.h、MorseCode.cpp两个文件拷贝到两个文件拷贝到“Morse”文件夹下。文件夹下。启动启动ArduinoIDE,打开打开SketchImportLibrary菜单,此时应能看到菜单,此时应能看到Morse菜单项。菜单项。第第第第章章章章阿阿阿阿帝帝帝帝诺诺诺诺扩扩扩扩展展展展库库库库3、使用自定义函数库、使用自定义函数库目前目前Arduino的的IDE无法自动识别自定义函数库无法自动识别自定义
7、函数库里的内容,所以需要给里的内容,所以需要给Arduino一点帮助:在一点帮助:在Morse的的文件夹里,创建一个叫文件夹里,创建一个叫keywords.txt文件。文件。MorseKEYWORD1DashKEYWORD2dotKEYWORD2ETLITERAL1OTLITERAL1注意注意:类名的类型是类名的类型是KEYWORD1,公共函数的类型,公共函数的类型是是KEYWORD2,常量的类型是,常量的类型是LITERAL1。第第第第章章章章阿阿阿阿帝帝帝帝诺诺诺诺扩扩扩扩展展展展库库库库4、对象的创建及成员函数的调用、对象的创建及成员函数的调用对象的创建就象变量定义一样简单。对象的创建就
8、象变量定义一样简单。#include MorseCode morse;morse.dot();第第第第章章章章阿阿阿阿帝帝帝帝诺诺诺诺扩扩扩扩展展展展库库库库 6.3 DTH116.3 DTH11温湿度传感器温湿度传感器1、产品概述、产品概述DHT11数字温湿度传感器是一款含有已校准数数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感模块采集技术和温湿度传感技术,确保产品具有极高的技术,确保产品具有极高的可靠性与卓越的长期稳定性。可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿传感器包括一个电
9、阻式感湿元件和一个元件和一个NTC测温元件,测温元件,并与一个高性能并与一个高性能8位单片机位单片机相连接。如图相连接。如图2所示。所示。图图2DTH11温湿度传感器实物图温湿度传感器实物图 第第第第章章章章阿阿阿阿帝帝帝帝诺诺诺诺扩扩扩扩展展展展库库库库2、应用范围、应用范围暖通空调、除湿器、测试及检测设备、消费品、暖通空调、除湿器、测试及检测设备、消费品、汽车、自动控制、数据记录器、气象站、家电、湿度汽车、自动控制、数据记录器、气象站、家电、湿度调节器、医疗、其他相关湿度检测控制。调节器、医疗、其他相关湿度检测控制。3、产品参数、产品参数(1)相对湿度相对湿度分分辨辨率率:0.1%RH16
10、Bit重重复复性性:1%RH精精度度:252%RH响应时间响应时间:256s 第第第第章章章章阿阿阿阿帝帝帝帝诺诺诺诺扩扩扩扩展展展展库库库库(2)温度温度分分辨辨率:率:0.1%RH16Bit重重复复性:性:0.2量程范围:量程范围:250.2-40801响应时间:响应时间:1/e(63%)10S(3)电气特性电气特性供供电:电:DC3.5-5.5V供电电流:供电电流:测量测量0.3mA待机待机60A采样周期:采样周期:大于大于2秒秒/次次 第第第第章章章章阿阿阿阿帝帝帝帝诺诺诺诺扩扩扩扩展展展展库库库库(4)引脚说明引脚说明VDD供电供电3.5-5.5VDCDATA串行数据,单总线串行数据
11、,单总线GND接地,电源负极接地,电源负极NC空脚空脚4、串行通信、串行通信DHT11器件采用简化的器件采用简化的单总线单总线通信。单总线即只通信。单总线即只有一根数据线,系统中的数据交换、控制均由单总线有一根数据线,系统中的数据交换、控制均由单总线完成。设备(主机或从机)通过一个漏极开路或三态完成。设备(主机或从机)通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能够端口连至该数据线,以允许设备在不发送数据时能够释放总线,而让其它设备使用总线;单总线通常释放总线,而让其它设备使用总线;单总线通常要求要求外接一个约外接一个约5.1k的上拉电阻的上拉电阻,这样,当总线闲置时,这样
12、,当总线闲置时,其状态为高电平。其状态为高电平。第第第第章章章章阿阿阿阿帝帝帝帝诺诺诺诺扩扩扩扩展展展展库库库库采用单总线传输的数据格式,一次传送采用单总线传输的数据格式,一次传送40位数据位数据,高位先出。,高位先出。8bit湿度整数数据湿度整数数据+8bit湿度小数数据湿度小数数据+8bit温度整数数据温度整数数据+8bit温度小数数据温度小数数据+8bit校验位校验位校验位数据定义为前四部分之和的后校验位数据定义为前四部分之和的后8位位。示例一:接收到的示例一:接收到的40位数据为位数据为:0011010100000000000110000000000001001101湿度高湿度高8位位
13、湿度低湿度低8位位温度高温度高8位位温度低温度低8位位校验位校验位00110101+00000000+00011000+00000000=01001101接收数据正确:接收数据正确:湿度:湿度:00110101=35H=53%RH温度:温度:00011000=18H=24 第第第第章章章章阿阿阿阿帝帝帝帝诺诺诺诺扩扩扩扩展展展展库库库库实践操作实践操作:参考图参考图 3 所示电路原理图,测量当前环境下的温度和所示电路原理图,测量当前环境下的温度和湿度。注意湿度。注意DHT11外接电源和地取自外接电源和地取自Arduino的的5V电源和电源和Gnd,数据线外接一个,数据线外接一个5K的上拉电阻,
14、并将数据线连接在的上拉电阻,并将数据线连接在Arduino数字端口的数字端口的4号上。号上。图图3DTH11测量温湿度电路连接示意图测量温湿度电路连接示意图 第第第第章章章章阿阿阿阿帝帝帝帝诺诺诺诺扩扩扩扩展展展展库库库库 系统运行结果如图系统运行结果如图4所示。所示。图图4DTH11测量温湿度结果测量温湿度结果参考代码参考代码:第第第第章章章章阿阿阿阿帝帝帝帝诺诺诺诺扩扩扩扩展展展展库库库库#include dht DHT;#define DHT11_PIN 5 void setup()Serial.begin(9600);Serial.println(DHT TEST PROGRAM);S
15、erial.print(LIBRARY VERSION:);Serial.println(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)
16、;/正常正常 break;case-1:Serial.print(Checksum error,t);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.print
17、ln(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#include#else#include#endif#define DHT_LIB_VERSION 0.1.01”第第第第章章章章阿阿阿阿帝帝帝帝诺诺诺诺扩扩扩扩展展展展库库库库class dht public:int read11(uint8_t pin);int read22(uint8_t pin);double humidity;double temperature;private:uint8_t bits5;/buffer to receive data int read(uint8_t pin);#endif