Arduino自作ライブラリの作成と使い方
Arduinoにて自作ライブラリの使い方に少し手間取ったので共有します。
ライブラリを作ることで繰り返し使うコードを簡単に再利用できるようになります。
Arduinoライブラリの構造
Arduinoライブラリは主に以下の2つのファイルから構成されます:
ヘッダーファイル(.h):クラスの宣言、関数のプロトタイプ、マクロ定義などを含む。
ソースファイル(.cpp):クラスのメソッドや関数の実装を含む。
ディレクトリ例
C:\Users\ユーザー名\Documents\Arduino IDE\libraries\LEDControl
├── LEDControl.cpp
└── LEDControl.h
ステップ1:ライブラリフォルダの作成
使用したいライブラリ名でフォルダを作成する。
※"Arduino\libraries"ディレクトリ内に作成してください。
今回はLEDControlとします。
配置例)"C:\Users\ユーザー名\Documents\Arduino IDE\libraries\LEDControl"
librariesディレクトリに作成することで複数のプロジェクトでライブラリを使用することが出来ます。
ライブラリを特定のプロジェクトにのみ使用したい場合、同じスケッチのフォルダ内に設置してください。
ステップ2:ヘッダーファイルの作成(.h)
使用したい関数名を記入します。
//ヘッダーファイルが複数回インクルードされるのを防ぐためのプリプロセッサディレクティブ(事前処理指示)です
#ifndef LEDControl_h
#define LEDControl_h
// Arduinoの基本的な機能を利用するためのヘッダファイルをインクルードします。
#include <Arduino.h>
// 自分の作成したい関数を定義します。関数の処理は別ファイルで書きます。
void 関数名();
// ヘッダファイルの終わりを示すプリプロセッサディレクティブです。
#endif
ステップ3:ソースファイルの作成(.cpp)
ここで実際に関数の定義を行います。
#include "LEDControl.h"
void 関数名(){
ここに処理を記載
}
ステップ4:実際に利用
使用したいスケッチで以下のように記載します。
#include <LEDControl.h>
これで関数が利用できるようになります。
自分しかライブラリを使わない場合は.hに関数の処理も書いてしまってもよいです。
なぜ.hファイルと.cppファイルを分けるのか?
1.整理と管理:コードを分けることで、整理しやすく、管理が容易になります。
2.再利用性:共通のコード(ヘッダーファイル)を他のプログラムで簡単に再利用できます。
3.コンパイル効率:変更がない部分は再コンパイルせず、効率的にプログラムを作成・更新できます。
4.インターフェースと実装の分離:ユーザーに必要な情報のみをヘッダーファイルに置き、詳細な実装はソースファイルに隠します。
以上が主な理由になります。一言で言えば使いやすくする。
少しでも役に立てば幸いです。
Discussion