#author("2022-10-05T11:35:27+09:00","default:okada","okada")
#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] = (int) in_data;
     data1[0] = in_data;
     char delimiter = Serial.read();
     in_data = Serial.parseInt(); 
     data1[1] = (int) in_data;
     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");


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS