nRF24L01+
發表於 : 2014-07-31 08:19:02
http://lindr.net/OD/od10_103.html
低工作電壓:1.9~3.6V低電壓工作
高速率:2Mbps,由於空中傳輸時間很短,降低無線傳輸中的碰撞現像
多頻點:125 頻點,滿足多點通信和跳頻通信需要
超小型:內置2.4GHz天線,體積小巧,15x29mm(包括天線)
低功耗:當工作在應答模式通信時,快速的空中傳輸及啟動時間,降低電流消耗。
低功耗休眠、小於 1uA
模組腳位定義
腳位編號 接腳定義 Arduino 腳位
1 GND GND
2 VCC +3.3V <<注意: 不是5V>>
3 CE 9
4 CSN 10
5 SCK 13
6 MOSI 11
7 MISO 12
8 IRQ
安裝 nRF24L01 函式庫,請下載 ( RF24.zip ) 壓縮檔之後直接解壓縮在 Arduino 的 libraries 目錄下,然後打開 Arduino IDE,此時就會看到在 File \ Examples \ RF24 下看到範例程式。
https://github.com/maniacbug/RF24
低工作電壓:1.9~3.6V低電壓工作
高速率:2Mbps,由於空中傳輸時間很短,降低無線傳輸中的碰撞現像
多頻點:125 頻點,滿足多點通信和跳頻通信需要
超小型:內置2.4GHz天線,體積小巧,15x29mm(包括天線)
低功耗:當工作在應答模式通信時,快速的空中傳輸及啟動時間,降低電流消耗。
低功耗休眠、小於 1uA
模組腳位定義
腳位編號 接腳定義 Arduino 腳位
1 GND GND
2 VCC +3.3V <<注意: 不是5V>>
3 CE 9
4 CSN 10
5 SCK 13
6 MOSI 11
7 MISO 12
8 IRQ
安裝 nRF24L01 函式庫,請下載 ( RF24.zip ) 壓縮檔之後直接解壓縮在 Arduino 的 libraries 目錄下,然後打開 Arduino IDE,此時就會看到在 File \ Examples \ RF24 下看到範例程式。
https://github.com/maniacbug/RF24
代碼: 選擇全部
/* YourDuinoStarter Example: nRF24L01 Transmit Joystick values
- WHAT IT DOES: Reads Analog values on A0, A1 and transmits
them over a nRF24L01 Radio Link to another transceiver.
- SEE the comments after "//" on each line below
- CONNECTIONS: nRF24L01 Modules See:
http://arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo
1 - GND
2 - VCC 3.3V !!! NOT 5V
3 - CE to Arduino pin 9
4 - CSN to Arduino pin 10
5 - SCK to Arduino pin 13
6 - MOSI to Arduino pin 11
7 - MISO to Arduino pin 12
8 - UNUSED
-
Analog Joystick or two 10K potentiometers:
GND to Arduino GND
VCC to Arduino +5V
X Pot to Arduino A0
Y Pot to Arduino A1
- V1.00 11/26/13
Based on examples at http://www.bajdi.com/
Questions: terry@yourduino.com */
/*-----( Import needed libraries )-----*/
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
/*-----( Declare Constants and Pin Numbers )-----*/
#define CE_PIN 9
#define CSN_PIN 10
#define JOYSTICK_X A0
#define JOYSTICK_Y A1
// NOTE: the "LL" at the end of the constant is "LongLong" type
const uint64_t pipe = 0xE8E8F0F0E1LL; // Define the transmit pipe
/*-----( Declare objects )-----*/
RF24 radio(CE_PIN, CSN_PIN); // Create a Radio
/*-----( Declare Variables )-----*/
int joystick[2]; // 2 element array holding Joystick readings
void setup() /****** SETUP: RUNS ONCE ******/
{
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(pipe);
}//--(end setup )---
void loop() /****** LOOP: RUNS CONSTANTLY ******/
{
joystick[0] = analogRead(JOYSTICK_X);
joystick[1] = analogRead(JOYSTICK_Y);
radio.write( joystick, sizeof(joystick) );
}//--(end main loop )---
代碼: 選擇全部
/* YourDuinoStarter Example: nRF24L01 Receive Joystick values
- WHAT IT DOES: Receives data from another transceiver with
2 Analog values from a Joystick or 2 Potentiometers
Displays received values on Serial Monitor
- SEE the comments after "//" on each line below
- CONNECTIONS: nRF24L01 Modules See:
http://arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo
1 - GND
2 - VCC 3.3V !!! NOT 5V
3 - CE to Arduino pin 9
4 - CSN to Arduino pin 10
5 - SCK to Arduino pin 13
6 - MOSI to Arduino pin 11
7 - MISO to Arduino pin 12
8 - UNUSED
- V1.00 11/26/13
Based on examples at http://www.bajdi.com/
Questions: terry@yourduino.com */
/*-----( Import needed libraries )-----*/
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
/*-----( Declare Constants and Pin Numbers )-----*/
#define CE_PIN 9
#define CSN_PIN 10
// NOTE: the "LL" at the end of the constant is "LongLong" type
const uint64_t pipe = 0xE8E8F0F0E1LL; // Define the transmit pipe
/*-----( Declare objects )-----*/
RF24 radio(CE_PIN, CSN_PIN); // Create a Radio
/*-----( Declare Variables )-----*/
int joystick[2]; // 2 element array holding Joystick readings
void setup() /****** SETUP: RUNS ONCE ******/
{
Serial.begin(9600);
delay(1000);
Serial.println("Nrf24L01 Receiver Starting");
radio.begin();
radio.openReadingPipe(1,pipe);
radio.startListening();;
}//--(end setup )---
void loop() /****** LOOP: RUNS CONSTANTLY ******/
{
if ( radio.available() )
{
// Read the data payload until we've received everything
bool done = false;
while (!done)
{
// Fetch the data payload
done = radio.read( joystick, sizeof(joystick) );
Serial.print("X = ");
Serial.print(joystick[0]);
Serial.print(" Y = ");
Serial.println(joystick[1]);
}
}
else
{
Serial.println("No radio available");
}
}//--(end main loop )---