Arduino支持C/C++,理所当然的支持C++的class,
如果是经常要用到的类,可以把它们封装成类库,这里不介绍;
对于自己编写的不常用到的类,如何创建?
编写的方式有很多种,可以用C++的IDE来写,比如VS Studio、Eclipse、Code::Blocks等等,也可以用像Notepad、Notepad2、Source Insight等文本工具,
下面要介绍的方法是直接采用arduino的IDE,目的是帮助大家更加熟悉它。
Arduino的IDE支持多文件管理,因此我们可以利用它来编写类。
- 打开Arduino,点击“New Tab”
以arduino接一个触碰传感器为例:
- Button.h:
#ifndef _C_BUTTON_H_
#define _C_BUTTON_H_
#pragma once
#include "Arduino.h"
class Button
{
public:
Button(void)
{
buttonPin = A0;
ledPin = 13;
buttonState = HIGH;
}
~Button(void){}
int buttonPin;
int ledPin;
int buttonState;
void buttonFun(int buttonpin,int ledpin);
};
#endif
- Button.cpp:
#include "Button.h"
/*-------------------------------
*Function:lighten LED while measuring button
*-------------------------------
*/
void Button::buttonFun(int buttonpin,int ledpin)
{
buttonState = digitalRead(buttonpin);
if(buttonState ==LOW)
{
digitalWrite(ledpin,HIGH);
}
else
{
digitalWrite(ledpin,LOW);
}
}
主程序:
#include "Button.h"
Button Bt;
void setup()
{
pinMode(Bt.ledPin,OUTPUT);
pinMode(Bt.buttonPin,INPUT);
}
void loop()
{
Bt.buttonFun(Bt.buttonPin,Bt.ledPin);
}
写完之后,我们打开文件夹,便可以看到类的所有文件跟主程序文件在一起。
这点跟库不一样,库文件是必须存放在libraries下面的与库名相同的文件夹下面。
这种方式的好处就是可以在同一个平台下立即编译.