1
电子说
nRF24L01无线电收发器提供了非常有效和廉价的通信方式。
nRF24l01模块实际上是一个无线电收发器模块,它工作在2.4 GHz频率上。该模块具有同时发送和接收数据的功能,可用于各种IOT项目以创建无线连接。通过显示它是一个非常小的模块,但它的功能是惊人的。
这个模块可以用于两个方式沟通的目的,在本教程中我们设置两个Arduino uno之间的单向通信。
开始之前我们有下载一些Arduino库,以便顺利运行程序。您可以在此处下载库文件。
nRF24lL01的引脚图
Reciver Circuit
按照上图,将nRF24L01和伺服电机连接到arduino。
重要提示:输入电压为1.9V~3.6V,不要超过此电压,否则会烧毁模块。
的Arduino ------------- nRF24L01的
Pin 9 ----------- CE
Pin 10 --------- CS(N)
Pin 11 ---------- MOSI
Pin 12 --------- MISO
Pin 13 ---------- SCK
引脚3 -------------伺服信号引脚
3.3v ---------- --- VCC
GND ---------- - GND
现在将下面给出的接收器代码上传到第一个Arduino。
#include
#include
#include
#include // include the Servo library
Servo myServo;
int msg[1];
RF24 radio(9,10);//check your pin number on RF24 github check you have the right
//pin number for the arduino you're using. this pin is diffrent for diffrent arduino models.
const uint64_t pipe = 0xF0F0F0F0D2L;
void setup(void)
{
myServo.attach(3);
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(1, pipe);
radio.startListening();
myServo.write(0); // initial position of servo at angle 0
}
void loop(void)
{
if(radio.available()){
bool done = false;
while (!done) {
done = radio.read(msg, 1);
Serial.println(msg[0]);
if (msg[0] == 212) {
myServo.write(180);
}
else {
myServo.write(0);
}
}
}
}
发送器电路
按照上图,将nRF24L01和伺服电机连接到arduino。
重要提示:输入电压为1.9V~3.6V,不要超过此电压,否则会炸毁模块。
的Arduino ------------- nRF24L01的
Pin 9 ----------- CE
Pin 10 --------- CS(N )
Pin 11 ---------- MOSI
Pin 12 --------- MISO
Pin 13 ---------- SCK
5脚-------------按钮
3.3v ------------- VCC
GND ------------ GND
现在将下面给出的发射机代码上传到第二个Arduino。
现在给Arduino板供电并按下按钮,发现伺服旋转。
#include
#include
#include
int msg[1];
RF24 radio(9,10);//check your pin number on RF24 github check you have the right
//pin for the arduino you're using. this pin number is diffrent for diffrent arduino models.
const uint64_t pipe = 0xF0F0F0F0D2L;
int buttonPin1 = 5;
int buttonState1 = 0;
void setup(void)
{
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(pipe);
pinMode(buttonPin1, INPUT);
}
void loop(void)
{
buttonState1 = digitalRead(buttonPin1);
if (buttonState1 == HIGH)
{
msg[0] = 212;
radio.write(msg, 1);
}
}
谢谢你,希望教程帮助你......
全部0条评论
快来发表一下你的评论吧 !