Zeige Quelltext Ältere Versionen Links hierher PDF exportieren Teilen auf ... Google+ Twitter LinkedIn Facebook Pinterest Telegram Inhaltsverzeichnis nRF24L01 Allgemeine Merkmale der nRF24L01-Module Pinbelegung der Module Verschiedene NRF24 IC Typen NRF24L01 + PA + LNA modul (8 pin) nRF24L01 + SI24R1 receiver modul (8 pin) nRF24L01B (10 pin) nRF24L01 - Arduino Nano-Verdrahtung nRF24L01 + Adaptermodul YL-105 nRF24L01 szoftver nRF24L01 Testprogram nRF24L01 Send nRF24L01 Receive nRF24L01 Das Kommunikationsmodul, das häufig als KY-067 bezeichnet wird, basiert auf dem IC nRF24L01 von Nordic Semiconductor. Es lauft mit ULP-IC (Ultra Low Power), 2 Mbit/s und 2,4 GHz ISM-Band (ohne Lizenz). Allgemeine Merkmale der nRF24L01-Module Technische Merkmale: GFSK Kodierung Auto-Bestätigungsfunktion Adresse und CRC Berechnung (Anwendung) Datenrate von 1 oder 2 Mbit/s ("on air") SPI Geschwindigkeit: 0..10 Mbps Verbesserter ShockBurst ™ -Hardwareprotokollbeschleuniger, der die Hochgeschwindigkeitsschnittstelle SPI für den Anwendungscontroller unterstützt 125 auswählbare HF-Kanäle (2400,2525 MHz ISM, 1 MHz pro Kanal) Jedes Modul kann mit 6 anderen gleichzeitig kommunizieren Anwendung von Frequenzsprüngen 5V Signaleingänge Stromversorgung: 1,9 bis 3,6 V Der Zugriff auf die Module erfolgt von Arduino aus über SPI Kommunikation. Pinbelegung der Module NrAbk.FunktionBeschreibungArduino Uno Pin 1GndGroundGrundGND 2VccPowerStromversorgung : 3.3V (!!)Mit Adaptermodul 5V Ohne Adapter 3.3V 3CEChip EnableAktivieren die SPI-KommunikationD7 4CSNShip Select NotDer Eingang muss auf HI eingestellt sein, sonst wird es die SPI-Kommunikation deaktiviertD8 5SCKSerial ClockDie für den SPI erforderliche TaktsignalD13 6MOSIMaster Out Slave InPIN zum Empfangen von DatenD11 7MISOMaster In Slave OutPIN zum Senden zu DatenD12 8IRQInterrupt(optional) Interrupt Pin, "LO" aktivkeine Notwendigkeit, verdrahtet zu werden Verschiedene NRF24 IC Typen Modul Id Modul (oben) Modul (unten) Modul ICBemerkung 0830AE- 1405FJ- 1242AF- 1408AF- 1322DQ- 1331AF- NRF24L01 + PA + LNA modul (8 pin) Zusätzlich zum IC-Integrationspanel enthält das Modul auch einen Leistungsverstärker (LNA) und eine Antenne (PA). Kann also relativ über größere Entfernungen angewendet werden. Bei einer Datenrate von 250 Kb kann die Übertragungsentfernung bis zu 1100 Meter betragen Bei einer Datenübertragungsrate von 1 MB kann die Übertragungsentfernung bis zu 750 Meter betragen nRF24L01 + SI24R1 receiver modul (8 pin) Dieses Modul integriert sich auch die Antenne auf der Leiterplatte, die zum einen Seite günstiger aber Reichweite kleiner ist - 100..250 m - als die externen Antennenmodule (siehe oben). Glücklicherweise beide haben die gleiche Fußlayout. Standardmäßig gibt der SI24R1 ungefähr 2 ~ 3dBm Ausgangsleistung aus. Durch Setzen des niedrigsten Bitwerts von Register 0x06 (RF_SETUP) auf 1 kann dieser Wert auf 7 dBm erhöht werden. nRF24L01B (10 pin) Die Modulverkabelung unterscheidet sich von den anderen. Es hat 10 Pins anstelle von 8, 2 gnd und 2 Vcc anstelle von jeweils einem. Herkömmliche Adaptermodule sind dafür nicht nutzbar! nRF24L01 - Arduino Nano-Verdrahtung Arduino Uno/Nano - nRF24L01 3,3V - Vcc GND - GND D13 - SCK D12 - MISO D11 - MOSI D10 - CSN D9 - CE nRF24L01 + Adaptermodul YL-105 en: Socket Adapter Module Board For 8 Pin NRF24L01+ Wireless Transceiver Dieses Schnittstellenmodul löst das 3,3lV / 5 V-Schnittstellenproblem, indem es sowohl Strom- als auch Signalpegel bei 5 V bereitstellt. Es erledigt die 3.3V-Wandlung "inside". Darüber hinaus wird das Netzteil (5 V) separat eingeführt, was möglicherweise zu Problemen mit der Batterie des Moduls führt, die in bestimmten Betriebsarten nicht ausreichend Strom versorgt werden. Das Modul konvertiert die Signale mit einem AMS1117-3.3 IC. nRF24L01 szoftver https://github.com/nRF24/RF24 nRF24L01 Testprogram Ich habe den Originalcode mit 2 LEDs ergänzt. Diese zeigen an, wann das Modul sendet oder empfängt. Die LEDs müssen mit einem 100-Ohm-Widerstand an Pin 9 und das Ende an GND angeschlossen werden. nRF24L01 Send /* * Arduino Wireless Communication Tutorial * Example 1 - Transmitter Code * * by Dejan Nedelkovski, www.HowToMechatronics.com * * Library: TMRh20/RF24, https://github.com/tmrh20/RF24/ */ #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> RF24 radio(7, 8); // CE, CSN const byte address[6] = "00001"; void setup() { pinMode(9, OUTPUT); radio.begin(); radio.openWritingPipe(address); radio.setPALevel(RF24_PA_MIN); radio.stopListening(); } void loop() { digitalWrite(9, HIGH); const char text[] = "Hello World"; radio.write(&text, sizeof(text)); delay(20); digitalWrite(9, LOW); delay(1000); } nRF24L01 Receive /* * Arduino Wireless Communication Tutorial * Example 1 - Receiver Code * * by Dejan Nedelkovski, www.HowToMechatronics.com * * Library: TMRh20/RF24, https://github.com/tmrh20/RF24/ */ #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> RF24 radio(7, 8); // CE, CSN const byte address[6] = "00001"; void setup() { Serial.begin(9600); pinMode(9, OUTPUT); radio.begin(); radio.openReadingPipe(0, address); radio.setPALevel(RF24_PA_MIN); radio.startListening(); } void loop() { digitalWrite(9, LOW); if (radio.available()) { char text[32] = ""; radio.read(&text, sizeof(text)); Serial.println(text); digitalWrite(9, HIGH); delay(20); } }