作成2015.11.11
ArduinoIDEの最大の特徴は、スケッチの記述が簡潔で、非常に多くのライブラリーが公開されている点にあると思います。
公開されたライブラリーを十分に活用するには、ライブラリの作り方と設定方法を理解する必要があります。
- 自作ライブラリの作り方参照アドレス
自作ライブラリの作り方
http://www.geocities.jp/zattouka/GarageHouse/micon/Arduino/LibMake/LibMake.htm
LED点滅のわかりやすい機能でやかりやすく自作ライブラリの作り方を説明しています。
しかし、かなり古いArduinoIDEバージョンで作成されているため、最新バージョンでは若干の修正が必要でした。
今回適用は、arduino-1.6.5-r2-windowsです。(現在の最新はarduino-1.6.6-windowsですが、WiFi-UARTモジュール [ESP-WROOM-02]との相性が悪かったため、バージョンアップを見送りました。)
- 自作ライブラリの設定方法(1)
(1)メニュー「スケッチ」_「Include Library」_「Add,ZIP Library」を選択します。
(2)ZIPファイルを選択して「開く」ボタンを押します。
(3)C:\Users\ユーザ名\Documents\Arduino\libraries\LightingControlフォルダーが作成されます。
(4)ホルダー内には
LightingControl.cpp
LightingControl.h
keywords.txt
\examples\LightingControl\LightingControl.ino
があります。
(5)LightingControl.cppとLightingControl.hとkeywords.txtは以下のように右クリックでメモ帳を選択して開き編集できます。
(6)\examples\LightingControl\LightingControl.inoはダブルクリックでArduinoIDEが起動して編集できます。
- 自作ライブラリの設定方法(2)
(1)メニュー「スケッチ」_「Include Library」_「Add,ZIP Library」で解凍後のLightingControlフォルダーを選択しても同様な結果となります。
- 自作ライブラリの設定方法(3)
(1)解凍後のLightingControlフォルダーをコピーして、C:\Users\ユーザ名\Documents\Arduino\librariesフォルダー内にペーストしても同様な結果となります。
- 自作ライブラリの削除方法
(1)C:\Users\ユーザ名\Documents\Arduino\librariesフォルダー内のLightingControlフォルダーを削除すると設定が削除されます。
- サンプルライブラリのダウンロード
まずは下記の「58-1.zip」ファイルをダウンロードしてください。
[58-1.zip]をダウンロードする。
解凍するとフォルダー内にLightingControlフォルダーがあります。フォルダー内に
LightingControl.cpp
LightingControl.h
keywords.txt
\examples\LightingControl\LightingControl.ino
があります。
- LightingControl.hファイル
#ifndef LightingControl_h
#define LightingControl_h
各種定義文
#endif
はLightingControl_hが設定されていない時各種定義文を実行し、#define LightingControl_h実行後は各
種定義文を実行しないための仕掛けです。
// 下の3行は必ず必要です。
// また、最後の#endifとその前にある行の" ;"を忘れずに!!
#ifndef LightingControl_h
#define LightingControl_h
#include <Arduino.h>
// クラスの定義
// クラス名・コンストラクタ名・関数名や使用する変数名を定義します。
class LightingControl
{
public:
LightingControl(int PinNo) ; // コンストラクタ
void On() ; // LED点灯
void Off() ; // LED消灯
private:
int LED_PinNo ; // LEDの接続されているピン番号を保存する変数
} ;
#endif
- LightingControl.cppファイル
コード内に丁寧な解説があります。
// 下の2行は必ず必要です。
#include <Arduino.h>
#include <LightingControl.h>
// 初期化処理を行う関数
// コンストラクタは クラス名::クラス名と同じ名前で構成します
LightingControl::LightingControl(int PinNo)
{
pinMode(PinNo, OUTPUT) ; // 指定されたデジタルピン番号をLED出力に設定
LED_PinNo = PinNo ;
}
// LEDを点灯する関数(メソド関数)
// クラス名::関数名() で構成します
void LightingControl::On()
{
digitalWrite(LED_PinNo, HIGH) ; // LEDを点灯する
}
// LEDを消灯する関数(メソド関数)
void LightingControl::Off()
{
digitalWrite(LED_PinNo, LOW) ; // LEDを消灯する
}
- keywords.txtファイル
KEYWORD1が赤の太字、KEYWORD2が赤の細字です。(KEYWORD3以上も赤の細字でした。)
#######################################
# Syntax Coloring Map For LightingControl
#######################################
#######################################
# Datatypes (KEYWORD1)
#######################################
LightingControl KEYWORD1
#######################################
# Methods and Functions (KEYWORD2)
#######################################
On KEYWORD2
Off KEYWORD2
- LightingControl.inoスケッチ
LightingControl.inoスケッチは以下の通りです。
LightingControl LED1(13) ;は変数LED1をLightingControlクラス、パラメータ=13で生成(実体化)します。
LightingControl LED2(12) ;も同様です。
// 1秒毎にLED1とLED2を交互に点滅させる
#include <LightingControl.h>
LightingControl LED1(13) ;
LightingControl LED2(12) ;
void setup()
{
}
void loop()
{
LED1.On() ;
LED2.Off() ;
delay(1000) ;
LED2.On() ;
LED1.Off() ;
delay(1000) ;
}
- 評価回路概観
評価回路概観を以下に示します。
12ピンと13ピンに接続したLEDが交互に点滅します。
- 自作ライブラリの作り方と設定方法まとめ
(1)ArduinoIDEの最大の特徴は、スケッチの記述が簡潔で、非常に多くのライブラリーが公開されている点にあると思います。
(2)公開されたライブラリーを十分に活用するには、ライブラリの作り方と設定方法を理解する必要があります。
(3)自作ライブラリの作り方
http://www.geocities.jp/zattouka/GarageHouse/micon/Arduino/LibMake/LibMake.htm
の解説はやかりやすく参考になりました。
(4)https://github.com/等の公開ライブラリーは、library.properties 、README.txt 、README.md等のファイルも付いていますが、これは参考資料であることが理解できました。
(5)また、スケッチを除くファイルはメモ帳で編集可能であることが理解できました。