Forum: Mikrocontroller und Digitale Elektronik Probleme mit nRF24L01+ in kombination mit RC5 RF522 (Arduino UNO)


von Jan D. (jan_d203)


Lesenswert?

Hallo zusammen,
ich versuche meinen Beitrag so genau wie möglich zu beschreiben. Bitte 
habt Rücksicht bei Formatierungsfehlern etc. bin neu hier.

Ich habe zwei Aufbauten auf einem Breadboard. Darauf eine 
Spannungsversorgung von AZDelivery - MB102. (Diese Dinger mit einem 
Steckbrücker von 3,3V oder 5V) Beitrieben mit 9V/1A Netzteil

Dann habe ich das Funkmodul nRF24L01+ und einen RFID RC522 Leser 
angeschlossen. Den Arduino und die extrene Spannungsversorgung habe ich 
mit Masse verbunden.

Soweit sogut. Nach einigen Problemen in der Kombination habe ich einen 
Code soweit herunter gebrochen, sodass ich nun nur noch einfache Integer 
Zahlen sende. Also ein simpler Code zum Senden und empfangen. So kann 
ich schon mal den Fehler Code auschließen.

Problem: Es funktioniert nicht, wenn ich den RFID Leser und das 
nRF24L01+ gleichzeitig angeschlossen habe. Der RFID Leser funktioniert 
auch so aber das nRF24L01+ macht Probleme.

Ich habe beide an die SPI Pins der UNOs angeschlossen und natülich die 
CE, CSN, RST und SDA getrennt auf Digitale Pins.

Wenn ich den RFID Leser abschließe funktioniert das Senden und Empfangen 
ohne Probleme.

Die Spannungen sind stabiel bei 3,3V für beide Module.

Code zum empfangen
1
#include <SPI.h>
2
#include <RF24.h>
3
4
#define CE_PIN   2
5
#define CSN_PIN  3
6
7
RF24 radio(CE_PIN, CSN_PIN);
8
9
void setup() {
10
  Serial.begin(9600);
11
  radio.begin();
12
  radio.openReadingPipe(1, 0xE8E8F0F0E1LL); // Öffnet das Leserohr 1 mit der Adresse
13
  radio.setChannel(76); // Setzt den Kanal für die Kommunikation
14
  radio.startListening(); // Beginnt mit dem Empfang von Daten
15
}
16
17
void loop() {
18
  if (radio.available()) { // Überprüft, ob Daten verfügbar sind
19
    int receivedData; // Variable zur Speicherung der empfangenen Daten
20
    radio.read(&receivedData, sizeof(receivedData)); // Liest die empfangenen Daten
21
    Serial.print("Empfangene Daten: ");
22
    Serial.println(receivedData); // Gibt die empfangenen Daten aus
23
  }
24
}

Code zum Senden
1
#include <SPI.h>
2
#include <RF24.h>
3
4
#define CE_PIN   2
5
#define CSN_PIN  3
6
7
RF24 radio(CE_PIN, CSN_PIN);
8
9
void setup() {
10
  Serial.begin(9600);
11
  radio.begin();
12
  radio.openWritingPipe(0xE8E8F0F0E1LL); // Öffnet das Schreibrohr mit der Adresse
13
  radio.setChannel(76); // Setzt den Kanal für die Kommunikation
14
}
15
16
void loop() {
17
  sendData();
18
  delay(1000);
19
}
20
21
void sendData() {
22
  for(int i = 0; i<100; i++){
23
  // Daten senden
24
  bool success = radio.write(&i, sizeof(i));
25
  if (success) {
26
    Serial.print("Daten gesendet: ");
27
    Serial.println(i); // Wert der gesendeten Daten ausgeben
28
  }
29
   else {
30
    Serial.println("Fehler beim Senden der Daten.");
31
  }
32
  delay(1000);
33
  }
34
}

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.