nRF24L01 verbindet sich nicht

Hallo Mitglieder,

ich habe zwei nRF24L01 Antennen erworben und habe sie nach dieser Anleitung sie angeschlossen und habe den Code auf die Arduinos geschrieben. Als empfänger verwende ich einen Arduino Nano und als Sender einen Arduino Uno. Weiß jemand, was das Problem sein könnte?

Wie sollen wir mit den Informationen helfen ?
Wir können doch nicht auf deinen Arbeitsplatz sehen.
Ohne deinen Sketch (in Code-Tags) und dein Schaltbild haben wir keine Chance dir zu helfen.

timon_00000:
ich habe zwei nRF24L01 Antennen erworben

Nur die Antennen oder ist da noch mehr dran?

Gruß Tommy

Tommy56:
Nur die Antennen oder ist da noch mehr dran?

Gruß Tommy

Stimmt, nur mit Antennen funktioniert das tatsächlich nicht, eben mal getestet.

Ich habe einen Link bei "dieser" eingefügt. Man kommt zu einer Seite, auf der man den Code und den Aufbau der Schaltung sehen kann. Ich habe Fotos von dem Schaltkreis, den ich gemacht habe, gemacht, doch es war kaum was zu erkennen. Ich habe alle Materiallien verwendet, die dort benötigt werden, außer den Motor, da ich ihn nicht brauche.

Noch mal der Link

Zunächst solltest du sicherstellen, dass deine Sketche mit den NRFs kommunizieren können,
das überprüft die Module und deren Anschluss.

Wenn das auf beiden Seiten geht, aber die Kommunikation immer noch fehlschlägt,
kannst du die Stromversorgung überprüfen, indem du die NRFs mit einer Batterie betreibst.

Besonders der fette NRF Modul benötigt eine gute Stromversorgung, ein Kondensator reicht da oft nicht.
Kleine Abstände/zu viel Power können auch zu einem Übersteuern des Empfängers führen.

Robin2 hat ein Tutorial für die NRFs, mit Details und Testsketchen.

timon_00000:
Ich habe einen Link bei "dieser" eingefügt. Man kommt zu einer Seite, auf der man den Code und den Aufbau der Schaltung sehen kann. Ich habe Fotos von dem Schaltkreis, den ich gemacht habe, gemacht, doch es war kaum was zu erkennen. Ich habe alle Materiallien verwendet, die dort benötigt werden, außer den Motor, da ich ihn nicht brauche.

Noch mal der Link
Simple and Cheap Radio Control Making for RC Models. DIY RC – RC Araç Yapımı, DIY Hobi Elektronik, Arduino projeler, RC Uçak Yapımı

Schön, dass du uns Links postest, wie es aussehen soll. Leider hilft dir und uns das nicht weiter.
Poste bitte eine Schaltung bzw. einen Sketch wie du es aufgebaut hast. Sehr oft sind zwischen den beiden Zuständen sehr große Unterschiede, die wir dann nicht erkennen können.

Ich habe den Aufbau von Robin2 gemacht. Link
Ich habe die Pins so angeschlossen:

Sender (Arduino Uno):
RF24 → Arduino

GND → GND
Vcc → 3.3V
CE → 7
CSN → 8
SCK → 13
MOSI → 11
MISO → 12

Zwischen Vcc und GND habe ich einen 100nF Kondensator angeschlossen. Ich habe auch in den Code die Pins agepasst

// SimpleTx - the master or the transmitter

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>


#define CE_PIN   7
#define CSN_PIN 8

const byte slaveAddress[5] = {'R','x','A','A','A'};


RF24 radio(CE_PIN, CSN_PIN); // Create a Radio

char dataToSend[10] = "Message 0";
char txNum = '0';


unsigned long currentMillis;
unsigned long prevMillis;
unsigned long txIntervalMillis = 1000; // send once per second


void setup() {

    Serial.begin(9600);

    Serial.println("SimpleTx Starting");

    radio.begin();
    radio.setDataRate( RF24_250KBPS );
    radio.setRetries(3,5); // delay, count
    radio.openWritingPipe(slaveAddress);
}

//====================

void loop() {
    currentMillis = millis();
    if (currentMillis - prevMillis >= txIntervalMillis) {
        send();
        prevMillis = millis();
    }
}

//====================

