شرح بسيط استخدام الاتصالات اللاسلكية (ان ار اف 24) مع الاردوينو

by samiobi in Circuits > Arduino

448 Views, 1 Favorites, 0 Comments

شرح بسيط استخدام الاتصالات اللاسلكية (ان ار اف 24) مع الاردوينو

بسهولة شرح الاتصالات اللاسلكية بواسطة الاردوينو و الNRF24L01

هذا الشرح المفصل يقدم معلومات كاملة عن كيفية الاتصال بين نظامي اردوينو باستخدام الوصلات اللاسلكية من النوع (ان ار اف 24) ولهذه الوصلة الكثير من الاستخدامات العملية في مجال الطائرات بدون طيار والعربات الالية وغيرها من المتحكمات. 


Supplies

  • الاردوينو اونو
  • الاردوينو نانو
  • مقاومة 10 كيلو و 1 كيلو اوم
  • ضواء ال اي دي
  • NRF24L01 PA

معلومات عامة عن NRF24

هذه المعلومات العامة عن وصلة الاتصالات اللاسلكية

•وصلة اتصالات لاسلكية

•يعمل على تردد 2.4 ميجا هرتز

•المسافة 1000 متر

•القدرة على ارسال على 5 قنوات

•يعمل على بروتوكول SPI

•اقصى سرعة 2 ميجا بت في الثانة (2Mbps)

•يوجد نوعان nRF24L01 , nRF24L01 LAN


الدائرة الكهربائية

الوصلات.png
الاردوينو اونو.png
الاردوينو نانو.png

طريقة العمل

الية العمل.png

تتكون التجربة من دائرتين الدائرة الأولى تتكون من نظام الاردوينو اونو و مفتاح و ضواء بالإضافة الى وصلة الاتصالات اللاسلكية اما الدائرة الثانية فتتكون من نظام الاردوينو نانو وأيضا بها مفتاح و ضواء، عند الضغط على المفتاح في النظام الأول (الاردوينو اونو) الضواء في النظام الثاني سوف يعمل، حيث تنتقل الإشارة من النظام الأول الى النظام الثاني عبر وصلة الاتصالات اللاسلكية ان ار اف (NRF24L01) ، اما ان العكس صحيح في حال تم الضغط على المفتاح في النظام الثاني سوف يعمل ضواء في النظام الأول. 


البرمجة


الاردوينو اونو

#include <SPI.h>

#include <nRF24L01.h>

#include <RF24.h>

RF24 radio(7, 8); // CE, CSN

const byte addresses[][6] = {"00001", "00002"};

boolean buttonState = 0;

boolean buttonOne = 0;


void setup() {

 pinMode(3, OUTPUT);

 pinMode(4, INPUT);

  

 radio.begin();

 radio.openWritingPipe(addresses[1]); // 00002

 radio.openReadingPipe(1, addresses[0]); // 00001

 radio.setPALevel(RF24_PA_MIN);

}


void loop() {

 delay(5);

  radio.stopListening();

  buttonOne = digitalRead(4);

  radio.write(&buttonOne, sizeof(buttonOne));


 delay(5);

 radio.startListening();

 while (!radio.available());

 radio.read(&buttonState, sizeof(buttonState));

 if (buttonState == HIGH) {

  digitalWrite(3, HIGH);

 }

 else {

  digitalWrite(3, LOW);

 }

}

______________________________________________________________________________________

الاردوينو نانو

#include <SPI.h>

#include <nRF24L01.h>

#include <RF24.h>



RF24 radio(7, 8); // CE, CSN

const byte addresses[][6] = {"00001", "00002"};


boolean buttonState = 0;

boolean buttonOne = 0;


void setup() {

 pinMode(2, INPUT);

 pinMode(3, OUTPUT);

 radio.begin();

 radio.openWritingPipe(addresses[0]); // 00001

 radio.openReadingPipe(1, addresses[1]); // 00002

 radio.setPALevel(RF24_PA_MIN);

}


void loop() {

 delay(5);

 radio.startListening();

 if ( radio.available()) {

  while (radio.available()) {

  radio.read(&buttonOne, sizeof(buttonOne));

  if (buttonOne == HIGH) {

  digitalWrite(3, HIGH);

 }

 else {

  digitalWrite(3, LOW);

 }

  }

  delay(5);

  radio.stopListening();

  buttonState = digitalRead(2);

  radio.write(&buttonState, sizeof(buttonState));

 }

}

النتيجة

test one.png
test two.png

في الختام تم تحميل البرنامجين وعمل التجربة بنجاح كما هو موضح في الصورة، أتمنى لكم التوفيق والنجاح