Go Down

Topic: Help - NRF24L01+ Strani messaggi ricevuti (Read 449 times) previous topic - next topic

antgua

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

Code: [Select]
/* 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.
Code: [Select]

pre-Write
post-Write
pre-Write
post-Write
...


Sketch Ricevitore Arduino Yun
Code: [Select]
/*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 è
Code: [Select]

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??

nid69ita

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento: Regolamento
- qui una serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections
- qui le pinout delle varie schede by xxxPighi: Pinout
- qui una serie di link generali utili: Link Utili
my name is IGOR, not AIGOR

antgua

#2
Aug 02, 2014, 04:44 pm Last Edit: Aug 02, 2014, 05:33 pm by antgua Reason: 1
Opss... scusate non volevo sembrare scortese :)

Edit:
Sono quasi arrivato alla conclusione che si tratti di un problema di casting ma non riesco a capire dove potrebbe essere il problema

Go Up