void send() {

    bool rslt;
    rslt = radio.write( &dataToSend, sizeof(dataToSend) );
        // Always use sizeof() as it gives the size as the number of bytes.
        // For example if dataToSend was an int sizeof() would correctly return 2

    Serial.print("Data Sent ");
    Serial.print(dataToSend);
    if (rslt) {
        Serial.println("  Acknowledge received");
        updateMessage();
    }
    else {
        Serial.println("  Tx failed");
    }
}

//================

void updateMessage() {
        // so you can see that new data is being sent
    txNum += 1;
    if (txNum > '9') {
        txNum = '0';
    }
    dataToSend[8] = txNum;
}

Empfänger (Arduino Nano):

GND → GND
Vcc → 3.3V
CE → 9
CSN → 10
SCK → 13
MOSI → 11
MISO → 12

// SimpleRx - the slave or the receiver

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

#define CE_PIN   9
#define CSN_PIN 10

const byte thisSlaveAddress[5] = {'R','x','A','A','A'};

RF24 radio(CE_PIN, CSN_PIN);

char dataReceived[10]; // this must match dataToSend in the TX
bool newData = false;

//===========

void setup() {

    Serial.begin(9600);

    Serial.println("SimpleRx Starting");
    radio.begin();
    radio.setDataRate( RF24_250KBPS );
    radio.openReadingPipe(1, thisSlaveAddress);
    radio.startListening();
}

//=============

void loop() {
    getData();
    showData();
}

//==============

void getData() {
    if ( radio.available() ) {
        radio.read( &dataReceived, sizeof(dataReceived) );
        newData = true;
    }
}

void showData() {
    if (newData == true) {
        Serial.print("Data received ");
        Serial.println(dataReceived);
        newData = false;
    }
}

Bei dem Serial Monitor kam bei dem Arduino Uno (Sender) diese Nachricht:

SimpleTx Starting
Data Sent Message 0  Tx failed
Data Sent Message 0  Tx failed
Data Sent Message 0  Tx failed
Data Sent Message 0  Tx failed
Data Sent Message 0  Tx failed

Bei dem Arduino Nano (Empfänger)

v⸮SimpleRx Starting
Data received 
Data received 
Data received

timon_00000:
Zwischen Vcc und GND habe ich einen 100nF Kondensator angeschlossen.

Der Kondensator ist zu klein, 10uF ist besser, wird dir aber bei deinem High Power Modul nicht helfen.

Data Sent Message 0  Tx failed

Data received

Sieht so aus, als hätte der Receiver Probleme zu senden (das Acknowledge).

Ich empfehle sogar 100 - 220 µF Elkos an den Transceivern einzusetzen.
Einen nRF24L01 habe ich zwar bisher noch nicht verwendet, ab eingrößerer Elko hat mir schon bei anderen Projekten mit Funkmodulen geholfen.

Ich habe schon mehrere defekte Module gehabt, die empfangen konnten aber nicht senden.

Hallo nochmal,
ich habe die Antennen vertauscht und es kam trotz dem die selbe Meldung.

Sender
Data Sent Message 0  Tx failed

Empfänger
Data received

timon_00000:
Hallo nochmal,
ich habe die Antennen vertauscht und es kam trotz dem die selbe Meldung.

Das wird dein Problem sicher nicht lösen.
Hast du das mit den Elkos mal geprüft ?

Ich habe keine größeren gefunden. Ab und zu kam die Meldung, dass das übertragen funktioniert, doch wenn man die Antenne einbischen verschiebt, unterbricht sich die Verbindung und ist nur schwer wiederherstellbar. Es hat nur zwei Mal funktioniert. Ich schau, ob ich noch größere Elkos finde.

timon_00000:
Ich habe keine größeren gefunden. Ab und zu kam die Meldung, dass das übertragen funktioniert, doch wenn man die Antenne einbischen verschiebt, unterbricht sich die Verbindung und ist nur schwer wiederherstellbar. Es hat nur zwei Mal funktioniert. Ich schau, ob ich noch größere Elkos finde.

Die Elkos solltest du dir besorgen, z.B. bei Reichelt o.ä.
Dein Fehler deutet sehr auf ein Spannungsproblem.
Und so teuer sind die nicht.

Soll ich 220 µF bestellen?

timon_00000:
Soll ich 220 µF bestellen?

Ja, damit machst du nichts verkehrt.

220μF und 16V sind dann ok.

Besser noch ist eine eigene 3.3V Stromversorgung, z.B. via Step-Down von 5V, speziell für die High Power Module.