- 締切済み
ArduinoでnRF24の無線モジュール
Arduinoにより、nRF24の無線モジュールを動かすスケッチで、 下記の行で、エラーとなります。原因が分かりません。 done = radio.read( &c, sizeof(char) ); エラーメッセージは下記 error: void value not ignored as it ought to be
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Wr5
- ベストアンサー率53% (2173/4061)
>done = radio.read( &c, sizeof(char) );// ここでエラーがおこる。 >radio.write( &c, sizeof(char) ); read()ではなくrecv()、write()ではなくsend()じゃないですか? RF24クラスにはread()もwrite()もない…はずなんですが、その辺りどうなっているんですかねぇ……。
- Wr5
- ベストアンサー率53% (2173/4061)
使っているライブラリの所在とか掲示された方がよいかと。 http://www.airspayce.com/mikem/arduino/NRF24/ のライブラリだとread()が無いですし……。 エラーメッセージに関しては… radio.read()の戻り値はvoid(戻り値は『無い』)なのに、doneに代入しようとしているから…っぽいですが。
補足
中身は以下のものです。 -------------------------------- #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> // CEピンとCSピン番号の設定 RF24 radio(9,10); void setup(void) { // 通信開始 radio.begin(); // リトライ回数の設定 radio.setRetries(15,15); // 書き込み用のパイプを開く radio.openWritingPipe(0xF0F0F0F0D2LL); // 読み込み用のパイプを開く radio.openReadingPipe(1, 0xF0F0F0F0E1LL); radio.startListening(); } void loop(void) { char c; if ( radio.available() ) { bool done = false; while (!done) { done = radio.read( &c, sizeof(char) );// ここでエラーがおこる。 delay(20); } radio.stopListening(); radio.write( &c, sizeof(char) ); radio.startListening(); } }
補足
色々、お騒がせしました。実はライブラリーのRF24.hが新旧2種類があり、古い方に入れ替えたらエラーが出なくなりました。