|
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#define buttonPin 3 //发射器触发数据1引脚-按钮
#define buttonPin2 5 //发射器触发数据2引脚-按钮
int buttonstate = 0;//按键1的初始值
int buttonstate2 = 0;//按键2的初始值
int buttonPushCounter = 0;//按键1的防抖累计初始值。
int buttonPushCounter2 = 0;
int lastButtonState = 0;
int lastButtonState2 = 0;
//create an RF24 object
RF24 radio(7, 8); // CE, CSN
const byte address[6] = "00001";
void setup()
{
pinMode(buttonPin, INPUT);//设置4号引脚为输入引脚
pinMode(buttonPin, LOW);
pinMode(buttonPin2, INPUT);//设置5号引脚为输入引脚
pinMode(buttonPin2, LOW);
Serial.begin(9600);
radio.begin();
//radio.setCRCLength(RF24_CRC_16);//此项接收端不能开启,否则无法接收到数据。
// 设置crc校验长度
// 两种 8位RF24_CRC_8 和 16位RF24_CRC_16
radio.setChannel(114); // 设置信道(0-127),114号通道
//radio.setDataRate(RF24_250KBPS); // 设置传输速率
radio.setPALevel(RF24_PA_HIGH); // 设置功放级别,有四种级别:
// RF24_PA_MIN=-18dBm
// RF24_PA_LOW=-12dBm
// RF24_PA_MED=-6dBM
// RF24_PA_HIGH=0dBm
radio.openWritingPipe(address);
radio.stopListening();
}
void loop()
{
buttonstate = digitalRead(buttonPin);
buttonstate2 = digitalRead(buttonPin2);
//1号
if (buttonstate != lastButtonState)
{
if (buttonstate == HIGH)
{
buttonPushCounter++;//按键检测
if (buttonPushCounter % 2 == 0) //如果循环累计4次都检测按键就为真。
{
const byte text= "123";
radio.write(&text, sizeof(text));
delay(500);
Serial.println(text);
}
}
}
else {
Serial.println("4号引脚未触发");
delay(500);
}
//2号
if (buttonstate2 != lastButtonState2)
{
if (buttonstate2 == HIGH)
{
buttonPushCounter2++;
if (buttonPushCounter2 % 4 == 0)
{
const byte text2= "456";
radio.write(&text2, sizeof(text2));
delay(500);
Serial.println(text2);
}
}
}
else {
Serial.println("5号引脚未触发");
delay(500);
}
while (Serial.read() >= 0) {} //清空串口缓存
}
里面的const byte text=‘’‘’这个语句是什么意思,串口监视的时候分别输出24,和51
|
|