Donnerstag, 2. März 2017

2.4Ghz Übertragungen mit NRF24L01 am Arduino

In diesem Post geht es darum, wie man mit den NRF24L01 2.4Ghz Funkmodulen eine Funkübertragung zwischen zwei Arduinos oder Mikrocontrollern machen kann.

Verbindung mit dem Arduino

Die Verbindung zwischen den Funkmodulen und dem Arduino funktioniert über das SPI Protokoll (Blogartikel über das SPI Protokoll). Der nrf24l01 ist dabei nicht 5V kompatibel, weshalb es wichtig ist Vcc nur mit den +3.3V des Arduino zu verbinden. Eventuell ist es auch notwendig einen Kondensator (~ 10nF) zwischen Vcc und GND zu schließen, bei mir klappte die Übertragung aber auch problemlos ohne. Der Schaltplan sieht für Sender und Empfänger so aus:


Programmierung

Zur Programmierung der nrf24l01 am Arduino gibt es die RF24 Bibliothek, welche man sich hier herunterladen kann. Nach dem Entpacken des Inhalt der .zip Datei und dem Kopieren des Bibliotheksordners in den libraries Ordern im Arduino Ordner, ist nach einem Neustart der Arduino IDE unter Datei > Beispiele > RF24 > GettingStarted als Beispielsketch vorhanden. 

Für den Sender muss man im Beispielsketch lediglich darauf achten, dass ganz zu Beginn in der Zeile boolean radioNumber = 0 steht. Nach dem Upload des Sketches auf den Sender-Arduino ist dieser soweit fertig.

Für den Empfänger muss man im Beispielsketch in der Zeile boolean radioNumber = 1 festlegen. Außerdem sollte man einen kleinen delay(75) einbauen bevor man die Empfangsbestätigung an den Sender zurückschickt (siehe Kommentare im loop Teil), da dieser sonst eventuell durch den Wechsel vom Sende- in den Empfangsmodus die Rückmeldung verpasst und eine gescheiterte Übertragung vermutet. 

Keine Kommentare:

Kommentar veröffentlichen