مقدمه
امروزه برقراری ارتباط بیسیم و ساخت یک شبکه بیسیم برای تبادل اطلاعات و نیز پروژه های IOT اهمیت بسیار بالایی دارد. در این آموزش نحوه برقراری یک ارتباط بیسیم بین دو بورد آردوینو و ساخت یک شبکه با استفاده از ماژول NRF24L01 را خواهید آموخت.
دقت داشته باشید برای برقراری ارتباط به دو برنامه مجزا برای مستر و اسلیو نیاز خواهید داشت.
آنچه در این آموزش یاد می گیرید
- ماژول NRF24l01 چیست و چگونه کار می کند؟
- اتصال دو بورد آردوینو به یکدیگر و ایجاد یک ارتباط بیسیم
- ایجاد شبکه ای از ماژول های NRF
ماژول NRF24L01 چیست و چگونه کار می کند؟
parameter | ResponseTypical value |
---|---|
Working voltage | 3.3 v |
Current usage in send mode | 11.3 mA |
Current usage in receive mode | 12.3 mA |
Current usage in sleep mode | 900 nA |
Temareture range | -40 to +85 C |
price | 2.5 $ |
Pin | Operation |
---|---|
GND | Circuit ground |
Vcc | Circuit supply voltage(3.3V) |
CE | Chip Enable |
CSN | SPI Chip Select |
SCK | Connection CLK |
MOSI | Receiving data from Master |
MISO | Sending data to Master |
IRQ | Intrupt pin |
لوازمی که به آن احتیاج دارید
قطعات مورد نیاز
نرم افزار های مورد نیاز
اتصال دو بورد آردوینو به یک دیگر و ایجاد ارتباط بیسیم
سیم بندی
توجه
پایه های CSN و CE می توانند به هر پایه دیجیتالی متصل شوند.
توجه
پایه های SPI ماژول باید به پایه های SPI بورد متصل گردند.
کد
برای استفاده از ماژول NRF24L01 با آردوینو از کتابخانه RF24 استفاده می کنیم، می توانید این کتابخانه را از لینک زیر دانلود کنید.
توجه
دقت داشته باشید برای برقراری ارتباط به دو برنامه مجزا برای مستر و اسلیو نیاز خواهید داشت.
مستر
کد زیر را بر روی یکی از دو بورد آردوینوی خود آپلود کنید.
/*
NRF24L01 - Controle a servo motor wirelessly
Master
modified on 8 Apr 2019
by Saeed Hosseini @ Electropeak
Home
*/
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(7, 8); // CE, CSN
const byte address[][6] = {"Node1"};
const int potpin = A0;
int val = 0;
void setup() {
radio.begin();
radio.openWritingPipe(address);
radio.setPALevel(RF24_PA_MIN);
radio.stopListening();
}
void loop() {
val = analogRead(potpin);
val = map(val, 0, 1023, 0, 179);
radio.write(&val, sizeof(val));
delay(5);
اسلیو
کد زیر را برروی آردوینو دیگر خود آپلود کنید.
/*
NRF24L01 - Controle a servo motor wirelessly
Master
modified on 8 Apr 2019
by Saeed Hosseini @ Electropeak
Home
*/
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Servo.h>
Servo myservo;
RF24 radio(7, 8); // CE, CSN
const byte address[][6] = {"Node1"};
const int servo = 9;
int val = 0;
void setup() {
Serial.begin(9600);
myservo.attach(servo);
radio.begin();
radio.openReadingPipe(0, address);
radio.setPALevel(RF24_PA_MIN);
radio.startListening();
}
void loop() {
delay(5);
radio.startListening();
if ( radio.available()) {
while (radio.available()) {
radio.read(&val, sizeof(val));
myservo.write(val);
Serial.print("Servo position = ");
Serial.println(val);
}
}
}
بگذارید نگاهی جزئی تر به کد استفاده شده در این مثال بیاندازیم:
RF24 radio(CS, CSN);
شی(Object) لازم برای ماژول را با مشخص کردن پایه های CS و CSN می سازد.
const byte address[][6] = {"addr"};
تعیین آدرس برای نودها، دقت داشته باشید برای برقراری ارتباط، آدرس فرستنده و گیرنده باید یکسان باشد.
radio.openWritingPipe(address);
گیرنده را برای فرستنده تعیین می کند.
radio.openReadingPipe(0, address);
فرستنده را برای گیرنده تعیین می کند.
radio.setPALevel(RF24_PA_MIN);
مقدار توان مصرفی را برای ماژول مشخص می کند، این مقدار باید با توجه به فاصله فرستنده و گیرنده از یکدیگر تعیین گردد.
radio.stopListening();
ماژول را در مد فرستنده قرار می دهد.
radio.startListening();
ماژول را در مد گیرنده قرار می دهد.
radio.write(&data, sizeof(data));
داده را با تعیین کردن اندازه آن، ارسال می کند.
radio.available();
در صورت دریافت داده ای در گیرنده، مقدار 1 را برمی گرداند.
radio.read(&data, sizeof(text));
داده را با تعیین کردن اندازه آن دریافت کرده و در متغیر data ذخیره می کند.
ایجاد شبکه ای از ماژول های NRF
با استفاده از ماژول NRF24L01 می توانید شبکه ای بیسیم درست کرده و اطلاعات را در شبکه خود جا به جا کنید.
در این مثال می خواهیم با ایجاد یک شبکه با سه اسلیو، براساس داده دما، مقدار ولوم و وضعیت کلید که از مستر ارسال می شود، در اسلیوها عملیاتی خاص انجام دهیم.
برای ساخت شبکه دو روش وجود دارد، روش ساده تر این است که مانند مثال قبل عمل کرده و حداکثر 6 آدرس مجزا تعریف کنیم تا اطلاعات را از طریق 6 اسلیو به مستر ارسال کنیم.
در روش دوم، از روش درختی برای شبکه سازی استفاده می شود درنتیجه مستر اصلی تنها با زیر مجموعه خود در ارتباط است و هر زیرمجموعه بصورت درختی گسترش پیدا می کند درنتیجه می توانیم شبکه ای شامل حداکثر 3125 ماژول NRF24L01 بسازیم بنابراین این روش از روش اول موثرتر است.
سیم بندی
کد
برای استفاده از این روش باید از کتابخانه RF24Network استفاده کنید، می توانید این کتابخانه را از لینک زیر دانلود کنید:
دانلود کتابخانه RF24Network
مستر
/*
NRF24L01 - Network
Master
modified on 8 Apr 2019
by Saeed Hosseini @ Electropeak
Home
*/
#include <RF24Network.h>
#include <RF24.h>
#include <SPI.h>
#include "dht.h"
RF24 radio(7, 8); // nRF24L01 (CE,CSN)
RF24Network network(radio);
dht DHT;
const uint16_t this_node = 00;
const uint16_t node01 = 01;
const uint16_t node02 = 02;
const uint16_t node03 = 03;
const int butpin = 3;
const int potpin = A0;
const int dhtpin = 4;
void setup() {
SPI.begin();
radio.begin();
network.begin(90, this_node); //(channel, node address)
radio.setDataRate(RF24_2MBPS);
pinMode(butpin, INPUT);
Serial.begin(9600);
}
void loop() {
// Send to Node 01
int potValue = analogRead(potpin);
int angleValue = map(potValue, 0, 1023, 0, 179);
RF24NetworkHeader header2(node01);
bool ok = network.write(header2, &angleValue, sizeof(angleValue));
// Send to Node 02
int buttonState = digitalRead(butpin);
RF24NetworkHeader header3(node02);
bool ok2 = network.write(header3, &buttonState, sizeof(buttonState));
// LEDs control at Node 022
unsigned long pot2Value = analogRead(A1);
RF24NetworkHeader header4(node03);
DHT.read11(dhtpin);
bool ok3 = network.write(header4, &DHT.temperature, sizeof(DHT.temperature));
}
Node01
/*
NRF24L01 - Network
Node01
modified on 8 Apr 2019
by Saeed Hosseini @ Electropeak
Home
*/
#include <RF24Network.h>
#include <RF24.h>
#include <SPI.h>
#include <Servo.h>
RF24 radio(7, 8); // nRF24L01 (CE,CSN)
Servo myservo;
RF24Network network(radio); // Include the radio in the network
const uint16_t this_node = 01; // Address of our node in Octal format ( 04,031, etc)
const uint16_t master00 = 00; // Address of the other node in Octal format
const int servopin = 9;
void setup() {
SPI.begin();
radio.begin();
network.begin(90, this_node); //(channel, node address)
radio.setDataRate(RF24_2MBPS);
myservo.attach(servopin);
}
void loop() {
network.update();
while ( network.available() ) {
RF24NetworkHeader header;
int data;
network.read(header, &data, sizeof(data)); // Read the incoming data
myservo.write(data);
}
delay(5);
}
Node02
/*
NRF24L01 - Network
Node02
modified on 8 Apr 2019
by Saeed Hosseini @ Electropeak
Home
*/
#include <RF24Network.h>
#include <RF24.h>
#include <SPI.h>
RF24 radio(7, 8); // nRF24L01 (CE,CSN)
RF24Network network(radio); // Include the radio in the network
const uint16_t this_node = 02; // Address of our node in Octal format ( 04,031, etc)
const uint16_t master00 = 00; // Address of the other node in Octal format
const int ledpin = 5;
void setup() {
SPI.begin();
radio.begin();
network.begin(90, this_node); //(channel, node address)
radio.setDataRate(RF24_2MBPS);
pinMode(ledpin,OUTPUT);
}
void loop() {
network.update();
while ( network.available() ) {
RF24NetworkHeader header;
int data;
network.read(header, &data, sizeof(data)); // Read the incoming data
digitalWrite(ledpin, !data);
}
delay(5);
}
Node03
/*
NRF24L01 - Network
Node03
modified on 8 Apr 2019
by Saeed Hosseini @ Electropeak
Home
*/
#include <RF24Network.h>
#include <RF24.h>
#include <SPI.h>
RF24 radio(7, 8); // nRF24L01 (CE,CSN)
RF24Network network(radio); // Include the radio in the network
const uint16_t this_node = 03; // Address of our node in Octal format ( 04,031, etc)
const uint16_t master00 = 00; // Address of the other node in Octal format
const int fan = 5; //Red wire to pin 13,Black wire to pin GND
void setup() {
SPI.begin();
radio.begin();
network.begin(90, this_node); //(channel, node address)
radio.setDataRate(RF24_2MBPS);
pinMode(fan, OUTPUT);
digitalWrite(fan, LOW);
}
void loop() {
network.update();
while ( network.available() ) {
RF24NetworkHeader header;
int data;
network.read(header, &data, sizeof(data)); // Read the incoming data
if (data > 70)
digitalWrite(fan, HIGH);
else
digitalWrite(fan, LOW);
}
delay(5);
}
یک گام جلوتر
- سعی کنید یک ارتباط دوطرفه با دو ماژول NRF24L01 بسازید، به این معنا که هر ماژول هم قابلیت ارسال داشته باشد و هم قابلیت دریافت.
Comments (37)
بسیار عالی
ممنون از سایت خوبتون
متشکریم
من از این روش استفاده کردم و ارتباط دو طرفه ایجاد کردم،اما بعد چند ساعت ارتباط از بین میره و ماژول رو باید ریست کنم تا دوباره با هم ارتباط برقرار کنن،کسی میدونه مشکل چیه؟
با سلام، شاید مدار تغذیتون مشکل داره
سلام وقت بخیر ایا میشه به این طریق ۴ تا استپ موتور رو با گوشی هم زمان فعال کرد که هر استپ موتور ۴ تا متغییر قراره دریافت کنه یعنی هم زمان ۱۶ تا متغییر قراره ارسال بشه .ممنون میشم راهنمایی کنید
باسلام
از این طریق خیر. برای ارتباط به گوشی نیازه از ماژول وای فای یا بلوتوث استفاده کنید
سلام
با این ماژول حداکثر چند موتور رو میتوان کنترل کرد؟
ارتباطات این ماژول از نوع مش می باشد و با توجه به کدتان تعداد بالایی از موتور ها رامی تواند کنترل کنید.
شبکه مش چیست: https://fa.wikipedia.org/wiki/%D8%B4%D8%A8%DA%A9%D9%87_%D8%AA%D9%88%D8%B1%DB%8C
نمونه کد برای مش : https://tmrh20.github.io/RF24Mesh/examples.html
بیشترین استفاده از این ماژول در روبات ها می باشد.
یک نمونه از استفاده به صورت کنترلر
https://www.youtube.com/watch?v=YMF5NXeHOnk
سلام.
خسته نباشید.
من میخواستم این پروژه رو با میکروکنترلر بسازم.
میشه؟
چه تغییراتی لازمه توی کد بدم؟
فقط پایه های spi رو باید درست وصل کنم و ce و csn رو به پورت دیجیتال وصل کنم درسته؟؟
خیلی ممنون میشم راه نمایی کنید…
با تشکر
سلام. خیلی ممنون
با چه میکروکنترلی میخواید پروژه رو انجام بدید؟ با نرمافزار آردوینو توانایی پروگرم کردن انواع میکروکنترلرهارو دارید. در نتیجه همین کد رو با تغییرات کوچک (بر اساس میکروکنترلر مورد استفادتون) میتونید برای پروژه خودتون هم استفاده کنید.
میکرو Atmega8a
باید با Boot Loader میکرو رو پروگرم کنم درسته؟
فقط مشکلم اتصال میکرو به ماژول مبدل یو اس بی به سریال هستش.
چطوری باید وصل بشه؟ کدوم پایه میکرو به کدوم پایه ماژول؟
بله، در واقع Boot Loader یک برنامهست که روی میکرو خام ریخته میشه تا بشه اون رو به کمک مبدل usb to ttl پروگرم کرد.
بعد از اینکه Boot Loader رو روی میکرو ریختید میتونید با مبدل usb to ttl میکرو رو پروگرم کنید. برای این کار پایه TX میکرو به RX مبدل، پایه RX میکرو به TX مبدل و پایه RESET میکرو از طریق یک خازن در حدود 100nF به پایه DTR/RTS مبدل لازمه که وصل بشن. پایههای VCC و GND مبدل رو هم که به عنوان تغذیه باید متصل کنید. برای اطلاعات بیشتر میتونید از لینک زیر هم کمک بگیرید:
“https://www.youtube.com/watch?v=Sww1mek5rHU&t=1583s”
خیلی ممنون از راهنماییتون.
فقط من درست متوجه نشدم.
فایل دارای Boot Loader رو میشه با مبدل یو اس بی به سریال روی میکرو ریخت؟
چون یه جا نوشته بود نمیشه. اول باید با یک آردوینو، Boot Loader رو روی میکرو ریخت بعد میشه با مبدل، میکرو رو پروگرام کرد.
اگر اینطوره میشه بگید آردوینو رو چطوری به میکرو وصل کنم؟
پایه VCC و GND رو باید به تغذیه میکرو وصل کنم دیگه؟
یا تغذیه جدا باید باشه؟
خواهش میکنم.
نه، خود Boot Loader رو نمیتونید با مبدل usb به سریال روی میکرو بریزید. بعد از اینکه Boot Loader روی میکرو ریخته شد اونوقت میتونید با مبدل usb به سریال میکرو رو پروگرم کنید.
حالا برای ریختن خود Boot Loader روی میکرو باید روش دیگهای رو جلو برید که آموزشش در حال نوشتنه. میتونید موقتا از این لینکها کمک بگیرید: “https://www.arduino.cc/en/Tutorial/BuiltInExamples/ArduinoISP” ، “https://www.instructables.com/Turn-Your-Arduino-Into-an-ISP/” همچنین لینک ویدیویی که براتون ارسال کردم خیلی خوب توضیح میده.
تغذیه رو هم میتونید از همون میکرو بگیرید. نیازی نیست جدا باشه.
سلام من میخوام سرعت و جهت دو موتور رو کنترل کنم.
چه تغییراتی لازمه؟
تونستم با یه روشی کد رو روی میکرو ATMEGA8 پروگرم کنم.
برای سخت افزار مدار و سیم بندی مشکلی ندارم. یعنی استفاده از درایور رو بلدم.
مشکل کد نویسیه… با زبان C کار کردم و زبان CPP رو زیاد بلد نیستم.
سلام
لازمه اطلاعات کاملتری از پروژتون داشته باشم تا بشه راهنمایی کامل کرد. برای مثال، چه نوع موتوری رو قصد دارید کنترل کنید؟ موتور دیسی، سروو موتور و یا استپرموتور؟ چه درایوری رو برای درایو کردن موتورتون مد نظر دارید؟ اینها رو لازمه که اول به درستی انتخاب کنید و بعدش میتونید کارهای کدنویسیش رو انجام بدید. همچنین بسته به درایور و موتور مورد استفاده، آموزشهای گوناگونی در سایت موجود هست که میتونید از اون ها هم استفاده کنید. این سه آموزش میتونن خیلی کمککننده باشن:
“https://thecaferobot.com/learn/l293d-control-drive-stepper-servo-dc-motors-by-arduino/”
“https://thecaferobot.com/learn/interfacing-l298n-motor-driver-controller-module-with-arduino/”
“https://thecaferobot.com/learn/interfacing-tb6612fng-dual-motor-driver-module-with-arduino/”
2 عدد موتور گیربکس دی سی
با درایور l298.
کار کردن با درایور رو بلدم قبلا کنترل موتور دی سی با میکرو atmega8 و درایور l293d ساختم…
اگر بشه به زبان c راهنمایی کنید که خیلی بهتره..
خب این آموزش که براتون ارسال کردم به طور کامل چیزایی که نیاز دارید رو در خودش داره:
“http://thecaferobot.com/learn/interfacing-l298n-motor-driver-controller-module-with-arduino/”
زبان برنامهنویسی هم که براش استفاده شده آردوینو هست که یک زبان برنامهنویسی بر پایه Cئه. تو این آموزش نحوه اتصالات یه موتور دیسی به درایور، نحوه نوشتن کد برای حالتهای مختلف جلو رفتن، عقب رفتن و تنظیم سرعت حرکت به طور کامل توضیح داده شده.
خیلی ممنون.
ولی فک کنم اشتباه متوجه شدین!!…
من میخوام رادیوکنترل بسازم. و با اون دوتا موتور دی سی کنترل کنم. تو پیام قبلی گفتم با درایور کار کردم مدار ساختم بلدم.. پس اینو نمیخام!!
اصلا برا همین تو این صفحه پرسیدم.. گفتم چه تغییراتی لازمه…
آها، بله کامل متوجه نشدم…
برای کابردی که میخواید به نظرم کد آموزش زیر خیلی سادهتر باشه:
“https://thecaferobot.com/learn/interfacing-nrf24l01-wireless-2-4-ghz-transceiver-module-with-arduino/”
برای این پروژهای که دارید شما دو عدد nrf و دو عدد میکروکنترلر احتیاج دارید. هر کدوم از nrfهارو به یکی از میکروکنترلرها متصل میکنید، یکی به عنوان فرستنده و دیگری گیرنده. موتورهایی رو هم که میخواید کنترل کنید به میکرویی که به nrf گیرنده متصله وصل کنید. با ترکیب کد آموزشی که تو این کامنت و کامنت قبلی براتون گذاشتم به راحتی میتونید کنترل رو انجام بدید.
سلام من چندتا ماژول nrfددارم یک شکل و سالم . تازه کارم این نقشه و کدهارو دقیق پیاده کردم ولی کار نکرد نمیدونم مشکل از ماژول بیسیم هست یا برنامه . البته من فرستنده رو با ماژول ینو آر۳ استفاده کردم و گیرنده رو با ینو تنها .
پایه ها همش درست زدم برق نول همه درسته ولی کار نمیکنه
سلام من اینو درست کردم ولی کار نکرد نمیدونم چزا ولی همه سیم بندی هارو درست زدم حتی ماژول های nrf رو هم عوض کردم فایده نداشت . فقط البته من یک اردینیو ینو آر۳ داشتم و یک ینو معمولی
سلام.
از کد و سیمبندی آموزش زیر هم استفاده کنید ببینید مشکلتون برطرف میشه.
“https://thecaferobot.com/learn/interfacing-nrf24l01-wireless-2-4-ghz-transceiver-module-with-arduino/”
سلام من با دوتا ماژول nrf و دوتا اردوینو نانو و با کد یه سایت خرجی که فیلمشو دیده بودم فرستنده و گیرنده 6 کاناله درست کردم و عمل هم میکنه ولی ولتاژش بسیار پایین هست یعنی موتور dc معمولی(ارمیچر) رو نمیتونه هرکت بده ولی وقتی با LED امتحان میکنم و وصلش میکنم به بورد گیرنده اولش روشن میشه و با تکون دادن جوی استیک فرستنده به سمت چپ نورش کم میشه و به سمت راست نورش زیاد میشه. میخاستم بدونم باید کجای کد رو اصلاح کنم که توانش زیاد تر بشه؟اصلا ایا میشه بدون درایور موتور dc رو مستقیم به گیرنده وصل کرد؟ ممنون میشم راهنمایی کنین
سلام.
اینکه موتور بچرخه و یا خیر مربوط به میزان جریانی هست که تغذیه اون میتونه بهش بده (در مدار شما برد آردوینو نانو) و ارتباطی به کدی که نوشته شده نداره. برد آردوینو هم اصلا توانایی دادن جریان مناسب به یک موتور DC رو نداره و بدون درایور متصل کردن یک موتور DC به برد آردوینو، به احتمال خیلی بالا باعث آسیب به آردوینو و سوختن اون میشه. در نتیجه، شما بدون درایور نمیتونید موتور DC رو مستقیما به گیرنده متصل کنید و لازمه حتما توسط درایور این کار انجام بشه.
سلام spi چیه و یعنی در حالت عادی انتقال اطلاعات پایه CSNباید ۱ باشه یا ۰ ؟
می خوام پایه های CSNوCEرو به یک پایه از برد آردوینو بزنم می شه یا نه ؟؟
سلام.
SPI یه پروتکل ارتباطی 3 یا 4 سیمه ست که برای انتقال اطلاعات بین ماژولها و میکروکنترلرها استفاده میشه. پایههای اصلی این پروتکل MOSI، MISO، SCKو CS (در SPI چهار سیمه) هست. برای اطلاع کامل در مورد این پروتکل میتونید به لینک ویکیپدیا اون مراجعه کنید.
https://fa.wikipedia.org/wiki/%DA%AF%D8%B0%D8%B1%DA%AF%D8%A7%D9%87_%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7_%D8%AC%D8%A7%D9%86%D8%A8%DB%8C_%D8%B3%D8%B1%DB%8C%D8%A7%D9%84
https://en.wikipedia.org/wiki/Serial_Peripheral_Interface
پایه CSN هم مخفف Chip Select Not هست و در واقع نقش همون پایه CS رو داره که بالاتر بهش اشاره شد. این پایه در حالت عادی انتقال اطلاعات باید 0 باشه. (به علت Not بودن. اگر پایه CS بود، لازم بود در حالت عادی انتقال اطلاعات 1 باشه.)
و اینکه خیر، شما نمیتونید پایه های CSN و CE رو به یک پایه یکسان بزنید. هر کدومشون نیازمند یه پایه جداگونه هستن.
باعرض سلام و درود خدمت شما استادان گرامی
من قصد دارم که از طریق تلفن همراه به هر یک از ماژول های nrf که دارای یک استپر موتور هستن فرمان جدا بدم. ایا چنین چیزی ممکن هست با این ماژول؟
با ماژول وای فای چطور می تونه انجام بشه؟
سلام. وقتتون بخیر.
اینکه به طور مستقیم از گوشی به ماژول nrf دستور بدید امکانپذیر نیست، اما راهحلهای دیگهای وجود داره. برای مثال میتونید از یک ماژول بلوتوث استفاده کنید و اون رو به آردوینوی master متصل کنید. با این کار میتونید دستور رو از گوشی و از طریق بلوتوث به ماژول بلوتوث ارسال کنید و آردوینو با توجه به دستور دریافت شده، به nrf متصل به خودش دستور میده که کدوم یک از ماژول nrf که slave هستن و یک استپر موتور بهشون متصل هست، فعال بشن. راه دیگه که وجود داره هم همون ماژول وای فای هست که فرمودید. البته راه اندازی ماژول وای فای کمی پیچیدگی بیشتری نسبت به ماژول بلوتوث داره اما کلیت کار مشابه همون روندی که برای ماژول بلوتوث توضیح دادم هست.
سلام ممنون
میشه لطف کنید و ی اموزش بزارید
درباره درست کردن یک واکیتاکی 2 (الی بیشتر) کاناله با ماژول nrf و اردینیو
و اینکه میشه وقتی برنامه وارد ایسی اردینیو شد اون رو از بورد اردینیو جدا و مستقیم به برد پروژه وصل کرد
و در اخر ممنون میشم از دوستانی که اگه اموزشی سراغ دارن از اینچیزی که گفتم لینکش رو قرار بدن
واقعا ممنون
سلام
شما میتونید از آموزش لینک زیر استفاده کنید
https://circuitdigest.com/microcontroller-projects/arduino-walkie-talkie-using-nrf24l01
سلام ممنون بابت مطالب خوبتون
من این پروژه و پروژه های رادیو کنترل دیگه ایو که قبلا با اردوینو اونو ران کرده بودمو به راحتی جواب میدادو روی atmega8a ریختم ولی به هیچ وجه ارتباطی بین nrfها برقرار نمیشه
من میکرو را با کریستال 16 مگاهرتز خارجی راه اندازی کردم
میخواستم بدونم atmega8 فرق داره با اردوینو اونو یا نانو در نوشتن کد؟
یا اینکه کار خاص دیگه ای باید انجام بدم؟
ممنون میشم راهنمایی کنید چند روزه درگیرشم
سلام. مثل اینکه این برنامه و ماژول روی برد آردینو WEMOS کار نمیکنه؟؟؟؟
این خط کد چه در فرستنده و چه در گیرنده که کمی با هم متفاوتند به مشکل می خورند
radio.openWritingPipe(address);
با سلام
از طریق آموزش زیر پیش بروید . بر روی ESP8266 و ESP32 کار میکند.
آموزش راه اندازی ماژول فرستنده گیرنده رادیویی NRF24L01 با آردوینو
سلام خسته نباشید امید وارم این پیام من به دست شما برسد
من میخواستم بدونم با همین کار میشه راه ارتباطی بین اردوینو و سیستم رو متصل کرد و با همین روش اردوینو رو کامپایل کرد به صورت بیسیم؟
با سلام
خیر
تنها روشی که برد های آردوینو را می توانید به صورت بیسیم پروگرام کنید از طریق بلوتوث می باشد.
آموزش این مورد نیز به زودی بر روی سایت آپلود می شود.
سلام ممنونم از شما بابت سایت خوبتون این پروژه تون به من کمک کرد ممنون