NRF24L01 2.4Ghz Wireless Module (NRF24L01) [S275]
https://www.youtube.com/watch?v=CVfX8fmW6Bk
GitHub : https://github.com/rdiot/rdiot-s275.git
* Specs
nRF24L01 is a single chip radio transceiver for the world wide 2.4 - 2.5 GHz ISM band.
The transceiver consists of a fully integrated frequency synthesizer, a power amplifier, a crystal oscillator, a demodulator, modulator and Enhanced ShockBurst? protocol engine.
Output power, frequency channels, and protocol setup are easily.
programmable through a SPI interface.
Current consumption is very low, only 9.0mA at an output power of -6dBm and 12.3mA in RX mode.
Built-in Power Down and Standby modes makes power saving easily realizable.
Maximum operating speeds up to 2Mbps, GFSK modulation efficiency, Anti-interference ability, Particularly suitable for industrial control applications.
125 Communications channels, Multi-point communication and frequency hopping to meet the communication needs.
Built-in hardware CRC error detection, Multipoint communication address control.
Low-power 1.9 ~ 3.6V, only 1uA on Power down mode.
Built-in 2.4Ghz antenna.
Available software to set the address, only received local Address when output data(Provide interrupt instruction), can be directly connected to a variety of microcontrollers, Software programming is very convenient.
Support 6 Data channels of data reception.
Standard DIP Pitch Interface for embedded applications.
* Contents
- Connect
VCC - 3.3V
CSN - D8
MOSI - D11
IRQ - NONE
GND - GND
CE - D7
SCK - D13
MISO - D12
- parts
Rotary Encoder Module (KY-040) [S120]
- Library : https://github.com/nRF24/RF24
- Tested Library Download : RF24-master.zip
- Key Code
- RF24_TX : https://github.com/rdiot/rdiot-s275/blob/master/RF24_TX.ino
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x20 for a 16 chars and 2 line display
RF24 radio(7, 8); // SPI Bus CE, CSN
const byte address[6] = "00001"; // RX = TX same address
int pin = A0; // Rotary Encoder Module (KY-040) [S120] : https://rdiot.tistory.com/126 [RDIoT Demo]
void setup() {
pinMode(pin, INPUT);
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(address);
radio.setPALevel(RF24_PA_MIN); // Power Level : accoding to distance : RF24_PA_MIN / RF24_PA_LOW / RF24_PA_HIGH / RF24_PA_MAX
radio.stopListening(); // TX
lcd.init(); // initialize the lcd
lcd.backlight();
lcd.print("start LCD1602");
delay(1000);
lcd.clear();
}
void loop() {
lcd.setCursor(0,0);
lcd.print("S275:RF24L01 TX");
int readVal = analogRead(pin);
readVal = map(readVal, 0, 1023, 0, 179);
Serial.println(readVal);
lcd.setCursor(0, 1);
lcd.print("msg=>" + String(readVal) + " ");
char buf[4];
itoa(readVal, buf, 10);
radio.write(&buf, sizeof(buf)); //send messages to RX
delay(10);
}
- RX24_RX : https://github.com/rdiot/rdiot-s275/blob/master/RF24_RX.ino
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Servo.h>
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x20 for a 16 chars and 2 line display
RF24 radio(7, 8); // SPI Bus CE, CSN
const byte address[6] = "00001"; // TX = RX same address
Servo myservo;
int servoPin = 4;
void setup() {
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(0, address);
radio.setPALevel(RF24_PA_MIN); // Power Level : accoding to distance : RF24_PA_MIN / RF24_PA_LOW / RF24_PA_HIGH / RF24_PA_MAX
radio.startListening(); // RX
myservo.attach(servoPin);
lcd.init(); // initialize the lcd
lcd.backlight();
lcd.print("start LCD1602");
delay(1000);
lcd.clear();
}
void loop() {
lcd.setCursor(0,0);
lcd.print("S275:RF24L01 RX");
lcd.setCursor(0, 1);
if (radio.available()) {
char text[4] = "";
radio.read(&text, sizeof(text));
Serial.println(text);
lcd.print("rcv=>" + String(text) + " ");
int value = atoi(text);
myservo.write(180-value);
}
delay(10);
}
- how to debug radio details
#include <printf.h>
printf_begin();
radio.printDetails();
'2) Sensor > RF' 카테고리의 다른 글
3DR Radio 915Mhz Telemetry Kit [S211] (0) | 2016.09.17 |
---|---|
433Mhz Super-regenerative module (FS1000A,MX-JS-05V) [S081] (0) | 2016.09.17 |
315Mhz 4Channel Remote Control Kit (PT2262/PT2272) [S054] (1) | 2016.09.17 |