arduino nano+nRF24L2401实现无线控制

arduino nano+nRF24L2401实现无线控制

本文将利用2套arduino nano+nRF24L2401,实现对LED灯无线控制。
代码如下:
接收端程序代码:

/*********************************************
Arduino anon --- nRF24L01

3.3V --- VCC:模块供电引脚

GND --- GND:模块接地引脚

7 号引脚 --- CSN:接收端选择引脚

8 号引脚 --- CE:发射/接受状态选择引脚

11号引脚 --- MOSI :控制端输出,接收端输入引脚

13号引脚 --- SCK:时钟信号

12号引脚 --- MISO:控制端输入,接收端输出引脚

*IRQ引脚在本例中不需要接
*******************************************/
#include 
#include  
#include 
#include 
#define LedPin 4 //LED灯
RF24 radio(7,10);  //ce,csn
int buttonState = 0; //定义一个整型变量,用来存放按键的数值
const byte address[6] = "00001"; //设置通讯地址

void setup(void){

Serial.begin(9600);
 pinMode(LedPin, OUTPUT);//设置7号引脚为输出引脚
 digitalWrite(LedPin,LOW);
 radio.begin();//启动nrf24模组
 radio.openReadingPipe(0,address); //设定通道地址
 radio.setPALevel(RF24_PA_MIN); //设定广播功率 
 radio.startListening(); //开始监听无线广播
 }

void loop()
{
   delay(1000);
  if(radio.available()){
   delay(2200); //读取存储区数据必须加延时2s以上否则读出乱码或读不到
    char text[32]="";
    radio.read(&text, sizeof(text));
   // Serial.println(text);
   radio.read(&buttonState,sizeof(buttonState));
   }
   //当有数据可用时,将读取它,将其保存到buttonState中
   if (buttonState == HIGH){
   digitalWrite(LedPin,HIGH);
    delay(100);
    Serial.println(buttonState);
    delay(500);
       }
       else{
        digitalWrite(LedPin,LOW);
           delay(100); 
       }
   }

发射端程序代码:

#include 
#include  
#include 
/*********************************************
Arduino anon--- nRF24L01

3.3V --- VCC:模块供电引脚

GND --- GND:模块接地引脚

7 号引脚 --- CSN:接收端选择引脚

8 号引脚 --- CE:发射/接受状态选择引脚

11号引脚 --- MOSI :控制端输出,接收端输入引脚

13号引脚 --- SCK:时钟信号

12号引脚 --- MISO:控制端输入,接收端输出引脚

*IRQ引脚在本例中不需要接
*******************************************/

#define buttonPin 7 //发射器引脚-按钮
RF24 radio(9,10);  //ce,csn
int buttonState = 0; //定义一个整型变量,用来存放按键的数值
const byte address[6] = "00001"; //设置通讯地址

void setup(void){
Serial.begin(9600);
 pinMode(buttonPin, INPUT);//设置7号引脚为输入引脚
 radio.begin();//启动nrf24模组
 radio.openWritingPipe(address); //设定通道地址
 radio.setPALevel(RF24_PA_MIN); //设定广播功率 
 radio.stopListening(); //停止监听,设定成发射模式
 
}

void loop()
{
  delay(1000);
buttonState = digitalRead(buttonPin); //读取7号引脚的状态
delay(1000);
radio.write(&buttonState, sizeof(buttonState)); //使用该函数将数据发送出去
delay(1000);
 Serial.println(digitalRead(buttonPin));

  
}

你可能感兴趣的:(arduino,nRF24L01)