一、Arduino库是什么
话不多说先上图
库文件 Servo.h部分代码图片 Servo.app部分代码图片相信看过本人的《每天一点单片机知识系列之Arduino控制舵机》会对Servo.h很熟悉,因为控制舵机的第一段代码就是
控制舵机代码那么Servo.h到底有什么作用呢?相信用过C++和C语言的童鞋对此会比较熟悉,在C语言中对库函数有这样的定义:
库函数(Library function)是把函数放到库里,供别人使用的一种方式。方法是把一些常用到的函数编完放到一个文件里,供不同的人进行调用。调用的时候把它所在的文件名用#include<>加到里面就可以了。
一个函数库应至少包含两个文件:头文件(扩展名为*.h*)和源代码文件(扩展名为*.cpp*)。头文件包含函数库的声明,即函数库的功能说明列表;源代码文件包含函数库的实际实现。
所以说白了,库就是一些封装好的函数,使用时直接调用就行。
二、Arduino包含的库
Arduino包含两种库:标准库和第三方库,当然也可以自己写类库。标准库安装Arduino IDE后就已经导入,只需要直接调用就行,第三方类库则需要导入,如果没有导入编译器就会报错,至于如何导入请看参照:三、第三方类库导入方法。
1、标准库
EEPROM- 对“永久存储器”进行读和写
Ethernet- 用于通过 Arduino 以太网扩展板连接到互联网
Firmata- 与电脑上应用程序通信的标准串行协议。
LiquidCrystal- 控制液晶显示屏(LCD)
SD- 对 SD 卡进行读写操作
Servo- 控制伺服电机
SPI- 与使用的串行外设接口(SPI)总线的设备进行通信
SoftwareSerial- 使用任何数字引脚进行串行通信
Stepper- 控制步进电机
WiFi- 用于通过 Aduino 的 WiFi 扩展板连接到互联网
Wire- 双总线接口(TWI/I2C)通过网络对设备或者传感器发送和接收数据。
PWM Frequency Library- 自定义PWM频率
2、第三方类库
IRremote-红外控制
DS3231-时钟芯片
Timer- 利用millis()函数来模拟多线程等等
三、第三方类库导入方法
1、打开IDE-->程序-->导入库-->Add Library
导入库2、然后选择准备库文件的压缩包(因为没有准备为了演示效果就随便找了个压缩包)
选择要导入库压缩包3、导入成功后就可以在IDE上直接查看到与库相关的例子
例子4、这样一个流程下来是不是感觉很繁琐,偷偷告诉你一个简单粗暴地方法——直接将压缩包解压到IDE安装路径下的libraries文件夹,然后直接打开IDE就行了!
注意:如果IDE之前就已经打开要先关闭再打开,否则无法导入成功
四、谈谈对Arduino库看法
看过《每天一点单片机知识系列之步进电机控制》的童鞋会发现,从直观上看,实现同样的功能调用库文件和不调用库文件,在代码量上就有很大差别。从深层次上看,代码也更加复杂,而且编程的时候更容易出错,后期对代码维护难度也更大。还有一点忘了说了,即使没有在代码中调用任何库,编译器也会调用Arduino.h库。
有面向对象编程经验的童鞋这时候可能会把库文件与类联系在一起,类是封装好的直接调用就行,类的继承或是重写就可以实现要达到的功能。要是玩过51单片机,你就更会感叹Arduino设计者的厉害之处。Arduino最强大之处就是从最底层开始将很多单片机操作抽象成一个个函数,然后封装成库的形式,编程时只需要调用库,再简单的调用函数就可以,不需要考虑一个个寄存器是如何工作的。
所以只要有合适的库即使没有硬件知识,同样可以玩转Arduino单片机。
参考源:
3 极客工坊知识库
网友评论