自作ライブラリの作り方

〔arduino IDE 0022の使い方に戻る〕


arduino用にオリジナルのライブラリを作成して登録する方法を記載しときます。
LEDを点灯するライブラリ(LightingControl:ライブラリ名)を作成する事で説明していきます。
ライブラリには次の3つのファイルを作成します、C++言語での記述となります。
LightingControl.cpp (LEDを制御する本体のプログラムです)
LightingControl.h  (ヘッダファイル)
keywords.txt     (キーワードファイル:このファイルは無くてもOKです)

LightingControl.cpp

本体プログラムには次の3つの関数処理を記述します。
もちろん作成するプログラム内容により記述内容は変わりますが、
今回はこの3つの関数で説明します。
・初期化処理を行う関数(コンストラクタ関数にします)
・LEDを点灯する関数(クラス関数 LightingControl::On)
・LEDを消灯する関数(クラス関数 LightingControl::Off)

注意)
ArduinoIDE1.0.1あたりのバージョンから #include "WProgram.h" を #include "arduino.h" に変更しないとだめです。
 *1)
*3)
---------------------------------------------------------------------
// 下の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を消灯する
}
---------------------------------------------------------------------

LightingControl.h

最後の#endifとその前にある行の" ;"を忘れずに!!
---------------------------------------------------------------------
// 下の3行は必ず必要です。

#ifndef LightingControl_h
#define LightingControl_h
#include "arduino.h"


// クラスの定義
// クラス名・コンストラクタ名・関数名や使用する変数名を定義します。
class LightingControl
{
  public:
         LightingControl(int PinNo) ;
    void On() ;
    void Off() ;
  private:
    int LED_PinNo ;    // LEDの接続されているピン番号を保存する変数
} ;

#endif

---------------------------------------------------------------------

keywords.txt

このファイルは作成しなくても動作はしますが、
下のキーワードを登録しておくとIDEでスケッチを記述した時に、
文字(関数名)に色文字で表示されます。
KEYWORD1がオレンジでKEYWORD2が茶色です。
注意)KEYWORD文字の前は「Tab」を入れないといけません。
         ↓ここのブランクは「Tab」キーでスペースを空けます。
---------------------------------------------------------------------
LightingControl		KEYWORD1

On	KEYWORD2
Off	KEYWORD2
---------------------------------------------------------------------
  ↑ここのブランクも「Tab」キーでスペースを空けます。
#define文の名前に付けるLITERAL1キーワードもあります、青文字表示。
KEYWORD3も有るようですね、太文字茶色(setupの感じ)になるようです。
 

《ライブラリの登録》

登録方法1 *2)

当サイトでダウンロードしたライブラリの登録はこちらの方法が簡単で良いでしょう。

LibMake5
@メニューバーの
  「スケッチ」→「ライブラリ
  を使用」→「Add Library...」
  を順番にクリックします。

  ファイルを選択する
  ウインドウ画面が表示
  されます。(下図)

LibMake52
@メニューバーの
  「スケッチ」→
  「ライブラリをインクルード」→
 「.ZIP型式のライブラリを
  インストール...」
  を順番にクリックします。

  (こちらは最新IDEでの操作方法)


LibMake5
Aファイルの有る場所を展開表示
  させ、登録するフォルダを選んだら
  [開く]ボタンをクリックすれば登録
  されます。

  選択出来るファイルは、フォルダー
  ですが、圧縮ファイル(zipのみ)も
  OKです。(自動解凍される)
  尚、"xxx.lzh"の場合は解凍させて
  から登録します。


この方法でのライブラリが登録される場所は?

メニューバーの「ファイル」→「環境設定」をクリックすれば[環境設定]ウインドウ画面が表示されます。
この画面の”スケッチブックの保存場所:”に表示されているフォルダー内に有る、
"libraries"フォルダーの中に作成されます。
(因みに、デフォルトは"C:\Users\user\Documents\Arduino"です。)

登録方法2

ArduinoIDE0022の場合
ArduinoIDEがインストールされているフォルダーは、
私の環境では、C:\Program Files\arduino-0022\libraries です。
このフォルダーに[LightingControl]フォルダーを作成して、ここに上で作成した3つのファイルを入れます。
古いIDEの場合は、ArduinoIDE0014の場合
C:\Program Files\arduino-0014\hardware\libraries に有ったりします。

注意)
フォルダー名(LightingControl)とスケッチファイル名(LightingControl.cpp)は同じでないとだめです。

ArduinoIDE0014では、IDEの起動時にライブラリがコンパイルされていましたが、
ArduinoIDE0022では、このライブラリを使ったスケッチをコンパイルする時に、
ライブラリもコンパイルされている感じです。
ライブラリ単体でコンパイルする方法はないのかな?不便ですぅ。

《ライブラリのスケッチでの使い方》

IDEを起動させ、メニューバーの「Sketch」→「ImportLibray...」を操作すると「LightingControl」が 追加されています、「LightingControl」を選択します。
"#include <LightingControl.h>"がスケッチに追加されます。

IDE0022
LibMake1

IDE1.0.1
LibMake1


LibMake2

 LightingControl LED1(13) ;
 この行で実際に使用出来るようになります。
 13番ピンを使用する様に初期化しています。
 
 LightingControl LED1(12) ;
 これは12番ピンを使用するですね、
 この様に何個でも利用できます。

 keywords.txtによって、
 LightingControlとOn(),Off()に色が付いて
 います。
 私の目では茶色とオレンジの区別がつきません。!!

《サンプルスケッチ》

上記のサンプルスケッチをここからダウンロードできます。 *3)
解凍すると下の様に展開されます。
上記載のライブラリの登録の如くファイル移動操作して下さい。
[LightingControl]─┬─[examples]──[LED]--- LED.ino
          ├ LightingControl.cpp
          ├ LightingControl.h
          └ keywords.txt
LED.inoを開くには、
IDEを起動して、メニューバーの「File」→「Examples」→「LightingControl」→[LED]
をクリック操作すればファイルが開かれます。



"arduino.h"記述変更と"pde->ino"変更(*3) 2020/04/09
追記(*2) 2015/03/17
追記(*1) 2012/09/13


【きむ茶工房ガレージハウス】
Copyright (C) 2006-2020 Shigehiro Kimura All Rights Reserved.