如果你只想要几个函数,那么你不需要一个类,但是如果你想学习这种方法,我可以指导你正确的方向。
这里有一个简单的库,我们称之为
LED
。
在这个例子中,我们将使用一个库来重新创建
闪烁示例(包含在IDE中)。显然,这比示例使用更多的工作,但是比较这两个示例应该会让你更容易理解。
LED.h
#ifndef LED_h
#define LED_h
class LED{
public:
void begin( char PinToUse );
void on();
void off();
private:
char pin;
};
#endif
LED.cpp
#include "Arduino.h"
#include "LED.h"
void LED::begin( char PinToUse ){
pin = PinToUse;
pinMode( pin, OUTPUT );
}
void LED::on(){
digitalWrite( pin, HIGH );
}
void LED::off(){
digitalWrite( pin, LOW );
}
在您的库中使用任何Arduino API时,需要包含Arduino.h
。由于我在.cpp文件中使用了digitalWrite()
,因此需要在此示例中包含它。如果您在头文件中使用API,则需要在那里包含它。
草图
#include <LED.h>
LED led;
void setup() {
led.begin(13);
}
void loop() {
led.on();
delay(500);
led.off();
delay(500);
}
如您所见,该库被分为声明文件(.h)和定义文件(.cpp)。代码和.cpp文件都包含库头文件(.h)。
许多人在想要在自己的代码中使用SPI类等其他库时会遇到问题。不幸的是,IDE的设计方式要求代码还必须包括内部使用的库,无论代码是否直接使用它。这里有一个更详细的解释here。
分享你的创作
一旦你的库完成,你可以在Arduino论坛上发布你的库。确保你有一些工作示例来增加人们尝试你的工作的机会。一个好的位置是这里:Other Software Development。
如果你熟悉GitHub(
Intro),你甚至可以直接将你的库添加到IDE库管理器中,这样人们只需点击安装即可使用它。访问
1.5 Library specification以查看添加要求。