はじめに/目標
ライブラリ入ライブラリを自作するのが目標
今回、沼にハマったことを書いて行きたいです。
ライブラリの作り方
1.ArduinoIDEでライブラリ名の新規ファイルを作成(空ファイルにすること)
2.新規タブを生成して名前を、~.h(ヘッダファイル)と ~.cpp(ソースファイル)にする
3.ともに中身を埋めてLibrariesに入れる(.inoを消さないほうが作業が楽)
実際に制作する
ライブラリ名:FlashLib
メソッド1 :jiwa()→徐々に点灯
メソッド2 :pika()→点滅させる
ファイル
ほんとに何も入れないでください(loop関数やsetup関数がエラーの原因になります。)
右の逆三角から新規タブ(ctrl+shift+N)を選択してください
# include <Arduino.h>
# include <FlashLib.h>
void jiwa(void){
for (int i = 0; i<10; i++){
delay(100);
analogWrite(11,i);
}
}
void pika(void){
digitalWrite(11,HIGH);
delay(100);
digitalWrite(11,LOW);
delay(100);
}
もう一回新規タブ
# ifndef _FlashLib_h
# define _FlashLib_h
void jiwa(void);
void pika(void);
# endif
検証(コンパイル)すると3つまとめたフォルダが生成されるので、ドキュメント保存場所(デフォルトはC:\Users\<アカウント名>\Documents\Arduino\libraries
)に追加します。
使ってみる
新規ファイルをtest1とする
# include <FlashLib.h>
void setup() {
pinMode(11,OUTPUT);
}
void loop() {
pika();
jiwa();
}
これで動くと思います。
ライブラリの中にライブラリを入れてみる
ライブラリ名:loopMan
メソッド1:loop_man5→5回ループさせるメソッド
メソッド2:loop_man10→10回ループさせるメソッド
# include <Arduino.h>
# include <FlashLib.h>
# include <loopMan.h>
void loop_man5(void){
for (int i = 1; i<5; i++){
pika();
}
}
void loop_man10(void){
for (int i = 1; i<10; i++){
jiwa();
}
}
# ifndef _loopMan_h
# define _loopMan_h
void loop_man1(void);
void loop_man2(void);
# endif
これもlibrariesに入れます
実際に動かしてみる
新規ファイルを作ってlibTest
と、しました。
# include <loopMan.h>
void setup() {
pinMode(11,OUTPUT);
}
void loop() {
digitalWrite(11,HIGH);
delay(5000);
loop_man10();
loop_man5();
}
5秒光って点灯して点滅しましたか???
おわり。