デバッグ方法について

Arduinoを使って何かを制御するときには、制御対象を見ながらプログラムを調整する必要が出てくる。 そこで使うのはシリアルモニタである。シリアルモニタにプログラムの変数を表示しながら調整するのだが、プログラムの変数の値も変更する必要が出てくる。

ここでは、シリアルモニタを利用して変数値を変更する手段の一例を示す。
最低限GPSロボットカーを動かすためには、スピードコントローラへの指示値やステアリングサーボへの指示値の実験に使う想定している。

void setup() {
   // set serial port speed (bps)
   Serial.begin(115200);

   // put your setup code here, to run once:
   pinMode(LED_BUILTIN, OUTPUT); // LED_BUILTINはArduinoにおける定数

}

void loop() {
   static int DelayTime= 500; // Default delay time (ms)
   int InValue; // シリアル通信で読み込んだ1文字のアスキーコードが入る。
   InValue = Serial.read(); // シリアル通信から読み込み

   if(InValue == 49 && DelayTime <= 900 ){ 
      DelayTime += 100;
   }
   if(InValue == 50 && DelayTime >= 100 ){
      DelayTime -= 100;
   }
   /*
   数字の1を入力するとアスキーコードの49が入る。
   数字の2を入力するとアスキーコードの50が入る。
   (900と100はdelay timeの上下限チェックである。)
   */

   Serial.print("InValue="); // Display data
   Serial.print(InValue);
   Serial.print(" DelayTime=");
   Serial.println(DelayTime);

   digitalWrite(LED_BUILTIN, HIGH); // LED control
   delay(DelayTime);
   digitalWrite(LED_BUILTIN, LOW);
   delay(DelayTime);
}