当前位置:文档之家› Arduino的扩展库

Arduino的扩展库

Morse Dash dot KEYWORD1 KEYWORD2 KEYWORD2
ET
OT
LITERAL1
LITERAL1
A d u i n o 第 5 章阿 帝 诺 扩 展 库
4、对象的创建及成员函数的调用
对象的创建就象变量定义一样简单。 #include <Morse.h> MorseCode morse; morse.dot( );
湿度高8位 湿度低8位 温度高8位 温度低8位 校验位
0011 0101+0000 0000+0001 1000+0000 0000= 0100 1101 接收数据正确: 湿度:0011 0101=35H=53%RH 温度:0001 1000=18H=24℃
A d u i n o 第 5 章 阿 帝 诺 扩 展 库
A d u i n o 第 5 章 阿 帝 诺 扩 展 库
◎ 采用单总线传输的数据格式,一次传送40位数据 ,高位先出。 8bit湿度整数数据 + 8bit湿度小数数据 + 8bit温度整数数据 + 8bit温度小数数据 + 8bit校验位
◎ 校验位数据定义为前四部分之和的后 8 位。
示例一:接收到的40位数据为: 0011 0101 0000 0000 0001 1000 0000 0000 0100 1101
图2 DTH11温湿度传感器实物图
A d u i n o 第 5 章 阿 帝 诺 扩 展 库
2、应用范围
暖通空调、除湿器、测试及检测设备、消费品、 汽车、自动控制、数据记录器、气象站、家电、湿度 调节器、医疗、其他相关湿度检测控制。
3、产品参数
(1) 相对湿度
分 辨 率: 0.1%RH 16Bit 重 复 性: ±1%RH 精 度: 25℃ ±2%RH 响应时间: 25℃ 6s
一般的,C++的类分两个部分,类的定义部分放 在一个后缀名为“.h”的头文件中,类的实现部分放 在一个后缀名为“.cpp”的文件中。 本例的类文件分别保存为Morse.h、MorseCode.cpp 。
2、引入自定义函数库
在代码库(libraries)目录下,创建一个文件夹,名 字为“Morse”,并将MorseCode.h、MorseCode.cpp 两个文件拷贝到“Morse”文件夹下。 启动Arduino IDE,打开Sketch→Import Library 菜单,此时应能看到Morse菜单项。
PWM扩展
TLC5940库
SPI库
舵机控制
Servo库
以太网络
Ethernet库
步进电机
Stepper库
液晶显示
LiquidCrystal库 图1 Arduino类库结构示意图
A d u i n o 第 5 章 阿 帝 诺 扩 展 库
2、Arduino扩展库的使用
Arduino扩展库的使用分三步: (1) 要确定Arduino开发环境目录下的libraries文 件夹包含要使用的库,如果是从网络上下载 的其它扩展库,也要复制到该目录下。
// FILE: dht.h #ifndef dht_h #define dht_h
#if ARDUINO < 100 #include <WProgram.h> #else #include <Arduino.h> #endif
#define DHT_LIB_VERSION "0.1.01”
A d u i n o 第 5 章 阿 帝 诺 扩 展 库
A d u i n o 第 5 章 阿 帝 诺 扩 展 库
3、使用自定义函数库
目前Arduino的IDE无法自动识别自定义函数库 里的内容,所以需要给Arduino一点帮助:在Morse 的文件夹里,创建一个叫keywords.txt文件。
注意:类名的类型是KEYWORD1,公共函数的类型 是KEYWORD2,常量的类型是LITERAL1。
A d u i n o 第 5 章 阿 帝 诺 扩 展 库
思考和练习:
1、了解Arduino扩展库 。 2、掌握Arduino扩展库的使用步骤。 3、掌握自定义函数库的创建方法。 4、了解温湿度传感器DHT11的基本参数及单 总线数据传输的方式等。 5、测试DHT11。
A d u i n o 第 5 章 阿 帝 诺 扩 展 库
A d u i n o 第 5 章 阿 帝 诺 扩 展 库
6.3
1、产品概述
DTH11温湿度传感器
DHT11 数字温湿度传感器是一款含有已校准数 字信号输出的温湿度复合传感器。它应用专用的数字 模块采集技术和温湿度传感 技术,确保产品具有极高的 可靠性与卓越的长期稳定性 。传感器包括一个电阻式感 湿元件和一个NTC 测温元件 ,并与一个高性能 8 位单片 机相连接。如图 2 所示。
A d u i n o 第 5 章 阿 帝 诺 扩 展 库
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"); break; //数据校验错 case -2: Serial.print("Time out error,\t"); break; //数据超时错
A d u i n o 第 5 章 阿 帝 诺 扩 展 库
(4) 引脚说明
VDD 供电3.5-5.5V DC DATA 串行数据,单总线 GND 接地,电源负极 NC 空脚
4、串行通信
DHT11器件采用简化的单总线通信。单总线即只 有一根数据线,系统中的数据交换、控制均由单总线 完成。设备(主机或从机)通过一个漏极开路或三态 端口连至该数据线,以允许设备在不发送数据时能够 释放总线,而让其它设备使用总线;单总线通常要求 外接一个约 5.1kΩ的上拉电阻,这样,当总线闲置时 ,其状态为高电平。
A d u i n o 第 5 章 阿 帝 诺 扩 展 库
第5章
本章内容:
Arduino的扩展库
Arduino扩展库 创建自己的函数库
DHT11温湿度传感器
自定义函数库dht的使用
A d u i n o 第 5 章 阿 帝 诺 扩 展 库
5.1
Arduino 扩展库
1、什么是Arduino扩展库
使用 C++ 类将Arduino的某一类外设的复杂应用 ,尤其是将硬件底层的具体实现封装起来,对外提供 标准的、统一的接口,使得用户对开发 Arduino 的应 用变得十分容易。由现有的这样的一系列的C++类就 组成了 Arduino 的扩展库。
A d u i n o 第 5 章 阿 帝 诺 扩 展 库
(2) 温度
分 辨 率:0.1%RH 16Bit 重 复 性:±0.2℃ 量程范围:25℃ ±0.2℃ -40~80℃ ±1℃ 响应时间:1/e(63%) 10S
(3) 电气特性
供 电:DC 3.5-5.5V 供电电流:测量0.3mA 待机 60μA 采样周期:大于2秒/次
A d u i n o 第 5 章 阿 帝 诺 扩 展 库
default: Serial.print("Unknown error,\t"); break; } //end switch // 显示采集的数据 Serial.print(DHT.humidity,1); //输出湿度值 Serial.print(",\t"); Serial.println(DHT.temperature,1); //输出温度 值 delay(1000); }
Arduino扩展库作用:
• 将硬件底层的应用封装起来; • 针对具体应用编写相应的库;
A d u i n o 第 5 章 阿 帝 诺 扩 展 库
Arduino 扩展库
数据存储
EEPROM库
数据通信
SoftwareSerial库
无线通信
XBee库
HardwareSerial库
OneWire库 Wire库
class dht { public: int read11(uint8_t pin); int read22(uint8_t pin); double humidity; double temperature; private: uint8_t bits[5]; // buffer to receive data int read(uint8_t pin); }; #endif
1、类的定义
C++ 类定义的形式如下,MorseCode为类名。
class MorseCode { private: //定义私有数据成员和函数; public: //定义公有数据成员和函数; protected: //定义保护数据成员和函数; }
A d u i n o 第 5 章 阿 帝 诺 扩 展 库
系统运行结果如图4所示。
图4 DTH11测量温湿度结果
参考代码:
A d u i n o 第 5 章 阿 帝 诺 扩 展 库
#include <dht.h>
dht DHT;
#define DHT11_PIN 5 void setup() { Serial.begin(9600); Serial.println("DHT TEST PROGRAM "); Serial.print("LIBRARY VERSION: "); Serial.println(DHT_LIB_VERSION); Serial.println(); Serial.println("Type,\tstatus,\tHumidity(%) , \tTemperature (C)"); pinMode(DHT11_PIN ,INPUT); }
相关主题