[Arduino项目]用Arduino IDE编写与使用自己的库,以超声波传感器为例

        作者使用的是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创建库确实会麻烦些,但方法都是一样的,如果有什么需要封装起来,按这样的步骤就可以搞定,这是作者的第一次创作,希望大家能点个赞或者收藏,谢谢大家支持!

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值