Arduinoのソースを書いてみよう2 [Arduino入門編]
おはようございます。
さて、今回はArduinoソースの書き方に関する続きです。
前回if文があって、今後のためな気がしたので
[defineと関数定義]
[前回の復習]
・#defineは固定の数値、文字列を定義するのに使います。
僕は主にピン番号を定義する時などに使用します。
ピン番号を後で変えたくなった時に修正箇所が1箇所ですむから便利
・setup()はarduinoが動作する時、最初に一回だけ動く関数です
ここでは主にピン番号の設定やハードウェアの初期化を行います。
・loop()はsetup()完了後にコールされ無限に何度も実行されます。
この関数がArduinoのメインになり、ハードウェアの制御や状態確認を行います。
・delay()は引数に入れた値分だけ時間待ちを行い1000=1秒です
[ピンの操作]
[pinMode]
・ハードウェアを制御する場合、最初に書く関数です。
Arduinoに使用するピン番号と、そのピンの使用目的を教えてあげます
・第一引数で使用するピン番号をしていして、
・第二引数でINPUT(値を読み取る場合設定)かOUTPUT(値を設定したい場合設定)を書きます
[digitalRead,digitalWrite]
・digitalReadは「ボタン」や「センサー」などから値を取得するために使用します。
この場合、pinModeでINPUTを設定しておく必要があります。
・digitalWriteは「LED」や「モーター」などハードウェアに値を設定するために使用します。
この場合、pinModeでOUTPUTを設定しておく必要があります。
また第二引数にはハードウェアに設定する値(HIGH,LOW)を書きます。
[変数定義、if文、関数コール]
[変数]
・int VALUE=0;と書いているのが変数宣言です。
ハードウェアから取得した値など、覚えておきたい内容がある場合、
上記のように変数を宣言して値を設定しておきます。
上記のように関数に引数を渡す事も可能です。
[if文]
・「ボタンが押されたらモーターを動かす」などハードウェアから取得した値で
その後の動作を変えたい場合、if文を使用します。
if文は()の中に比較条件を書きます。
==:左辺と右辺の値が同じ
!=:左辺と右辺の値が異なる
>=:左辺が右辺以上(=をなくすと超過)
<=:左辺が右辺以下(=をなくすと未満)
上記のようにelse ifを使用すことで複数の条件で分岐が可能です。
どの条件に合致しない場合の処理はelseと書き、その中に書きます。
[関数定義]
・setup()やloop()にあったような関数は自分専用のものも定義可能です。
上記にあるmy_function()が自分用関数になります。
関数には引数を渡すことも可能です。
「モーターの制御回転」「モーターの停止」など
処理に共通部分がある場合、関数を使用して処理を一箇所にまとめ、
引数で微妙な違いをif文で切り分けるとソース共通化できて効率的です。
長くなりましたがArduinoの基本構文はこんな感じです。
さて、今回はArduinoソースの書き方に関する続きです。
前回if文があって、今後のためな気がしたので
[defineと関数定義]
#define AAA "aiueo" void setup() { } void loop() { delay(1000); }
[前回の復習]
・#defineは固定の数値、文字列を定義するのに使います。
僕は主にピン番号を定義する時などに使用します。
ピン番号を後で変えたくなった時に修正箇所が1箇所ですむから便利
・setup()はarduinoが動作する時、最初に一回だけ動く関数です
ここでは主にピン番号の設定やハードウェアの初期化を行います。
・loop()はsetup()完了後にコールされ無限に何度も実行されます。
この関数がArduinoのメインになり、ハードウェアの制御や状態確認を行います。
・delay()は引数に入れた値分だけ時間待ちを行い1000=1秒です
[ピンの操作]
// ハードウェアから値を読み取りたい場合 pinMode(11, INPUT); digitalRead(11); // ハードウェアに値を設定したい場合 pinMode(12 OUTPUT); digitalWrite(12,HIGH);
[pinMode]
・ハードウェアを制御する場合、最初に書く関数です。
Arduinoに使用するピン番号と、そのピンの使用目的を教えてあげます
・第一引数で使用するピン番号をしていして、
・第二引数でINPUT(値を読み取る場合設定)かOUTPUT(値を設定したい場合設定)を書きます
[digitalRead,digitalWrite]
・digitalReadは「ボタン」や「センサー」などから値を取得するために使用します。
この場合、pinModeでINPUTを設定しておく必要があります。
・digitalWriteは「LED」や「モーター」などハードウェアに値を設定するために使用します。
この場合、pinModeでOUTPUTを設定しておく必要があります。
また第二引数にはハードウェアに設定する値(HIGH,LOW)を書きます。
[変数定義、if文、関数コール]
int VALUE=0; VALUE=digitalRead(11); if( VALUE == HIGH ) { }else if( VALUE == LOW ) { }else { } if( VALUE != 0 ) { my_function(1) }else if( VALUE > 10 ) { my_function(2) }else if( VALUE <= 10 ) { my_function(3) }else { } void my_function(int MODE) { }
[変数]
・int VALUE=0;と書いているのが変数宣言です。
ハードウェアから取得した値など、覚えておきたい内容がある場合、
上記のように変数を宣言して値を設定しておきます。
上記のように関数に引数を渡す事も可能です。
[if文]
・「ボタンが押されたらモーターを動かす」などハードウェアから取得した値で
その後の動作を変えたい場合、if文を使用します。
if文は()の中に比較条件を書きます。
==:左辺と右辺の値が同じ
!=:左辺と右辺の値が異なる
>=:左辺が右辺以上(=をなくすと超過)
<=:左辺が右辺以下(=をなくすと未満)
上記のようにelse ifを使用すことで複数の条件で分岐が可能です。
どの条件に合致しない場合の処理はelseと書き、その中に書きます。
[関数定義]
・setup()やloop()にあったような関数は自分専用のものも定義可能です。
上記にあるmy_function()が自分用関数になります。
関数には引数を渡すことも可能です。
「モーターの制御回転」「モーターの停止」など
処理に共通部分がある場合、関数を使用して処理を一箇所にまとめ、
引数で微妙な違いをif文で切り分けるとソース共通化できて効率的です。
長くなりましたがArduinoの基本構文はこんな感じです。
コメント 0