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