Arduinoでライブラリーを使ったことはあるんですが自作をしたことがなかったので調べながら挑戦してみました!
1から作る場合はひとつのファイルでクラスなど全部のソースを書いて実行して確認します。そしてヘッダファイルやcppファイルに分けていきましょう。ヘッダファイルは主に定義的なことを書いてcppファイルには中身を書くことになっているようです。
ファイルを分けただけで同じ階層のファイルを参照するだけのときは
#include "TAX.h"
のように書きます。同じ階層のファイル参照してるだけのときはinoファイルの中でも#include"~"で指定します。
ライブラリーにしてArduinoIDEにインストールされたら
#include <TAX.h>
と指定するだけで使えるようになります。
分けても問題なく成功できたらヘッダファイルとcppファイルを任意のフォルダに入れてZIP圧縮をします。Arduinoのライブラリー管理から作成したZIPフォルダを指定して取り込みしましょう。
これでライブラリーとして使えるようになります。(インストールされたライブラリーは自分のPCでは/Documents/Arduino/libraries/に保存されていました。)
作成した簡単な例を載せておきます。消費税をかけて1.1倍にした数値を計算するクラスです。1.1倍で計算するところをクラスメソッドにしています。
ちなみにヘッダファイルの書き方は(詳しい説明は省きますが)
#ifndef 〇〇
#define 〇〇
具体的なプログラムを書く
#endif
○○は任意ですが分かりやすい名前で統一しておくと良いそうです。
●ヘッダファイル TAX.h
#ifndef _TAX_h
#define _TAX_h
class TaxIn{
public:
void Tax(float price);
void Empty();
float GetTotal(){
return total;
}
private:
float total;
};
#endif
●cppファイル TAX.cpp
#include "TAX.h"
void TaxIn::Tax(float price)
{
total = price * 1.10;
}
void TaxIn::Empty()
{
total = 0;
}
●inoファイル ライブラリーの使用例
#include <TAX.h>
//ライブラリーになる前で同じ階層のファイルを参照してるときは#include "TAX.h" と書く
void setup(){
Serial.begin( 9600 );
TaxIn myPrice; //myPriceという名前のインスタンス生成
myPrice.Tax(700); //メソッドを利用して700円の税込価格を計算
Serial.println(myPrice.GetTotal()); //計算された値をシリアルモニタで確認
}
void loop(){
}