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

About: Sami is an electronic engineer, and has 20 years of experience in electronic systems, communication and radar system , I have passion to learn and share knowledge, I believe that sharing knowledge will improve…

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


Supplies

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

Step 1: معلومات عامة عن NRF24

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

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

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

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

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

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

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

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


Step 2: الدائرة الكهربائية

Step 3: طريقة العمل

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


Step 4: البرمجة


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

#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));

 }

}

Step 5: النتيجة

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