void setup()
{
Serial.begin(115200);
}
void loop()
{
Serial.println(Serial.available());
}
上記のようなプログラムをarduino microとarduino UNOに書き込み、
シリアルモニタで文字を打ち表示させると、
microの方は0 1で動作が停止してしまう。
対しUNOの方は0から63まで表示される。
どういうことなの…
改善案はあるの…?
Serial.available() は
arduinoの受信バッファに溜まっている文字の数を返す関数です
受信バッファには上限があり,その上限が micro は1で,UNOは63ということでしょう.つまり microは最大2文字, UNOは64文字までなら受信バッファに保存できる,ということになります
とりあえず 受信バッファに溜まっている文字は read を呼べば取り出せるので
以下のようにプログラムすれば数字が増えたり減ったりするはずです
void loop()
{
Serial.println(Serial.available());
Serial.read() ;
}
a=0 の位置を if (a>=2)の末尾に移動させると,
プログラムが読みやすくなると思います
これで while (a<3) のループが不要になります
2017/03/21 14:47:081人で物事を済ませようとすると無駄な行動をやってることがありますね。
2017/03/22 22:38:52ありがとうございます。