作者使用的是Arduino IDE编写代码,版本为1.8.19,这篇主要讲我在做项目时遇到编写库是如何用IDE解决的,用过IDE的开发者都知道IDE搜索和使用库操作简单,但如果没有自己想要的库就伤脑经了。这里使用的例子是作者在读研阶段项目使用的超声波传感器为例,长话短说直接进入正题。
Arduino IDE功能上没有vs code一样强大,但对于初级开发者是够用的。打开IDE只会有个主标签,如下图1所指位置,在这个位置主要放置我们的初始化函数和循环函数。在图中2所指位置有个放大镜标志,点击后会出现3所指的下拉菜单选项:新建标签。
点击新建标签,分别建立两个新标签,名字是库的名字,一个标签以.h结尾为头文件,一个标签以.cpp结尾为源代码文件。我们已经完成了创建库的第一步,接下来是往库里添加自己需要封装的内容。
我这里直接将项目中的代码贴入,这个库相对简单,主要有两个功能,一个是初始化引脚函数,一个是传感器测量长度函数。
-----------------头文件------------------
/****** newBank.h *********/
#ifndef newBank_H
#define newBank_H
//如果你的IDE版本过低需要加入下列5行代码
#if defined(AEDUINO) && ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif
class newBank
{
private:
int Trig_pin;
int Echo_pin;
float distance;
public:
newBank(int TrigPin,int Echopin);//初始化函数
float Get();//测量长度函数
};
#endif
-----------------源代码文件------------------
/***** newBank.cpp ********/
//同上
#if ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif
#include "newBank.h"
newBank::newBank(int TP , int EP)
{
pinMode(TP,OUTPUT);
pinMode(EP,INPUT);
Trig_pin = TP;
Echo_pin = EP;
}
float newBank::Get()
{
digitalWrite(Trig_pin,LOW);
delayMicroseconds(2);
digitalWrite(Trig_pin,HIGH);
delayMicroseconds(15);
digitalWrite(Trig_pin,LOW);
float distance = pulseIn(Echo_pin,HIGH)/5.80;
return distance;
}
编辑代码后,打开代码所保存的文件夹,如果你不知道你的代码保存在哪个位置,可以在文件下拉菜单中点击首选项,弹出窗口中的项目文件夹位置中就能找到你刚刚编写的代码文件夹。
在刚刚编写的程序中除了IDE所执行的ino文件,还有一个源文件和源代码文件,我们需要将他们复制,之后要将他们转移到另外个文件夹中。
然后打开你的项目文件夹位置,如果你之前已经使用过库,会有一个libraries的文件夹存在,若没有也别担心,我们可以新建一个libraries文件夹。
在libraries文件夹中创建一个以库名字命名的文件夹,将刚刚复制的文件黏贴到里面来,如下图所示。这时候已经完成库的创建了,为了让我们库更加的好看,可以在我们库文件夹中创建一个keywords.txt文本文档,在里面输入下面两行。
newBank KEYWORD1
Get KEYWORD2
这时候,我们的库就算是创建完成了,打开我们的项目,将以下代码黏贴复制进去,就可以开始超声波传感器循环测量了。如果验证成功说明你的第一库创建成功了!如果失败记得将标签中的.h和.cpp文件给删除。
#include <newBank.h>
newBank sensor1 = newBank(3, 6);
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
float longth = sensor1.Get();
Serial.println(longth);
delay(30);
}
使用IDE创建库确实会麻烦些,但方法都是一样的,如果有什么需要封装起来,按这样的步骤就可以搞定,这是作者的第一次创作,希望大家能点个赞或者收藏,谢谢大家支持!