読者です 読者をやめる 読者になる 読者になる

Serial.println(); が見えない

Arduinoで Serial.println(nyan); するには Serial.begin(bps); をしておく必要がある.

2015/05/04 最下部に追記.
シリアルモニタとシリアルポートとシリアル通信について.

 

目的

シリアルモニタに何らかの出力をしたい.(主にテストやデバッグのため)
しているはずなのに,見えない.

 

環境

 

ソースコード

const int LED = 13; // LEDはpinNO.D13
int cnt = 0; // cntが 偶数->点灯 奇数->消灯

void setup()
{
  /* これをコメントアウトするとシリアルモニタに出力されなくなる */
  Serial.begin(9600); // bpsを設定 
  
  pinMode(LED, OUTPUT); // LEDは出力
}

void loop()
{
  Serial.println(cnt); Serial.println(); // シリアルモニタに出力
  
  if( cnt++ % 2 ) digitalWrite(LED, HIGH); // 点灯
  else digitalWrite(LED, LOW); // 消灯
  
  delay(1000);
}

 

結論

Arduinoでシリアルモニタに出力するにはシリアルポートを開く必要がある.
ソースコードを試すまではアナログピンを使用していたから,シリアルポートは当然開いていて,気付かなかった.
シリアルポートを開かなければ,シリアルモニタも開かれない模様.
理由(仕組み)は不明.(誰かご教授ください)追記参照.

 

2015/05/04 追記

シリアルポートを開かなければ,シリアルモニタも開かれない理由.
Arduino IDE で書いたプログラムはArduino上に載って,載ったプログラムに従ってArduino(と回路)は動く.
従って,プログラムからシリアルモニタに出力しようとすれば,ArduinoとPC間でシリアル通信を行って,シリアルモニタに出力するデータをArduinoからPCに送信する必要がある.
そのシリアル通信を行うためには通信速度を設定する必要があり,Serial.begin(bps); をsetupに自然と書くことになる.
これでシリアルポートを開いたことになり,シリアル通信されたデータがシリアルモニタに出力される.