Probleme mit nRF24L01+ in kombination mit RC5 RF522 (Arduino UNO)

OP #7625955
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
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren