Arduinoの基礎
概要
Arduinoのスケッチには、setup()関数とloop()関数が存在する。
setup()関数はスケッチの実行開始時(電源を投入した直後)、またはボードのリセット後に1度だけ呼ばれる。
変数の初期化や、ピンモードの設定、ライブラリの初期化などを行うのに適している。
loop()関数は、setup()関数が呼ばれた後に繰り返し呼び出される。
スケッチのダウンロード
まず、スケッチをコンパイルする。
次に、Arduino IDEの[ツール]メニューバー - [ボード]メニューでArduinoボードを選択する。
更に、Arduino IDEの[ツール]メニューバー - [ポート]メニューでCOMポートを選択する。
最後に、[マイコンボードに書き込む]ボタンを押下して、コンパイルしたスケッチをダウンロードする。
LEDの点滅(ArduinoのHello World)のサンプルコード
次に示すのは、LEDを点滅させるサンプルコードである。
const int LED_PIN = 13;
void setup()
{
pinMode(LED_PIN, OUTPUT);
}
void loop()
{
digitalWrite(LED_PIN, HIGH);
delay(1000);
digitalWrite(LED_PIN, LOW);
delay( 1000 );
}
Arduinoで電圧を測定する(アナログ入力を読み取る)
Arduinoボードは、A0 - A5までの6チャネルの10ビットのADCを持っている。 Arduino Uno等の動作電圧が5[V]のボードでは、0[V] - 5[V]までの電圧は、0 - 1023までの整数に対応付けられる。
Arduino IDEでは、analogRead()関数を用いることで、指定したアナログピンから値を読むことができる。 analogRead()関数は読み取った値を0 - 1023までの整数値で返す。 従って、5[V] - 1023[V]に対応する場合は、(analogRead()関数の戻り値 * 5 / 1023)とすれば電圧が分かる。
尚、デフォルトでanalogRead()の戻り値である0 - 1023が、0[V] - 5[V](Arduino Gemmaのような3.3[V]の動作電圧の場合は0[V] - 3.3[V])に 対応付けられているが、analogReference()関数を用いてこの範囲を変更することは可能だが、設定可能な値はボードに依存する。
Arduino で電圧を測る
以下に記述するのは、電圧を読み取った結果をシリアルモニタに出力するサンプルコードである。
const int PIN_ANALOG_INPUT = 5;
void setup() {
Serial.begin( 9600 );
}
void loop() {
int i = analogRead( PIN_ANALOG_INPUT ); float f = i * 5.0 / 1023.0; Serial.println( f ); delay( 1000 );
} これによって 1 秒おきにシリアルモニターに電圧が表示されます。