2016-06-24 6 views
0

Ich benutze arduino UNO und mega2560. Ich verwendete 2 Module NRF24L01. ist eine für das Senden und andere empfangen. Problem: Ich bekomme zufällige Werte auf Empfängerseite von Arduino seriellen Monitor. Wenn ich Int-Typ verwende, gibt es zufällige Ganzzahlen kontinuierlich. Wenn ich String-Typ verwende, gebe ich zufällige Zeichen.NRF24L01 + PA + LNA (Transceiver) kommuniziert nicht zwischen zwei arduinos

Codierung:

/*-----(Import needed libraries)-----*/ 
#include <SPI.h> // Comes with Arduino IDE 
#include "RF24.h" // Download and Install (See above) 
/*-----(Declare Constants and Pin Numbers)-----*/ 
//None yet 
/*-----(Declare objects)-----*/ 
// (Create an instance of a radio, specifying the CE and CS pins.) 
RF24 myRadio (7, 8); // "myRadio" is the identifier you will use in following methods 
/*-----(Declare Variables)-----*/ 
byte addresses[][6] = {"1Node"}; // Create address for 1 
int dataReceived; // Data that will be received from the transmitter 

void setup() /****** SETUP: RUNS ONCE ******/ 
{ 
    // Use the serial Monitor (Symbol on far right). Set speed to 115200 (Bottom Right) 
    Serial.begin(115200); 
    delay(1000); 
    //Serial.println(F("RF24/Simple Receive data Test")); 
    //Serial.println(F("Questions: [email protected]")); 

    myRadio.begin(); // Start up the physical nRF24L01 Radio 
    myRadio.setChannel(108); // Above most Wifi Channels 
    // Set the PA Level low to prevent power supply related issues since this is a 
    // getting_started sketch, and the likelihood of close proximity of the devices. RF24_PA_MAX is default. 
    myRadio.setPALevel(RF24_PA_MIN); 
    // myRadio.setPALevel(RF24_PA_MAX); // Uncomment for more power 

    myRadio.openReadingPipe(1, addresses[0]); // Use the first entry in array 'addresses' (Only 1 right now) 
    myRadio.startListening(); 

}//--(end setup)--- 


void loop() /****** LOOP: RUNS CONSTANTLY ******/ 
{ 

    if (myRadio.available()) // Check for incoming data from transmitter 
    { 
    while (myRadio.available()) // While there is data ready 
    { 
     myRadio.read(&dataReceived, sizeof(dataReceived)); 
     //Serial.println("Data is coming"); 
     // Get the data payload (You must have defined that already!) 
    } 
    } // DO something with the data, like print it 
    else{ 
    Serial.println("Data received = "); 
    Serial.println(dataReceived); 
delay(200);} 

}//--(end main loop)--- 

Reciever serial monitor

Antwort

0

Sieht aus wie sind Sie möglicherweise myRadio.read() mehrere Male mit der gleichen Zielvariable aufrufen.

Dadurch werden die Daten, die bereits in dieser Variablen gespeichert sind, beim zweiten Durchlauf der while-Schleife überschrieben.

Verwandte Themen