SSブログ

Arduinoのソースを書いてみよう2 [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の基本構文はこんな感じです。
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。