Ciao ragazzi,
sto provando a far funzionare i moduli radio Nrf24l01+ cercando di far comunicare una scheda arduino Yùn e una 2009 .Purtroppo ricevo valori inaspettati nel monitor seriale e non riesco a capire a cosa sono dovuti. (e questo è solo il test dei moduli...sigh)
In pratica il trasmettitore è l'Arduino 2009 che invia ripetutamente l'intero 155.
Il ricevitore,l'Arduino Yun dovrebbe semplicemente stampare il messaggio. vi allego i due sketch e spero di capire con voi qual'è il problema
Sketch Trasmettitore Arduino 2009
/* Trasmettitore Arduino 2009 COM5 */
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
int Messaggio = 155;
RF24 radio(8,7);
const uint64_t pipe = 0xE8E8F0F0E1LL;
void setup(void)
{
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(pipe);
}
void loop(void)
{
Serial.println("pre-Write");
radio.write( &Messaggio, sizeof(Messaggio) );
Serial.println("post-Write");
}
L'output è quello desiderato.
pre-Write
post-Write
pre-Write
post-Write
...
Sketch Ricevitore Arduino Yun
/*Ricevitore Arduino Yùn COM 3*/
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
int Ricevuto;
RF24 radio(8,10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
void setup(void)
{
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(1,pipe);
radio.startListening();
}
void loop(void)
{
if ( radio.available() )
{
bool fatto = false;
while (!fatto)
{
fatto = radio.read(&Ricevuto, sizeof(Ricevuto) );
Serial.println("Valore Ricevuto");
Serial.println(Ricevuto);
delay(3000);
}
}
else
{
Serial.println("No radio");
}
}/*Ricevitore Arduino Yùn COM 3*/
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
int Ricevuto;
RF24 radio(8,10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
void setup(void)
{
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(1,pipe);
radio.startListening();
}
void loop(void)
{
if ( radio.available() )
{
bool fatto = false;
while (!fatto)
{
fatto = radio.read(&Ricevuto, sizeof(Ricevuto) );
Serial.println("Valore Ricevuto");
Serial.println(Ricevuto);
delay(3000);
}
}
else
{
Serial.println("No radio");
}
}
L'output che ricevo è
Valore Ricevuto
-1
Valore Ricevuto
-1
Valore Ricevuto
-1
Valore Ricevuto
0
Valore Ricevuto
0
No radio
No radio
No radio
No radio
No radio
Valore Ricevuto
0
ecc....
perchè non stampa semplicemente il mio amato 155??