- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2022-10-05T11:35:27+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;
char delimiter = Serial.read();
in_data = Serial.parseInt();
data1[1] = (int) 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");