شرح بسيط استخدام الاتصالات اللاسلكية (ان ار اف 24) مع الاردوينو
by samiobi in Circuits > Arduino
448 Views, 1 Favorites, 0 Comments
شرح بسيط استخدام الاتصالات اللاسلكية (ان ار اف 24) مع الاردوينو

هذا الشرح المفصل يقدم معلومات كاملة عن كيفية الاتصال بين نظامي اردوينو باستخدام الوصلات اللاسلكية من النوع (ان ار اف 24) ولهذه الوصلة الكثير من الاستخدامات العملية في مجال الطائرات بدون طيار والعربات الالية وغيرها من المتحكمات.
Supplies
- الاردوينو اونو
- الاردوينو نانو
- مقاومة 10 كيلو و 1 كيلو اوم
- ضواء ال اي دي
- NRF24L01 PA
معلومات عامة عن NRF24
هذه المعلومات العامة عن وصلة الاتصالات اللاسلكية
•وصلة اتصالات لاسلكية
•يعمل على تردد 2.4 ميجا هرتز
•المسافة 1000 متر
•القدرة على ارسال على 5 قنوات
•يعمل على بروتوكول SPI
•اقصى سرعة 2 ميجا بت في الثانة (2Mbps)
•يوجد نوعان nRF24L01 , nRF24L01 LAN
الدائرة الكهربائية



طريقة العمل

تتكون التجربة من دائرتين الدائرة الأولى تتكون من نظام الاردوينو اونو و مفتاح و ضواء بالإضافة الى وصلة الاتصالات اللاسلكية اما الدائرة الثانية فتتكون من نظام الاردوينو نانو وأيضا بها مفتاح و ضواء، عند الضغط على المفتاح في النظام الأول (الاردوينو اونو) الضواء في النظام الثاني سوف يعمل، حيث تنتقل الإشارة من النظام الأول الى النظام الثاني عبر وصلة الاتصالات اللاسلكية ان ار اف (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));
}
}
النتيجة


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