SSブログ

Arduinoのソースを書いてみよう1 [Arduino入門編]

おはようございます。
では、前回のサンプルをベースにソースの書き方を[手(チョキ)]

その前にArduinoでハードウェアを制御するまでの大まかな流れは以下です
 1)制御するArduinoとハードウェアを接続する
 2)Arduinoにハードウェアを接続した事を教える
 3)Arduinoからハードウェアを制御する

まずは配線とソースはこちら
led_sample.jpg

1)制御するArduinoとハードウェアを接続する

「Arduinoでハードウェアを制御する」とはArduinoからハードウェアに電気を流したり、止めたり、命令をだしたりすることになります。
そこでまず人の手で制御したいハードウェアとArduinoを各ピンで接続します。

まず電気はプラス側からマイナス側に流れます。
ハードウェアを制御する場合、電気はArduinoから供給したいので、
Arduinoのプラス側とマイナス側をハードウェアに接続すればいいことになります。

プラス側としてLEDのプラス側をArduinoの13番ピンに接続します。
これでArduinoから「13番ピンに電気を流す」と命令すれば電気が流れLEDが点灯し、「13番ピンに電気を流さない」と命令すれば電気が止まりLEDが消灯します。

マイナス側としてLEDのマイナス側をArduinoのGND(グランド)に制御します。GNDは電気のマイナス側を意味しています。

これでプラスとマイナスが繋がり電気が流れる仕組みが完成しました。
そして、これが電子回路の作成になります[演劇]


2)Arduinoにハードウェアを接続した事を教える
Arduinoでは最初に「void setup(){中身}」を書きます。

#define LED_PIN_NO 13

void setup() {
  // 「13番ピンを使うよ」と宣言
  pinMode(LED_PIN_NO, OUTPUT);
}


これは初期設定用と思って下さい。
Arduinoが起動したらsetup()内の「中身の部分」が最初に一回だけ実行されます。

そこでsetup()の中では初期設定として主に以下を行います。
 1)Arduinoで使用するピンを宣言する
 2)(必要な場合のみ)ハードウェアの初期設定を行う

ここで「13番ピンを使うよ」と宣言すれば、Arduinoで13ピンに電気を流したり、
止めたりできます。宣言は最初に行えばいいのでsetup()で1回のみ行います。

宣言の行い方は以下です。
 1)pinModeという関数をコール
 2)第1引数には制御したいピン番号を設定
 3)第2引数には制御が入力か、出力かを設定

第1引数は数値で13と書けばいいです。
ただし今回はソース冒頭に「#define」を宣言して設定しています。
#defineを使用すると「この変数は値を絶対に変えません」となり、
書き換えはエラーになります。ピン番号は固定なので#defineを使いました。

第2引数は「LEDのようにArduinoから命令をだしたいときはOUTPUT」
「センサーのようにハードウェアから情報を取得したいときはINPUT」と書きます。

3)Arduinoからハードウェアを制御する
void loop() {
  // LED点灯
  digitalWrite(LED_PIN_NO, HIGH);

  // 2秒待つ
  delay(2000);

  // LED消灯
  digitalWrite(LED_PIN_NO, LOW);

   // 2秒待つ
 delay(2000);
}


次にvoid loop()です。
これはループの名の通り無限に繰り返される処理部分となります。
Arduinoではloop()を繰り返し処理を実行する仕組みになっています。
ソースにあるdelay(2000)は2秒待つという時間待ちになります。

ハードウェアの制御ですが以下で行います
 1)電気の流す・止めるはdigitalWrite関数で設定
 2)第1引数には制御するピン番号を設定
 3)第2引数はHIGHで電気が流れ、LOWで電気が止まる

今回は間に2秒の時間待ちを入れてHIGH,LOWと順に宣言しています。
よって「2秒おきにLEDが点灯・消灯を無限に繰り返す」ことになります[ひらめき]

長くなりましたが入門編第1回は終了でーす[わーい(嬉しい顔)]
お疲れ様でしたぁ~[手(パー)]

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

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

トラックバック 0

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