Arduino基础2

第四章 使用和编写库类

作用:提高代码的编写效率和可读性
用法:
1)将类库放入libraries中,编写程序时调用
2)申明调用类库 #include"xxx.h"
3)实例化对象

编写库类

1)编写头文件(.h文件)
2)预处理命令
以“#”开头的语句成为预处理命令,编译器不会直接对这些进行编译,而是在编译之前,系统会预先处理这些命令。
3)宏定义
使用一个特定的标识符来代表一个字符串,如#define aaa 123;
4)文件包含
若程序中使用#include “a.h”,那么在预处理的过程中会先将该语句替换成此文件中的实际内容,再进行编译。
5)条件编译
#ifndef a.h
#define a.h
用来防止重复的包含某文件,避免程序编译出错
6)版本兼容
可以是编译器自动判断正在使用的IDE版本,从而调用正确的头文件。
7)编写.cpp文件
.cpp文件也必须包含用到的头文件
.ino文件所在的文件夹需要与该.ino文件同名

第五章 通信篇

Arduino基础2_第1张图片
并行通讯可以多位数据同时传输,速度更快,但其占用的I/O口比较多。
串行通讯在Arduino中使用最广泛。
Arduino硬件集成了串口、IIC、SPI三种常见的通讯方式。

硬件串口通讯——HardwareSerial类库

串口,称UART,通用异步接口,通常一个串口只能连接一台设备进行通讯。
串口工作原理:Arduino会发送一连串的数字信号即数据帧。
数据帧格式:
1)起始位:起始位总是为低电平,是一组数据帧开始传输的信号
2)数据位:Arduino默认使用8位数据位,每次可以传输1B数据
3)校验位:是串口通讯的一种简单检错方式,Arduino默认无数据位
4)停止位:每段数据帧的最后都有停止位表示该段数据传输结束,Arduino默认为1位停止位

HardwareSerial类库位于Arduino的核心库中,Arduino默认包含该库,因此不用再使用include进行调用。

当使用read()函数时,每次仅能读到一字节的数据,如果要读取一个字符串,则可以使用“+=”运算将字符一次添加到字符串中。

延时语句delay(),arduino程序的运行速度很快,当arduino读取完第一个字符串,进入下一次while循环时,输入的数据还没有完全的传入arduino的串口缓冲区,串口还未接受到下一个字符available()的返还值就为零,就会产生错误。

串口缓冲区

缓冲区实际上就是在arduino上的RAM上开辟临时存储空间,其大小不能超过arduino本身的RAM大小。
arduino默认设定串口缓冲区为64字节,当其中数据超过64字节后,arduino就会将最早存入缓冲区的数据丢弃。
通过宏定义的方式可以增大串口读写缓冲区的空间,如#define SERIAL_TX_BUFFER_SIZE 128。

软件模拟串口通讯——SoftwareSerial类库

使用SoftwareSerial类库将其他数字引脚通过程序来模拟成串口通讯引脚。
局限性:不如硬件串口稳定,与硬件串口一样波特率越高越不稳定。
原理:是通过VAR芯片的PCINT中断功能来实现的,需要引脚支持此功能才可以设置为软串口。

IIC总线

使用两根双向的总线又称为TWI总线

SPI总线

是arduino自带的一种高速通讯接口,通过它可以连接使用同样接口的外接设备。

第六章 存储篇

EEPROM类库

1、EEPROM电可擦可编程只读存储器是一种断电后数据不丢失的存储设备,常被用来记录设备的工作数据和保存配置参数。
2、arduino已经准备好eeprom库类,使用前需要调用eeprom头文件。
3、eeprom只有100000次擦写寿命,一次EEPROM.write()语句会占用3ms,所以在loop中使用EEPROM.write()时,应使用延时或其他方法,以避免频繁擦写EEPROM。
4、arduino的EEPROM API智能将字节数据存入EEPROM中,其他数据需要用到共用体的方法进行存储。

SD卡类库

是一种基于半导体快闪记忆器的新一代存储设备,可以用来保存大量数据。

第七章 无线通讯篇

arduino可以使用的无线通讯方式众多,如ZigBee、Wifi和蓝牙等
1、常见的两种方式:
1)使用串口透传模块
这类模块在设置好后连接arduino串口,即可采用串口通讯的方式进行通讯,相当于将串口的有线通讯改为无线通讯,而程序不需要改动。
2)使用SPI接口的无线模块
此类模块通常有配套的驱动库,如arduino WiFi库展板,这种方式传输速率快。

你可能感兴趣的:(Arduino,arduino)