前提・実現したいこと
Arduino2台使用してXBeeを使用して無線のUART通信をしようとしてます
発生している問題・エラーメッセージ
有線UART通信の時はうまくいきますが無線UART(XBee経由)にすると通信に10ms〜15ms程度の遅延が発生してしまっていてうまく通信できない時があります。
動作はLチカプログラムが同じタイミングで受信側のLEDが点灯・消灯するというプログラムですが、点灯状態 or 消灯状態 or 時々点灯消灯
になってしまいます
リセットボタンも効きにくいです。(RX,TXピンの接続をはずすと直ります。
参考にしたプログラムは以下のサイトから引用しています。
https://shizenkarasuzon.hatenablog.com/entry/2018/09/23/145928
(回路図の赤色の配線がGNDに接続されていますが、3.3V電源端子に接続しています)
該当のソースコード
int LED = 13; int count = 0; void setup(){ Serial.begin(9600); pinMode(LED, OUTPUT); } void loop(){ count++; Serial.write(count); if((count % 2) == 1){ digitalWrite(LED, HIGH); }else{ digitalWrite(LED, LOW); } delay(1000); }
int LED = 13; void setup(){ Serial.begin(9600); pinMode(LED, OUTPUT); } void loop(){ while(Serial.available()){ byte inChar = (byte)Serial.read(); if((inChar % 2) == 1){ digitalWrite(LED, HIGH); }else{ digitalWrite(LED, LOW); } delay(10); } }
試したこと
ボー・レートをいくつか変更してみました
おそらく原因としては送信側のUARTのタイミングと受信側のUARTのタイミングが合わずにデータが正常に受信されていないのではないかと考えます。
補足情報(FW/ツールのバージョンなど)
UARTで絶対通信しないといけない訳ではないので、他に方法があれば教えていただきたいです。
ドローン・ルンバ系の類のものなので...
回答4件
あなたの回答
tips
プレビュー