نوشته اصلی توسط
engamanc
با سلام
کتابخونه های قبلی NRF که باهاشون کار میکردی چه در مسیر نصب آردوینو چه در پوشه Documents خودت رو پاک کن و کتابخونه ای که من گذاشتم رو به جمع کتابخونه هات اضافه کن و دو برنامه ی زیر رو برای فرستنده و گیرنده که برای دانلود قرار دادم آپلود کن ببین کار میکنن. حین سیم کشی دقت کن پایه های دو تا NRF رو بطور صحیح و طبق کانفیگی که در برنامه صورت گرفته انجام بدی.
دانلود کتابخونه و برنامه های فرستنده و گیرنده
یادت نره بعد تست نتیجه رو اعلام کنی
موفق باشی
با سلام و خسته نباشید...
معذرت میخوام که دیر شد.
من روش شما رو تست کردم. گویا تو گیرنده درسته و تو فرستنده مشکل داره.
printDetails در فرستنده:
کد:
STATUS = 0x00 RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=0 TX_FULL=0
RX_ADDR_P0-1= 0x0000000000 0x0000000000
EN_AA = 0x00
EN_RXADDR = 0x00
CRC Length = Disabled
PA Power = PA_MIN
همه چی صفره
کدهای فرستنده:
کد:
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#include "printf.h"
RF24 radio(9, 10);
const uint64_t address = 0xf0f0;
void setup() {
Serial.begin(9600);
printf_begin();
radio.begin();
radio.setAutoAck(1);
radio.setRetries(15, 15);
radio.openWritingPipe(address);
radio.printDetails();
}
void loop(void) {
int buff[2];
buff[0] = 12;
buff[1] = 34;
radio.write(buff, sizeof(buff));
}
printDetails در گیرنده:
کد:
STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 = 0x7041882046 0x0000000000
RX_ADDR_P2-5= 0xc3 0xc4 0xc5 0xc6
TX_ADDR = 0x7041882046
RX_PW_P0-6= 0x00 0x20 0x00 0x00 0x00 0x00
RF_SETUP= 0x46
CONFIG = 0x0f
DYNPD/FEATURE= 0x00 0x00
Data Rate = 1MBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_HIGH
کد های گیرنده:
کد:
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#include "printf.h"
RF24 radio(9, 10);
const uint64_t address = 0xf0f0;
void setup() {
Serial.begin(9600);
pinMode(2, OUTPUT);
printf_begin();
radio.begin();
radio.setAutoAck(1);
radio.setRetries(15, 15);
radio.openReadingPipe(1, address);
radio.startListening();
radio.setDataRate(RF24_1MBPS);
radio.printDetails ( );
}
void loop(void) {
if (radio.available()) {
int buff[2];
radio.read(buff, sizeof(buff));
digitalWrite(2, HIGH);
delay(200);
digitalWrite(2, LOW);
delay(200);
printf("Got it...");
Serial.print(buff[0]);
Serial.print(" ");
Serial.println(buff[1]);
} else {
digitalWrite(2, HIGH);
}
}