今回はGR-SAKURAに実装されているLEDを点灯/消灯させます。
マイコンプログラムではポート関連レジスタの設定を経てからポートレジスタに書き込むと信号を切り替えることができるようになりますが、GR-SAKURA(Webコンパイラ)ですとポート種類の指定、出力値指示のみで簡単にこれが行えます。
/*GR-SAKURA Sketch Template Version: V1.08*/ #include <rxduino.h> #define INTERVAL 100 void setup() { pinMode(PIN_LED0, OUTPUT); /* LED port is output */ pinMode(PIN_LED1, OUTPUT); /* LED port is output */ pinMode(PIN_LED2, OUTPUT); /* LED port is output */ pinMode(PIN_LED3, OUTPUT); /* LED port is output */ } void loop() { static int iStat = 0; switch(iStat){ case 0: digitalWrite(PIN_LED0,1); break; case 1: digitalWrite(PIN_LED0,0); break; case 2: digitalWrite(PIN_LED1,1); break; case 3: digitalWrite(PIN_LED1,0); break; case 4: digitalWrite(PIN_LED2,1); break; case 5: digitalWrite(PIN_LED2,0); break; case 6: digitalWrite(PIN_LED3,1); break; case 7: digitalWrite(PIN_LED3,0); break; default: iStat = -1; break; } delay(500); iStat++; }
setup()で呼び出されているpinMode()というのは、指定ポートの入出力を切り替える関数です。第一引数に指定ポート(ピン番号)を、第二引数に入力/出力を指定します。引数のPIN_LED0、OUTPUTは<rxduino.h>内で規定されています。
loop()ではiStatを静的(static)に確保し、loop()関数の処理が終了しても変数が壊されないようにしています。また、信号の切り替えにはdigitalWrite()を利用しています。こちらは指定ポートに指定レベル(0:low、1:high)を出力します。digitalWrite()を利用するには事前に、pinMode()で該当ポートをOUTPUT指示しておく必要があります。
テストプログラムの内容ですが、500ms間隔で(delay(500))LEDを順に点灯/消灯させるものです。写真で動きを追っていくと下記のようになります。
Webコンパイラを利用するとプログラムが簡単に表現できるようになるため、学生さんやプログラム初心者(社会人)、お子さんと一緒にホビー&自由研究したい方にはうってつけです。このようなガジェットを利用するとプログラムの難しさを感じることなく、製作が楽しめると思います。
会社製品ともなると、このようなプログラムでは済まないのが実情ですが、それは入社、配属されてからのお楽しみですね。