NRF24L01 请注意 该板只接受1.6~3.3v供电否则会烧毁芯片

发送端代码通过串口发送数据到 arduino

#include "SPI.h" //24L01库文件
#include "Mirf.h"
#include "nRF24L01.h"
#include "MirfHardwareSpiDriver.h"

char words;

void setup(){
Serial.begin(9600);
Mirf.spi = &MirfHardwareSpi; //加载24L01 SPI
Mirf.init(); //开始
Mirf.setTADDR((byte *)"serv1");//发送到"接收地址"
Mirf.payload = sizeof(char);
Mirf.config();
}
void loop(){

while(Serial.available()>0)
{words=Serial.read();
Mirf.send((byte *)&words);

while(Mirf.isSending())
{ }
}
}

下面的是接收端代码:

#include "SPI.h"                              //24L01库文件
#include "Mirf.h"
#include "nRF24L01.h"
#include "MirfHardwareSpiDriver.h"

char data;
char words';

void setup(){
  Serial.begin(9600);
  Mirf.spi = &MirfHardwareSpi;          //加载24L01  SPI
  Mirf.init();
  Mirf.setRADDR((byte *)"serv1"); //接收地址" "
  Mirf.payload = sizeof(char);            //数据类型(整数)
      Mirf.config();
}

void loop(){

  if(Mirf.dataReady())
  {                          //如果接收到数据则执行
     Mirf.getData((byte *)&data);   //接收数据
    words=data;
      Mirf.rxFifoEmpty();   //清理24L01援存??
      Serial.print(words);  //显示X向 1至1024

}}

 

有关的线路连接

根据库文件的要求   arduino和无线模块的连线需要改动成如下:

arduino 无线传输模块NRF24L01和无线数据传输 443M-爱程序网

GND--------- GND,

VCC--------- 3.3V,

CE---------8

CSN-------7
SCK-------13
MOSI------11
MISO------12
IRQ不需要用到

相关库文件请到最下发下载
相对来说 443M的模块使用简单 价格上其实是没有什么优势的

发射机 :

Vcc >>>>5V
ATAD>>>D12"" .
Gnd >>> Gnd

接收机:

Vcc>>>>5V
Data>>>D12
Gnd>>>Gnd

 

相关库文件 VirtualWire_Library

百度盘下载地址 http://pan.baidu.com/s/1i39i33J

发射

#include <VirtualWire.h>

//Grove - 315(433) RF link kit Demo v1.0
//by :http://www.seeedstudio.com/
//connect the sent module to D2 to use
#include <VirtualWire.h>

int RF_TX_PIN = 2;

void setup()
{
  vw_set_tx_pin(RF_TX_PIN); // Setup transmit pin
  vw_setup(2000); // Transmission speed in bits per second.
}

void loop()
{
  const char *msg = "hello";
  vw_send((uint8_t *)msg, strlen(msg));  // 循环发射hello信息 400ms.
  delay(400);

}

接收

//Grove - 315(433) RF link kit Demo v1.0
//by :http://www.seeedstudio.com/
//connect the receive module to D2 to use ..
#include <VirtualWire.h>

int RF_RX_PIN = 2;

void setup()
{
  Serial.begin(9600);
  Serial.println("setup");
  vw_set_rx_pin(RF_RX_PIN);  // Setup receive pin.
  vw_setup(2000); // Transmission speed in bits per second.
  vw_rx_start(); // Start the PLL receiver.
}

void loop()
{
  uint8_t buf[VW_MAX_MESSAGE_LEN];
  uint8_t buflen = VW_MAX_MESSAGE_LEN;
  if(vw_get_message(buf, &buflen)) // non-blocking I/O
  {
    int i;
    // Message with a good checksum received, dump HEX
    Serial.print("Got: ");
    for(i = 0; i < buflen; ++i)
    {
      Serial.print(buf[i], HEX);
      Serial.print(" ");
	  //Serial.print(buf[i]);
    }
    Serial.println("");
  }
}