با سلام ایا این کد در مد فرستنده و گیرنده اپلود کنم کار میکنه؟
#include <nRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>
#include <SPI.h>
#include <SoftwareSerial.h>
SoftwareSerial ir(4, 5); // IR Send & recive
RF24 radio(7, 8); // 7=CE 8=CSN
const byte address[6] = "00001";
int payload[32];
// the setup function runs once when you press reset or power the board
void setup() {
Serial.begin(9600);
ir.begin(9600);
radio.begin();
radio.setRetries(15, 15);
radio.openWritingPipe(address);
}
// the loop function runs over and over again until power down or reset
void loop() {
if (ir.available()) // آماده دریافت از طریق پورت مادون قرمز
{
int data = ir.read(); // خواندن از پورت مادون قرمز
radio.write(data, sizeof(data)); // ارسال به مژول Nrf
}
if (radio.available())
{
int payload[2];
//دریافت اطلاعات و ذخیره در آرایه
radio.read(payload, sizeof(payload));
ir.print((char)payload); // ارسال به ماژول مادون قرمز
}
}
سلام دوستان
یه سوال داشتم
در این ماژول میشه یک گیرنده و 20 فرستنده داشت؟
به طور مثال روی 20 کانال مختلف داده ها ارسال بشن و فقط یک گیرنده اون 20 کانال رو دریافت کنه؟
اگر شدنی هست لطفا با مثال راهنماییم کنید
متشکرم
با سلام
البته، شما میتونین تا تعداد ۲۵۵ به توان ۵ آدرس مختلف در کد فرستنده یا گیرندتون تعریف کنین. ۲۰تا!!!!
لینک های زیر را مطالعه کنین:
http://forum.arduino.cc/index.php?topic=421081
https://forum.arduino.cc/index.php?topic=411686.0
ویرایش توسط masstor : 10-30-2017 در ساعت 11:03 PM
ممنون از پاسختون
در همه مثال*هایی که من دیدم معمولا از یک کانال و چند آدرس استفاده میشد و دستور تغییر کانال در کدها مشخص نبود
من مشکلم این هست که از سه فرستنده با سه کانال مختلف که هر کدوم با 5 آدرس مختلف داده هارو ارسال میکنن (در مجموع 15 داده) داده هارو روی یک گیرنده جمع کنم یابد چجوری عمل کنم؟
منظورم تعریف چند کانال برای فرستنده ها و گیرنده هست
متشکرم
اگه منظورتون از تغییر کانال ، تغییر فرکانس هست که ممکن نیست، چون این ماژول با کانال ثابت ۷۶ که توی کتابخونه لحاظ شده کار میکنه. ضمنا اگه قابل تغییر هم میبود همزمان نمی توانستید از فرکانسهای مختلف استفاده کنید. گرچه شما میتونید از هر ۶ pipe این ماژول استفاده کنید تا به ۶ ماژول دیگه متصل بشین ولی اگه دیتایی همزمان ارسال بشه از دست میره. فرستنده و گیرنده های به اصطلاح چند کانال هم توانایی اتصال همزمان به چند فرکانس مختلف را ندارند. در واقع شما با تخصیص هر آدرس یک شناسه به دیتای ارسالیتون دادین که اگه با شناسه ذکر شده در رسیور همخوانی نداشته باشه با وجود دریافت اطلاعات توسط رسیور، ترتیب اثر بهشون داده نمیشه. حالا دلیل تعریف چند کانال مختلف که گفتین واضح نیست. به مثالی که قبلا لینکشو گذاشتم توجه کنین.
ویرایش توسط masstor : 10-31-2017 در ساعت 11:17 AM
برای مثال در کد فرستنده از این کد استفاده کنید:
و برای هر فرستنده فقط با تغییر b1 به b2 الی... کد را تغییر دهید.کد:unsigned char ADDRESS0[5] = { 0xb1,0x43,0x88,0x99,0x45 }; // Define a static TX address //just change b1 to b2 or b3 to send to other pip on resciever
در قسمت گیرنده هم کد زیر را جهت آدرس دهی پیاده کنید
الی آخرکد:unsigned char ADDRESS2[1]= {0xb2}; unsigned char ADDRESS3[1]= {0xb3}; unsigned char ADDRESS4[1]= {0xb4}; unsigned char ADDRESS5[1]= {0xb5}; unsigned char ADDRESS1[5] = { 0xb1,0x43,0x88,0x99,0x45 }; // Define a static TX address unsigned char ADDRESS0[5] = { 0xb0,0x43,0x88,0x99,0x45 }; // Define a static TX address
باقی کد هم در لینک قبلی پیدا میکنید
سلام دوستان.من این ماژول رو چند وقت پیش از افتاب رایانه گرفتم اما متاسفانه تا الان موفق به راه اندازیش نشدم.با بیشتر برنامه های موجود در اینترنت امتحان کردم اما جواب نگرفتم.با این برنامه هم که توی صفحه اول هست امتحان کردم ولی هیچ چیز توی سریال مانیتور نشون نمیده.پایه A0 و A1 اردیونو فرستنده رو به دو کلید وصل کردم که قاعدتا با فشار دادنشون باید مقدار payload تغییر کنه و چیزی در سریال مانیتور نشون بده اما هیچ چیزی در سریال مانیتور فرستنده نمیبینم.برای فرستنده از uno و برای گیرنده از mega استفاده میکنم.ممنون میشم راهنماییم کنید
ویرایش توسط alireza77computer : 02-05-2018 در ساعت 11:26 AM