RS485による通信について・・・
できない訳ではないのですが・・・
ちゃんとできてる訳でもない。
と、いう中途半端な状態が続くので、一旦中断しました。
またネットをさまよっていました。
そうして見つけたのが・・・こちら
中国語なんでしょうけど・・・読めません。
おそらく、「NXTとArduinoをRS485で通信する」という感じでしょうかねぇ。
で・・・このHPに書いてあるプログラムが・・・なんじゃこりゃ、っていうくらい単純です。
いままで、実験していたRS485のプログラムは、いったいなんだったのでしょうか?
Arduino側
digitalWrite(DE_RE_PIN, HIGH); // Enable data transmit
Serial.print("Hi NXT ! ");
NXT側
RS485Read(strReceive);
TextOut( 0, xline, strReceive);
プログラムの要の部分は・・・たったのこれだけ!?
しかし、ここで大きな問題が・・・
配線がわからない!
プログラムを見て、DEピン、REピンはArduinoのD2に接続すればいいことは判ったのですが・・・DIピンとROピンは、何番に接続すれば良いのでしょうか?
結論から言うと・・・DIピンをD1に接続すれば良いことが判りました。
(ROピンは、とりあえずフリーにしてます)
さらに、戸惑うのが・・・これまで見ていたHPの内容とABの接続が逆です。
これまでは 黄色の線:A 青色の線:B でした、
でも今度のは 青色の線:A 黄色の線:B なんです。
でも、これで、確かにデータが Arduino から NXT に送られてますよ。
じゃあなんで、D1ピンなんだろう・・・
あとで、Arduinoの本を読んだら・・・Serial通信はデフォルトで0ピン、1ピンらしいです。
(Arduinoの世界の常識ってヤツですか・・・そんなもん、知らねーよ!)
とにかく、Arduino ⇒ NXT は通信ができました。
注)これは2011年に書いたけど、(なぜか)投稿しなかった古い記事です・・・ですので、今となっては役に立たない情報かもしれません・・・