Arduino应用技术 课件 Arduino的扩展库_第1页
Arduino应用技术 课件 Arduino的扩展库_第2页
Arduino应用技术 课件 Arduino的扩展库_第3页
Arduino应用技术 课件 Arduino的扩展库_第4页
Arduino应用技术 课件 Arduino的扩展库_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章Arduino的扩展库本章内容:

Arduino扩展库创建自己的函数库

DHT11温湿度传感器自定义函数库dht的使用

5.1Arduino扩展库1、什么是Arduino扩展库

使用C++类将Arduino的某一类外设的复杂应用,尤其是将硬件底层的具体实现封装起来,对外提供标准的、统一的接口,使得用户对开发Arduino的应用变得十分容易。由现有的这样的一系列的C++类就组成了Arduino的扩展库。Arduino扩展库作用:

将硬件底层的应用封装起来;

针对具体应用编写相应的库;

Arduino扩展库EEPROM库SoftwareSerial库HardwareSerial库OneWire库Wire库SPI库Servo库Stepper库LiquidCrystal库数据存储数据通信舵机控制步进电机液晶显示XBee库无线通信TLC5940库PWM扩展Ethernet库以太网络图1Arduino类库结构示意图2、Arduino扩展库的使用

Arduino扩展库的使用分三步:(1)要确定Arduino开发环境目录下的libraries文

件夹包含要使用的库,如果是从网络上下载

的其它扩展库,也要复制到该目录下。(2)要了解扩展库的成员,一般在扩展库文件夹

下有个Example,可帮助我们理解类成员函

数的使用。(3)导入函数库。开发环境的菜单Sketch→imp-ortLibrary→选择具体的库。

5.2创建自己的Arduino库1、类的定义

C++类定义的形式如下,MorseCode为类名。classMorseCode{

private:

//定义私有数据成员和函数;

public:

//定义公有数据成员和函数;

protected:

//定义保护数据成员和函数;}

一般的,C++的类分两个部分,类的定义部分放在一个后缀名为“.h”的头文件中,类的实现部分放在一个后缀名为“.cpp”的文件中。

本例的类文件分别保存为Morse.h、MorseCode-.cpp。2、引入自定义函数库

在代码库(libraries)目录下,创建一个文件夹,名字为“Morse”,并将MorseCode.h、MorseCode.cpp两个文件拷贝到“Morse”文件夹下。

启动ArduinoIDE,打开Sketch→ImportLibrary菜单,此时应能看到Morse菜单项。3、使用自定义函数库

目前Arduino的IDE无法自动识别自定义函数库里的内容,所以需要给Arduino一点帮助:在Morse的文件夹里,创建一个叫keywords.txt文件。Morse KEYWORD1Dash KEYWORD2dot KEYWORD2ET

LITERAL1OT

LITERAL1

注意:类名的类型是KEYWORD1,公共函数的类型是KEYWORD2,常量的类型是LITERAL1。4、对象的创建及成员函数的调用

对象的创建就象变量定义一样简单。

#include<Morse.h>MorseCodemorse;

morse.dot();

6.3DTH11温湿度传感器1、产品概述

DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC

测温元件,并与一个高性能8位单片机相连接。如图2所示。图2DTH11温湿度传感器实物图2、应用范围

暖通空调、除湿器、测试及检测设备、消费品、汽车、自动控制、数据记录器、气象站、家电、湿度调节器、医疗、其他相关湿度检测控制。3、产品参数

(1)相对湿度

分辨率:0.1%RH16Bit

重复性:±1%RH

精度:25℃±2%RH

响应时间:25℃6s

(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秒/次

(4)引脚说明

VDD供电3.5-5.5VDC

DATA串行数据,单总线

GND接地,电源负极

NC空脚4、串行通信

DHT11器件采用简化的单总线通信。单总线即只有一根数据线,系统中的数据交换、控制均由单总线完成。设备(主机或从机)通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能够释放总线,而让其它设备使用总线;单总线通常要求外接一个约5.1kΩ的上拉电阻,这样,当总线闲置时,其状态为高电平。◎采用单总线传输的数据格式,一次传送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℃实践操作:参考图3所示电路原理图,测量当前环境下的温度和湿度。注意DHT11外接电源和地取自Arduino的5V电源和Gnd,数据线外接一个5K的上拉电阻,并将数据线连接在Arduino数字端口的4号上。图3DTH11测量温湿度电路连接示意图系统运行结果如图4所示。图4DTH11测量温湿度结果参考代码:#include<dht.h>

dhtDHT;

#defineDHT11_PIN5

voidsetup(){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);}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;//数据超时错default:Serial.print("Unknownerror,\t");break;

}

//endswitch

//显示采集的数据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

#ifndefdht_h#definedht_h

#ifARDUINO<100#include<WProgram.h>#else#include<Arduino.h>#endif

#defineDHT_LIB_VERSION"0.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论