• 締切済み

ArduinoでnRF24の無線モジュール

Arduinoにより、nRF24の無線モジュールを動かすスケッチで、 下記の行で、エラーとなります。原因が分かりません。   done = radio.read( &c, sizeof(char) );  エラーメッセージは下記   error: void value not ignored as it ought to be

みんなの回答

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.2

>done = radio.read( &c, sizeof(char) );// ここでエラーがおこる。 >radio.write( &c, sizeof(char) ); read()ではなくrecv()、write()ではなくsend()じゃないですか? RF24クラスにはread()もwrite()もない…はずなんですが、その辺りどうなっているんですかねぇ……。

wsigdx
質問者

補足

色々、お騒がせしました。実はライブラリーのRF24.hが新旧2種類があり、古い方に入れ替えたらエラーが出なくなりました。

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

使っているライブラリの所在とか掲示された方がよいかと。 http://www.airspayce.com/mikem/arduino/NRF24/ のライブラリだとread()が無いですし……。 エラーメッセージに関しては… radio.read()の戻り値はvoid(戻り値は『無い』)なのに、doneに代入しようとしているから…っぽいですが。

wsigdx
質問者

補足

中身は以下のものです。 -------------------------------- #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(); } }

関連するQ&A