Ziel ist es zwischen 2 Arduinos mit Hilfe des Funksensors nrf24l01 zu
kommunizieren. Als Sender und Empfänger werden jeweils 1 Arduino Uno und
ein nrfl24l01 verwendet. Sobald der Sender eingeschalten wird sendet er
ein Signal. Erkennt der 2. Arduino, sprich der Empfänger das Signal,
schaltet er über den Pin 4 einen Transistor. Dieser Transistor schaltet
wiederum eine 9v Lampe.
Wird das Signal vom Empfänger erkannt, setzt er einen internen Timer auf
150ms, dieser Timer wird jede Sekunde um 100ms reduziert. Also dh. die
Lampe brennt nur wenn der Sender sendet.
Dieser Versuch klappte mit Verwendung 2er Arduino Uno einwandfrei.
Jetzt möchte ich als Empfänger einen Arduino Micro statt dem Uno
verwenden.
Ich habe bereits den Arduino Micro mit dem nrf24l01 verbunden und das
gleiche Programm wie auf dem Uno hochgeladen.
Bei Verwendung des Micros funktioniert das gegebene Setup nicht. Der
Arduino Micro erkennt kein Signal. Das einzige dass er macht wenn man
den Arduino mit Spannung versorg, ist den Pin 4 einzuschalten und das
zwar dauerhaft.
Habe ich etwas nicht beachtet?
Sender Programm:
1 | #include <SPI.h>
|
2 | #include "RF24.h"
|
3 |
|
4 | RF24 myRadio (7, 8);
|
5 | byte addresses[][6] = {"0"};
|
6 |
|
7 | void setup()
|
8 | {
|
9 | Serial.begin(9600);
|
10 |
|
11 | myRadio.begin();
|
12 | myRadio.setChannel(115);
|
13 | myRadio.setPALevel(RF24_PA_MAX);
|
14 | myRadio.setDataRate( RF24_250KBPS ) ;
|
15 | myRadio.openWritingPipe( addresses[0]);
|
16 |
|
17 | }
|
18 |
|
19 | void loop()
|
20 | { int x =0;
|
21 |
|
22 | myRadio.write(&x,sizeof(int));
|
23 | Serial.print("EIN");
|
24 | delay(1000);
|
25 |
|
26 | }
|
So sieht der Funktionsablauf des Programms in etwa aus.