双机无线通信
前言
无线通信对于做各种项目来说都很加分,今天使用这个nrf模块进行无线通信。
我原本是想用两个蓝牙的,但是蓝牙有个缺点,就是传输距离短,这个传输距离可以达到1000米。
一、接线
二、Arduino代码
1.主机
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(9,10);// CE,CSN
const byte address[6] = "00001";//指定一个地址
void setup()
{
Serial.begin(9600);//设置波特率
radio.begin();
radio.openWritingPipe(address);
radio.setPALevel(RF24_PA_MIN);
radio.stopListening();//发送端设置为只发,也可以互传的
}
void loop()
{
const char text1[] = "hello";//发送的内容
radio.write(&text1,sizeof(text1));
}
2.从机
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(9,10);// CE,CSN
const byte address[6] = "00001";//与主机地址一致
void setup()
{
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(0,address);
radio.setPALevel(RF24_PA_MIN);
radio.startListening();//只进行接收
}
void loop()
{
if(radio.available()){
char text[32] = "";
radio.read(&text,sizeof(text));
Serial.println(text);//串口打印接收到的数据
}
}
我是通过主机识别手势,然后发送到从机上,使用的是两个arduino uno 有时候发送不了的原因有很多,比如供电不稳定,国产arduino本身问题,我是换了两个原装的arduino这些问题就全解决了
总结
实现一对一发送就是上面这些步骤,实现双机互传也很简单,后续我用到的时候也会进行更新。