#author("2022-10-05T11:47:23+09:00","default:okada","okada") *Arduino Tips [#ad374f50] RIGHT:更新日&lastmod(); RIGHT:作成日:2022年10月5日 **シリアルデータの受信 [#lc39daef] デバッグ等でArduino IDEのシリアルモニタからデータを送信するようなときに使用する。 -数字データをデリミタで複数送る(例3:1500) -Serial.available()は受信バッファにあるデータの数を返す -Serial.parseInt()は数値データをAscll文字(a,b,:)まで読んで数値に変換。読込位置も読み込んだところまで進めるみたい -Serial.read()は1バイト読みこむ ***サンプル [#q8cc4e01] -seroal_recive.ino //シリアルモニタから送信されたデータを受信してシリアルモニタに表示 // 例)3:1500 //受信データ格納配列 int data1[3] = {0, 0, 0}; int data2[3] = {0, 0, 0}; void reive_data(){ int in_data; if ( Serial.available() > 0){ delay(10); //データを全て受信するまで待つ(値は適当) in_data = Serial.parseInt(); data1[0] = in_data; char delimiter = Serial.read(); in_data = Serial.parseInt(); data1[1] = in_data; //シリアルバッファがなくなるまでReadする while( Serial.available() == 0){ char dummy = Serial.read(); } Serial.print(data1[0]); Serial.print( delimiter ); Serial.print( "====>"); Serial.println(data1[1]); } } void setup() { // put your setup code here, to run once: Serial.begin(9600); } void loop() { // put your main code here, to run repeatedly: reive_data(); } ***実行結果 [#wf25876f] &ref("./シリアル.png");