初心者でも分かるArduino (1)
Arduinoプログラミングの初心者向けに、Arduinoプログラミングの基本を例題形式で説明していく。
例題1)
1 仕様
2 プログラミングの概要
Arduinoの開発環境の事をArduino IDE呼ぶ。コンパイル、ダウンロード、実行など一連の作業がこれ一つでできる。
また、Arduinoプログラムのことをスケッチと呼ぶ。
3 全体的な流れとsetup関数 loop関数の役割
Arduinoのスケッチには必ず setup() と loop() という二つの関数が存在する。スケッチを記述するためには、この二つの関数がどのように呼び出されるかを理解しておく必要がある。その点を以下のフローチャートに示す。
この流れを理解すれば setup関数とloop関数のそれぞれの役割も見えてくる。
プログラム説明
setup()
リセット直後に1回だけコールされる。
アプリケーションの初期設定はここに記述する。
loop()
setup実行後にコールされる。
loop関 30px数からリターンしても、電源停止までいつまでもloop関数を繰り返しコールし続ける。
4 解答例
<プログラム>
unsigned int count;
void setup() {
count = 0;
Serial.begin(9600);
}
void loop() {
Serial.println(count, DEC);
delay(1000);
count++;
}
プログラム説明
unsigned int sec
unsigned int型は、2バイトの値を格納する点ではint型と同じだが、負の数が扱えず0から65535までの正の数だけを格納する。
Serial.begin( speed )
シリアル通信のデータ転送レートをbps(baud)で指定する。bpsはビット/秒です。コンピュータと通信する際は、次のレートから1つを選ぶ。
300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 115200
Serial.println( data, format )
様々なフォーマットでデータを送信する。
例)
今回のプログラムでDECの意味が分からない読者もいると思うので、説明していこうと思う。
<今回のプログラム>
Serial prinln(sec, DEC)
オプションの第2パラメータによって基数(フォーマット)を指定できる。
BIN(2進数)、OCT(8進数)、DEC(10進数)、HEX(16進数)に対応している。
もし、Serial.print(78)を指定した場合次のように変化させることができる。
・Serial.print(78, BIN) – “1001110”が出力される。
・Serial.print(78, OCT) – “116”が出力される。
・Serial.print(78, DEC) – “78”が出力される。
・Serial.print(78, HEX) – “4E”が出力される。
・Serial.println(1.23456, 0) – “1”が出力される。
・Serial.println(1.23456, 2) – “1.23”が出力される。
・Serial.println(1.23456, 4) – “1.2346”が出力される.
delay( ms )
時間を設定することができる。
単位はミリ秒です(1s = 10000ms)。
今回は、
delay(1000);
を使っているので1秒間の設定となっている。