سلام اقا میثم من کد کمی تغیرش دادم تو این حالت نرم افزار خطا نمیده میشه لطف کنین ببینین این کد برا برنامه که من میخاستم کار میکنه
#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() {
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 poyload[2];
//دریافت اطلاعات و ذخیره در آرایه
radio.read(poyload, sizeof(poyload));
}
}
ویرایش توسط farzintey : 01-13-2017 در ساعت 11:40 PM
verify فقط کامپایل میکنه ...
ار ه یکی هست ...
حتما هین کتابخانه که فرستادم نصب کن ... برای این دستور که من نوشتم
ممنونم اقا میثم اره همون کتابخانه که تو صفحه اول هستش نصبش کردم واقعا خیلی ممنون خیلی زحمتون دادم من دارم قطعات تهیه کنم ایشالا که راش میندازم اگه مشکلی بود بهتون زحمتشو میدم واقعا ممنون از زحمات شما
کسی نیست به داد ما برسه
با سلام ایا کد بالا برای فرستنده و گیرنده معادون قرمز بارگذاری کنیم صحیح هست؟
با سلام ایا این کد در مد فرستنده و گیرنده اپلود کنم کار میکنه؟
#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); // ارسال به ماژول مادون قرمز
}
}
اگه منظورتون از تغییر کانال ، تغییر فرکانس هست که ممکن نیست، چون این ماژول با کانال ثابت ۷۶ که توی کتابخونه لحاظ شده کار میکنه. ضمنا اگه قابل تغییر هم میبود همزمان نمی توانستید از فرکانسهای مختلف استفاده کنید. گرچه شما میتونید از هر ۶ pipe این ماژول استفاده کنید تا به ۶ ماژول دیگه متصل بشین ولی اگه دیتایی همزمان ارسال بشه از دست میره. فرستنده و گیرنده های به اصطلاح چند کانال هم توانایی اتصال همزمان به چند فرکانس مختلف را ندارند. در واقع شما با تخصیص هر آدرس یک شناسه به دیتای ارسالیتون دادین که اگه با شناسه ذکر شده در رسیور همخوانی نداشته باشه با وجود دریافت اطلاعات توسط رسیور، ترتیب اثر بهشون داده نمیشه. حالا دلیل تعریف چند کانال مختلف که گفتین واضح نیست. به مثالی که قبلا لینکشو گذاشتم توجه کنین.
ویرایش توسط masstor : 10-31-2017 در ساعت 10: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
باقی کد هم در لینک قبلی پیدا میکنید