PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : راه اندازی ماژول nrf24l01



hassan shojai
10-11-2012, 18:07
سلام من ماژول nrf24l01 رو خریدم و میخام با pic16f877 راه اندازیش کنم زبان برنامه نویسی من بیسیک هست .کسی میتونه کمک کنه .
ممنمون میشم.

hassan shojai
15-11-2012, 02:32
بابا کسی نیست که با این ماژول کار کرده باشه

zakariya moradi
15-11-2012, 13:13
سلام
هستند دوستانی که با این ماژول کار کرده باشند از جمله خودم .
اما شما خودت یه حرکت هایی بکنید ما هم همراهی می کنیم .
سر زدن به سایت فقط برای انجام پروژه شخصی زیاد کاره جالبی نیست و هدف آموزش همگانی .
قدم اول مطالعه دیتا شیته .بخونید هر چیزی که گنگ بود مطرح کنید .
این هم نمونه پروژه ای که انجام دادم :

You can see links before reply
***************************
You can see links before reply
******************************
این هم مشخصات ماژول :



Ultra low power consumption


900nA deep sleep mode
11.3mA Radio TX at 0dBm
12.3mA Radio RX at 2Mbps on-air data-rate
2.4GHz Radio
2.4GHz ISM band operation
GFSK modulation, 1 or 2MHz bandwidth
0, -6, -12, and -18dBm programmable TX output power
Configurable on-air data rate of 1Mbps or 2Mbps
-82dBm RX sensitivity at 2Mbps
-85dBm RX sensitivity at 1Mbps
Compatible with a 16MHz ±۶۰ppm crystal
Enhanced ShockBurst™ hardware protocol accelerator
Automatic packet assembly
(Preamble, Address, CRC)
Automatic packed detection and validation
Dynamic payload length, 1 to 32Bytes
Auto retransmit
Auto Acknowledgment with optional payload
6 data pipe MultiCeiver™
۳ separate 32Byte TX and RX FIFOs
MCU Interface
SPI, up to 10Mbps
Power supply
Internal linear voltage regulator
1.9 to 3.6V supply range
Temperature range of -40 to +80 ºC
Package options
20-pin 4 x 4mm QFN

hassan shojai
18-11-2012, 05:34
ممنون از راهنماییتون .در حال حاضر در حال مطالعه دیتاشیت هستم
چشم من هر کاری از دستم بر بیاد دریق نمیکنم دوست عزیز

zakariya moradi
23-11-2012, 06:02
ممنون از راهنماییتون .در حال حاضر در حال مطالعه دیتاشیت هستم
چشم من هر کاری از دستم بر بیاد دریق نمیکنم دوست عزیز
سلام
دیتاشیت انقدرا هم طولانی نیستا ! کجا رفتی مهندس ؟:0013:

kavir
23-11-2012, 13:07
حالا که بحث شد دوستانی که ار کردن بین nRF24l01,cc2500,Si41 کدوم رو ترجیح میدین ؟

hassan shojai
10-12-2012, 03:00
سلام خسته نباشید .من هنوز نتونستم راهاندازیش کنم .متاسفانه تو قسمت ارسال دیتاش مشکل دارم یعنی نمیتونم پینگش کنم نمیدونم باید چی براش بفرستم من 2 تا از این برد دام که میخام 1 کی فرستنده باشه و دیگری گیرنده

zakariya moradi
10-12-2012, 21:58
حالا که بحث شد دوستانی که ار کردن بین nrf24l01,cc2500,si41 کدوم رو ترجیح میدین ؟
سلام
من nrf24 رو توی پروژه های نظامی و صنعتی استفاده کردم و در تمامی شرایط عالی جواب داده .
تجربه شخصی من : Nrf

lpln852
28-01-2013, 11:14
نمونه کد رو نمیزارید

yusef110
30-01-2013, 02:29
سلام برید به ادرس زیر هم مثال داره هم یه کتاخونه براش گذاشته .
CCS :: View topic - nRF24L01+ full driver by Eduardo Guilherme Brandt (You can see links before reply)

lpln852
30-01-2013, 12:34
سلام برید به ادرس زیر هم مثال داره هم یه کتاخونه براش گذاشته .
ccs :: View topic - nrf24l01+ full driver by eduardo guilherme brandt (You can see links before reply)

جایی برای دانلود نداره

شما خودت جواب گرفتی ازش ؟؟

yusef110
30-01-2013, 19:22
پست هاشو رو بخون nrf24l01.h توی اون نوشته های سبز رنگ کتابخونه شه پایینش هم مثال زده. خودم هم دارم روش کار میکنم . پایه های این ماژوله هم این طوریه :
CE : فعال ساز tx & rx
CSN : انتخاب spi (برا شبکه کردن )
SCK : کلاک SPI
MOSI : ورودی دیتا
MISO : خروجی دیتا
IRQ : وقفه
دوتای دیگه هم تغذیه شه . فقط یه چیز دیگه که هست اسم پایه های spi توی pic این اسم ها فرق میکنه از روی شماتیک زیر میتونی بفهمی .

lpln852
30-01-2013, 20:43
پست هاشو رو بخون nrf24l01.h توی اون نوشته های سبز رنگ کتابخونه شه پایینش هم مثال زده. خودم هم دارم روش کار میکنم . پایه های این ماژوله هم این طوریه :
Ce : فعال ساز tx & rx
csn : انتخاب spi (برا شبکه کردن )
sck : کلاک spi
mosi : ورودی دیتا
miso : خروجی دیتا
irq : وقفه
دوتای دیگه هم تغذیه شه . فقط یه چیز دیگه که هست اسم پایه های spi توی pic این اسم ها فرق میکنه از روی شماتیک زیر میتونی بفهمی .

امکانش هست شما این فایل ها رو اینجا بزارید ؟

yusef110
30-01-2013, 23:50
اینها رو از دیتاشیتش و چیزهایی که خودم ازش فهمیدم . هنوز دارم روش کار میکنم سه چهار روز دیگه نتیجه اش رو بهتون میگم.

lpln852
01-02-2013, 17:05
اینها رو از دیتاشیتش و چیزهایی که خودم ازش فهمیدم . هنوز دارم روش کار میکنم سه چهار روز دیگه نتیجه اش رو بهتون میگم.

ممنون من منتظر میمونم

moshen3357
01-06-2013, 21:13
سلام
من nrf24 رو توی پروژه های نظامی و صنعتی استفاده کردم و در تمامی شرایط عالی جواب داده .
تجربه شخصی من : Nrf

سلام
خسته نباشین
سوالی در زمینه nrf داشتم
من کلی تو اینترنت سرچ کردم ولی مثالی که بشه چیزی ازش فهمید رو برای راه اندازی این ماژول پیدا نکردم
شما گفتین این ماژول رو راه اندازی کردین
اگه ممکنه یه نمونه برنامه یا همچین چیزی بهم بدین که کارم راه بیوفته
من میخوام با میکروی مگا8 راش بندازم(با کدویژن)
البته با بیسکام تونستم ارتباط spi بین دوتا میکرو برقرار کنم
دوتا میکرو گذاشتم و یکی رو مستر اون یکی اسلو کردم و از مستر به اسلو یه پیغام فرستادم که فلان led رو روشن کن
پین های miso , miso , sck و ... رو با سیم بهم وصل کردم و تونستم داده رو بفرستم
ولی وقتی بجای سیم ها از این ماژول استفاده کردم جواب نداد
برنامه نمونه هایی که توی اینترنت هست خیلی پیچوندن و آدم نمیدونه چی به چیه
ولی اون ارتباطی که من تونستم برقرار کنم سر هم 5 خط بیشتر برنامه نشد
ممنون میشم راهنمایم کنین:(

CINAPA
02-06-2013, 02:03
اینها رو از دیتاشیتش و چیزهایی که خودم ازش فهمیدم . هنوز دارم روش کار میکنم سه چهار روز دیگه نتیجه اش رو بهتون میگم.

سلام
من با بیسکام وسی برنامه مینویسم . اگه این ماژول را راه اندازی کردین البته با میکرو های avr لطف کنید ما را هم راهنمایی کنید . ممنون میشم .
من میخوام یه دیتا که مقدار اهم یه پتانسیومتر هست فقط به صورت یک طرفه را ارسال کنم و از طرف دیگه اون دریافت کنم وروی LCD بنویسم . ایا فکر میکنید نرخ بیت ارسال من تو این مورد کم هست یا نه زیاده
چون این طور که من دیتا شیت این ماژول را خوندم اگه نرخ ارسال دیتا کم باشه برد زیادی میتونیم ازش بگیریم

keyvancash
14-06-2013, 01:01
اینها رو از دیتاشیتش و چیزهایی که خودم ازش فهمیدم . هنوز دارم روش کار میکنم سه چهار روز دیگه نتیجه اش رو بهتون میگم.

سلام مهندس
به نتیجه ای رسیدی ؟

kamikazi
14-06-2013, 15:53
سلام دوستان من میخواستم یه برد بزنم که این ماژول هم روی برد باشه میخواستم بدونم نحوه اتصالش به میکرو چطوریه در واقع 3 تا پایه اصلی پروتکل اس پی ای منظورمه این نحوه اتصال درسته؟

sck micro ----- sck module
mosi micro ----- miso module
miso micro ----- mosi module


ممنون میشم دوستان راهنمایی کنن

CINAPA
15-06-2013, 00:06
سلام مهندس
به نتیجه ای رسیدی ؟
خوب منظورشون از سه یا چهار روز فکرکنم 3 الی 4 ماه یا شایدم 3 الی 4 سال بوده !!!!!!!!!!:mrgreen::mrgreen::mrgreen:

yusef110
15-06-2013, 01:47
با این مثال میشه راش انداخت چنتا پروژه رو دستمه که باید کاملش کنم خودم دوست دارم روش کار کنم ولی هی کار پیش میاد :mrgreen:
از روی عکس توی این فایله و دیتاشیت میتونید نقشه nrf رو با هر میکرو pic تغییر بدید. یه هدر آرم توی قسمت lpc گذاشتم که یکی تبدیل کنه یکی دست بهش نزد :unh:

jafareydi
23-06-2013, 10:53
اینم کد برای ATMega16 :


send.c



#include "RF24L01.H"

void main(void)
{
uchar sta;
uchar TX_BUF[32]={'s','u','c','c','e','s','s','f','u','l','!'};
delayms(22);
init_NRF24L01();
while(1)
{
nRF24L01_TxPacket(TX_BUF);
delayms(50);

}
}receive.c


#include"RF24L01.H"
void main()
{
uchar sta,i;
uchar RX_BUF[32];
init_NRF24L01();
LcdIni();

while(1)
{
SetRX_Mode();
if(nRF24L01_RxPacket(RX_BUF))
{
for(i=0;i<11;i++)
{
write_com(0x80+i);
write_data(RX_BUF[i]);
}
}
delayms(50);
}
}


12864.h


#include <iom16v.h>
#include <macros.h>
#define uchar unsigned char
#define uint unsigned int
#define LcdBus PORTC

const uchar rs=3;
const uchar rw=4;
const uchar en=5;
const uchar psb=6;
const uchar rst=7;


/*------------------us delay function-----------------------------*/
void delayus(uint us)
{ uint i;
us=us*5/4;
for(i=0;i<us;i++);
}


/*------------------ms delay function-----------------------------*/
void delayms(uint ms)
{ uint i,j;
for(i=0;i<ms;i++)
for(j=0;j<1141;j++);
}


/*------------------Busy Check--------------------------*/
void ChkBusy(void)
{
DDRC=0X00; //Set as input
PORTC=0X00;
PORTD &=~BIT(rs);
PORTD |=BIT(rw);
PORTD |=BIT(en);
while(PINC & 0X80);
PORTD &=~BIT(en);
DDRC=0XFF; //Set as output
}

/*------------------Clean Screen--------------------------*/
void clrscreen(void)
{
write_com(0x01);
delayms(2);
}


/*------------------Initialization LCD--------------------------*/
void LcdIni(void)
{
DDRC=0XFF;
PORTC=0XFF;
DDRD=0XFF;
PORTD=0XFF;

PORTD &= ~BIT(rst);
NOP();
PORTD |=BIT(rst); //Reset

delayms(5);
write_com(0x30); //Select the basic commands list, select the 8 bits data stream
delayms(5);
write_com(0x01); //Clear screen, and set the address pointer to 00H
delayms(5);
write_com(0x06); //Set moving direction and moving bits of the screen marker when reading and writing
delayms(5);
write_com(0x0c); //Open display (without screen market, no reversed white)


/*------------------Write commands--------------------------*/
void write_com(uchar com)
{
ChkBusy();
PORTD &=~BIT(rs);
PORTD &=~BIT(rw);
PORTD &=~BIT(en);
PORTC =com;
PORTD |=BIT(en);
delayus(10);
PORTD &=~BIT(en);
}


/*------------------write data--------------------------*/
void write_data(uchar dat)
{
ChkBusy();
PORTD |=BIT(rs);
PORTD &=~BIT(rw);
PORTD &=~BIT(en);
PORTC=dat;
PORTD |=BIT(en);
delayus(10);
PORTD &=~BIT(en);
}


RF24L01.txt


#include <iom16v.h>
#include <macros.h>
#include "12864.h"

//------------------------------------------------------------------------------
//spi marker bits
#define DDR_SPI DDRB
#define DD_MOSI 5
#define DD_MISO 6
#define DD_SCK 7
#define DD_SS 4
#define CE PB3
#define IRQ PB2
//--------------------------------NRF24L01 pins definition--------------------------------
//------------------------------------------------------------------------------
//#define NRF24L01_MISO PB6 // input 0
#define Hign_24L01_MISO PORTB|=(1 << PB6)
#define Low_24L01_MISO PORTB &= ~(1 << PB6)
#define Read_24L01_MISO PINB & (1 << PB6)

//#define NRF24L01_MOSI PB5 //output 1
#define Hign_24L01_MOSI PORTB |= (1 << PB5)
#define Low_24L01_MOSI PORTB &= ~(1 << PB5)
#define Read_24L01_MOSI PINB & (1 << PB5)

//#define NRF24L01_SCK PB7 //output 1
#define Hign_24L01_SCK PORTB |= (1 << PB7)
#define Low_24L01_SCK PORTB &= ~(1 << PB7)
#define Read_24L01_SCK PINB & (1 << PB7);

//#define NRF24L01_CSN PB4 //output 1
#define Low_24L01_CSN PORTB &= ~(1 << PB4)
#define Hign_24L01_CSN PORTB |= (1 << PB4)

//#define NRF24L01_CE PB3 //output 1
#define Hign_24L01_CE PORTB |= (1 << PB3)
#define Low_24L01_CE PORTB &= ~(1 << PB3)
#define Read_24L01_CE PINB & (1 << PB3)



//*********************************************NRF24 L01*************************************
#define TX_ADR_WIDTH 5 // send address length, the maxium length is 5 5*8=40 bit
#define RX_ADR_WIDTH 5 // receive date length
#define TX_PLOAD_WIDTH 32 // send bytes length
#define RX_PLOAD_WIDTH 32 // Receive bytes length
uchar TX_ADDRESS[TX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01}; //send address
uchar RX_ADDRESS[RX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01}; //receive address
//***************************************NRF24L01 register commands****************************************** *************
#define READ_REG 0x00 // Read register command
#define WRITE_REG 0x20 // Write register command
#define RD_RX_PLOAD 0x61 // Read receive data command
#define WR_TX_PLOAD 0xA0 // write command that waiting to send
#define FLUSH_TX 0xE1 // Clean send FIFO command
#define FLUSH_RX 0xE2 // Clean receive FIFO command
#define REUSE_TX_PL 0xE3 // Define repeat loading data command
#define NOP 0xFF // Nop
//*************************************SPI(nRF24L01) register address ************************************************** **
#define CONFIG 0x00 // Configure send&receive status, CRC check mode and send&receive status respone mode
#define EN_AA 0x01 // Auto answer function setup
#define EN_RXADDR 0x02 // Available channel setup
#define SETUP_AW 0x03 // Send&receive address width setup
#define SETUP_RETR 0x04 // Auto resend funtion setup
#define RF_CH 0x05 // Working frequency setup
#define RF_SETUP 0x06 // Send data speed, power function setup
#define STATUS 0x07 // status register
#define OBSERVE_TX 0x08 // send monitor function
#define CD 0x09 // address check
#define RX_ADDR_P0 0x0A // channel 0 receive data address
#define RX_ADDR_P1 0x0B // channel 1 receive data address
#define RX_ADDR_P2 0x0C // channel 2 receive data address
#define RX_ADDR_P3 0x0D // channel 3 receive data address
#define RX_ADDR_P4 0x0E // channel 4 receive data address
#define RX_ADDR_P5 0x0F // channel 5 receive data address
#define TX_ADDR 0x10 // Send address register
#define RX_PW_P0 0x11 // receive channel 0 receive data length
#define RX_PW_P1 0x12 // receive channel 1 receive data length
#define RX_PW_P2 0x13 // receive channel 2 receive data length
#define RX_PW_P3 0x14 // receive channel 3 receive data length
#define RX_PW_P4 0x15 // receive channel 4 receive data length
#define RX_PW_P5 0x16 // receive channel 5 receive data length
#define FIFO_STATUS 0x17 // FIFO status register setup
//************************************************** ***********


//*************************************************
//******* void spi_init() initilization SPI
//**************************************************
void spi_init()
{
Hign_24L01_CSN;
DDR_SPI = (1<<DD_MOSI)|(1<<DD_SCK)|(1<<DD_SS)|(1 << CE);//setup MOSI,SCK,SS.CE to OUTPUT,others to INPUT
DDR_SPI&=~((1<<DD_MISO)|(1<<IRQ));
SPCR=(1<<SPE)|(1<<MSTR)|(1<<SPR0);//enable SPI protocol,master mode,MSB low bits on first,mode 0,16 frequency division,SPI clock 1MHZ
SPSR=0;
}


//**************************************************
//******* uchar SPI_RW(uchar date) read write SPI
//**************************************************
uchar SPI_RW(uchar date)
{
SPDR=date;
while(!(SPSR&(1<<SPIF)));
return SPDR;
}

//**************************************************
//*******uchar SPI_Read(uchar reg) read 24L01 register
//**************************************************
uchar SPI_Read(uchar reg)
{
uchar reg_val;

Low_24L01_CSN;
SPI_RW(reg);
reg_val = SPI_RW(0);
Hign_24L01_CSN;

return(reg_val);
}

//**************************************************
//******* uchar SPI_RW_Reg(uchar reg, uchar value)
// write 24L01 register
//**************************************************

uchar SPI_RW_Reg(uchar reg, uchar value)
{
uchar status;

Low_24L01_CSN;
status = SPI_RW(reg);
SPI_RW(value);
Hign_24L01_CSN;

return(status);
}

//**************************************************
//******* uchar SPI_Read_Buf(uchar reg, uchar *pBuf, uchar bites)
// read 24L01 register BUFF
//**************************************************
uchar SPI_Read_Buf(uchar reg, uchar *pBuf, uchar bites)
{
uint status1,uchar_ctr;

Low_24L01_CSN;
status1 = SPI_RW(reg);

for(uchar_ctr=0;uchar_ctr<bites;uchar_ctr++)
pBuf[uchar_ctr] = SPI_RW(0);

Hign_24L01_CSN;

return(status1);
}

//**************************************************
//******* uchar SPI_Write_Buf(uchar reg, uchar *pBuf, uchar bites)
// write 24L01 register BUFF
//**************************************************
uchar SPI_Write_Buf(uchar reg, uchar *pBuf, uchar bites)
{
uchar status1,uchar_ctr;

Low_24L01_CSN; //SPI enable
status1 = SPI_RW(reg);
for(uchar_ctr=0; uchar_ctr<bites; uchar_ctr++) //
SPI_RW(*pBuf++);
Hign_24L01_CSN; //close SPI
return(status1); //
}

//**************************************************
//******* void SetRX_Mode(void)
// receive mode setup
//**************************************************
void SetRX_Mode(void)
{
Low_24L01_CE;


SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); //write receive address
SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); //0 channel answer
SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); //data channel 0
SPI_RW_Reg(WRITE_REG + RF_CH,0); //RF channel
SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH);//write channel 0 receive data length
SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); //0db 1M
SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f); //receive mode
Hign_24L01_CE; //start to receive
delayus(200);//can't be too small
}

//**************************************************
//******* uchar nRF24L01_RxPacket(uchar* rx_buf)
// receive data packet
//**************************************************
uchar nRF24L01_RxPacket(uchar* rx_buf)
{
uchar sta,flag=0;
sta=SPI_Read(STATUS); // read status register to judge data receive status
if(sta&0x40) // judge if recive data RX_DR==1?
{
Low_24L01_CE; // StandBy I mode
SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);// read receive payload from RX_FIFO buffer
flag =1; //read data finish sign
}
SPI_RW_Reg(WRITE_REG+STATUS,sta); //RX_DR,TX_DS,MAX_PT all set to1 after finishing received data£¬clear the interrupt sign by writing 1
return (flag);
}

//**************************************************
//******* void nRF24L01_TxPacket(uchar * tx_buf)
// send data packet
//**************************************************
void nRF24L01_TxPacket( uchar * tx_buf)
{
uchar sta=0;
uchar flag=0;
Low_24L01_CE; //StandBy I mode
SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH);
SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); // load receive address
SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH); // load data
SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); //
SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); //
SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x1f); //500+86us
SPI_RW_Reg(WRITE_REG + RF_CH, 0); //
SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); //
SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e); // IRQ receive finish interrupt, 16 bits CRC, master send
delayms(2);
Hign_24L01_CE; //set to CE£¬activate data to send
delayus(10);
Low_24L01_CE;
}

void init_NRF24L01(void)
{
spi_init();
Low_24L01_CE; // stand by
Hign_24L01_CSN; // SPI close
Low_24L01_SCK; // close clock
}

ajax007
23-06-2013, 11:34
راه اندازی ماژول به زبان بیسیک
You can see links before reply

CINAPA
23-06-2013, 12:15
اینم از طرف من ارسال و دریافت میزان دما با اتمگا 8 وبه زبان بیسکام , و ماژول nrf24l01p
برید حالشو ببرید

jafareydi
06-07-2013, 13:57
You can see links before reply

*
You can see links before reply
*
You can see links before reply
*

علیدلی
16-08-2013, 13:13
سلام
از دوستان کسی هست که این ماژول رو در عمل راه اندازی کرده باشه و جواب گرفته باشه ؟؟ .اخه چند تا سوال در مورد برنامه بالا دارم ؟؟



'=== Sub routines ===
Sub W_register(byval C_bytes As Byte)
Reset Ss
Spiout D_bytes(1) , C_bytes
Set Ss
End Sub


Sub R_register(byval Command As Byte , Byval C_bytes As Byte) As Byte
Reset Ss
Spiout Command , 1
Spiin B_bytes(1) , C_bytes
Set Ss
End Sub



من تا به امروز هنوز از تابع فراخوانی استفاده نکردم./ این دستور کارش چیه ؟؟

این متغییرهای B_bytes(1) , C_bytes و commnd چی هستند و چه چیزی های در اینا ذخیره شده ؟؟

علیدلی
19-08-2013, 23:47
سلام
دوستان کاربرد این 2 دستور چی هست ؟ و چه زمانی باید از این دتسور استفاده کرد؟؟
w_tx_payload

r_rx_payload

علیدلی
21-08-2013, 18:25
سلام
دوستان کاربرد این 2 دستور چی هست ؟ و چه زمانی باید از این دتسور استفاده کرد؟؟
w_tx_payload

r_rx_payload

یعنی هیچ کس این ماژول رو راه اندازی نکرده ؟؟

mehdi29665
21-08-2013, 20:24
سلام
لطفا در مورد برد مفید فرستنده هم اطلاعات بدید.
ممنون

Reza30ir
07-09-2013, 00:34
من 2 ماه پیش ماژول های معمولی NRF24L01 را از این سایت خریداری کردم

nrf24l01+,nrf24l01,nrf2401,ماژول فرستند گیرنده,ماژول رادیویی,ماژول ارسال دیتا,راه اندازی nrf24l01,ارسال صوت با nrf24l01 (You can see links before reply)

و این ماژولها رو با میکروکنترولر PIC18F را اندازی کردم و مشکل خاصی نبود.تنها مساله فاصله بود
که تا حدود 6 الی7 متر رو به صورت مطمئن جواب می داد.
بعد در سایت ماژولهای NRF24L01 PA LNA رو دیدیم

2.4G Wireless NRF24L01 PA LNA Board Module Electronic Parts (You can see links before reply)

که گفته شده بود منطق کارش دقیقا مشابه با ماژول های قبلی است.
ولی متاسفانه الان 1 ماه من دارم رو این ماژول ها کار میکنم و هیچ جواب مطمئنی نگرفتم.بعضی مواقع کار میکنه!!!!! ،بعضی مواقع داغ میکنه!!!!!!!
آیا کسی از دوستان با این ماژولهای جدید کار کرده و تونسته جواب بگیره؟

علیدلی
17-09-2013, 21:41
سلام دوستان

دوستان من میخام هر ماژول NRF هم در مد گیرنده باشه هم در مد فرستنده .
میخام یه مدار بذارم داخل سالن و یه مدار بذارم داخل اتاق کنترل ک
مداری که تو سالن هست وضعیت دمارو برای اتاق کنترل میفرسته و در مقابل اتاق کنترل با توجه به وضعیت دما فن های متصل شده به مدار داخل سالن رو کنترل میکنه ؛ یعنی هر دو تا ماژول باید هم فرستنده باشه هم گیرنده .تا اینجا حله ؟؟

سوالم اینجاست؟ ما در اتاق کنترل setpoint دما رو مثلا میذاریم 30 ؛؛ که اگر دمای محیط 30 شد فن 1 روشن بشه.
مدار داخل سالن وضعیت دما رو میفرسته برای اتاق کنترل و اتاق کنترل مدام داره وضعیت دما رو دریافت میکند .یکدفعه دما میشه 30، اتاق کنترل میخاد دستور بده به مدار داخل سالن که فن شماره 1 رو روشن کن .یعنی اینجا ماژول اتاق کنترل باید تغییر وضعیت بده و به فرستنده تبدیل بشه .حالا من باید چیکار کنم که یه موقع تداخل ایجاد نشه و ماژول داخل سالن بفهمه که باید به حالت گیرنده تبدیل بشه تا دستورات اتاق کنترل رو دریافت کنه .چون قبلا کارش این بوده که فقط دماها رو میفرستاده ولی الان باید اطلاعات دریافت .

حالا من چطوری از اتاق کنترل به ماژول داخل سالن بفهمانم که ماژول باید به حالت گیرنده تبدیل بشه تا اطلاعات اتاق کنترل رو دریافت کنه و بعد به حالت نرمال خودش برگرده ؟؟

ممنونم .

microprocesor_2002
17-09-2013, 23:54
خو عزیزم کاری نداره که ... یکی بصورت Master باشه و دیگری Slave .... یعنی بصورت پرسش و پاسخ کار کنن .... Master دستور بده Slave اجرا کنه ...

hamed.9999
16-10-2013, 18:49
میخوام با این ماژول صوت و تصویر ارسال کنم کسی با این ماژل کار کرده................ Wireless transceiver

omid_544
11-11-2013, 17:31
خو عزیزم کاری نداره که ... یکی بصورت master باشه و دیگری slave .... یعنی بصورت پرسش و پاسخ کار کنن .... Master دستور بده slave اجرا کنه ...

سلام من میخوام از همین مد که شما گفتین استفاده کنم خواهشا بیشتر توضیح بدین.
باتشکر فراوان

KHM
11-11-2013, 18:17
سلام من میخوام از همین مد که شما گفتین استفاده کنم خواهشا بیشتر توضیح بدین.
باتشکر فراوان
برای استفاده از nrf هم فرستنده و هم گیرنده باید تو مد master باشن...سیستم کاری nrf اینجوره...بعدش با رجیسترها تنظیم میشه که کدوم فرستنده باشه و کدوم گیرنده...

omid_544
12-11-2013, 01:03
منظورم اینه که هم زمان می خوام در حالت گیرنده و فرستنده باشه؟

KHM
12-11-2013, 15:00
منظورم اینه که هم زمان می خوام در حالت گیرنده و فرستنده باشه؟
نمیشه...باید از 2تا nrf جدا استفاده کنی...و 2تا میکرو جدا...بعد بین میکرو ها ارتباط برقرار کنی...
همزمان نمیشه...

osatialiosat
14-12-2013, 11:17
سلام دوستان:لطفا یکی جواب بده تو کدهایی که گذاشتن دستورات کانفیگ(مثل دیتاریت کانال فرکانس آدرس پایپ هاو....) در یک حلقه دائم به ماژول فرستاده میشن یه جایی خوندم تا وقتی که تغذیه ماژول قطع نشه نیاز به کانفیگ مجدد نیست بنظر شما کدوم درسته؟

KHM
14-12-2013, 12:50
سلام دوستان:لطفا یکی جواب بده تو کدهایی که گذاشتن دستورات کانفیگ(مثل دیتاریت کانال فرکانس آدرس پایپ هاو....) در یک حلقه دائم به ماژول فرستاده میشن یه جایی خوندم تا وقتی که تغذیه ماژول قطع نشه نیاز به کانفیگ مجدد نیست بنظر شما کدوم درسته؟
سلام...تا وقتی که تغذیه ی ماژول قطع نشه، نیاز به کانفیگ دوباره نیست...مگر اینکه تعداد ارسال های ناموفق زیاد بشه و برای ادامه کار مجبور بشی کانال رو عوض کنی...

osatialiosat
18-12-2013, 00:55
میشه این ماژول رو بصورت کاملا یکطرفه راه اندازی کرد یکی فقط فرستنده باشه یکی گیرنده اگه میشه، تنظیمات به چه صورت باید باشه و موضوع auto ackچی میشه؟. لطفا در مورد shockbrust هم توضیح بدین طول بسته دیتا که ارسال میکنه چند بایته *********با سپا س

KHM
18-12-2013, 01:44
میشه این ماژول رو بصورت کاملا یکطرفه راه اندازی کرد یکی فقط فرستنده باشه یکی گیرنده اگه میشه، تنظیمات به چه صورت باید باشه و موضوع auto ackچی میشه؟. لطفا در مورد shockbrust هم توضیح بدین طول بسته دیتا که ارسال میکنه چند بایته *********با سپا س
بله میشه...خو بسته به کار تنظیمش فرق میکنه...باید دیتاشیت رو بخونین تا دقیقآ یرا کار خودتون بهینه کنین...
auto ack برا تایید دریافت هست..
طول بسته متغیر هست و توسط برنامه تعیین میشه...
سوالاتون خیلی خیلی کلی هست...

mansoory
06-01-2014, 16:05
سلام دوستان

دوستان من میخام هر ماژول nrf هم در مد گیرنده باشه هم در مد فرستنده .
میخام یه مدار بذارم داخل سالن و یه مدار بذارم داخل اتاق کنترل ک
مداری که تو سالن هست وضعیت دمارو برای اتاق کنترل میفرسته و در مقابل اتاق کنترل با توجه به وضعیت دما فن های متصل شده به مدار داخل سالن رو کنترل میکنه ؛ یعنی هر دو تا ماژول باید هم فرستنده باشه هم گیرنده .تا اینجا حله ؟؟

سوالم اینجاست؟ ما در اتاق کنترل setpoint دما رو مثلا میذاریم 30 ؛؛ که اگر دمای محیط 30 شد فن 1 روشن بشه.
مدار داخل سالن وضعیت دما رو میفرسته برای اتاق کنترل و اتاق کنترل مدام داره وضعیت دما رو دریافت میکند .یکدفعه دما میشه 30، اتاق کنترل میخاد دستور بده به مدار داخل سالن که فن شماره 1 رو روشن کن .یعنی اینجا ماژول اتاق کنترل باید تغییر وضعیت بده و به فرستنده تبدیل بشه .حالا من باید چیکار کنم که یه موقع تداخل ایجاد نشه و ماژول داخل سالن بفهمه که باید به حالت گیرنده تبدیل بشه تا دستورات اتاق کنترل رو دریافت کنه .چون قبلا کارش این بوده که فقط دماها رو میفرستاده ولی الان باید اطلاعات دریافت .

حالا من چطوری از اتاق کنترل به ماژول داخل سالن بفهمانم که ماژول باید به حالت گیرنده تبدیل بشه تا اطلاعات اتاق کنترل رو دریافت کنه و بعد به حالت نرمال خودش برگرده ؟؟

ممنونم .

باید هر دو درحالت گیرنده باشند. هنگامیکه لازم شد (مثلا زمانی که باید گزارش دما از سالن به اتاق کنترل ارسال بشه) فقط برای مدت کوتاهی به مود فرستنده میره. داده رو ارسال میکنه ack رو میگیره و دوباره به حالت گیرنده برمیگرده....
امیدوارم توضیحاتم کافی باشه

alirezajodan
15-01-2014, 03:12
خسته نباشین
سوالی در زمینه nrf داشتم
من کلی تو اینترنت سرچ کردم ولی مثالی که بشه چیزی ازش فهمید رو برای راه اندازی این ماژول پیدا نکردم
شما گفتین این ماژول رو راه اندازی کردین
اگه ممکنه یه نمونه برنامه یا همچین چیزی بهم بدین که کارم راه بیوفته
من میخوام با میکروی مگا8 راش بندازم(با کدویژن)

plc1361
15-01-2014, 12:47
نمیشه...باید از 2تا nrf جدا استفاده کنی...و 2تا میکرو جدا...بعد بین میکرو ها ارتباط برقرار کنی...
همزمان نمیشه...
دوست عزیز شما که اطلاع کامل نداری چرا به این بنده خدا اطلاعات غلط میدی؟
آره میشه همزمان هم بفرسته هم بگیره
یعنی در واقع وقتی اطلاعات رو فرستاد تو جواب تایید طرف دیگه هم میتونه در جواب 32 بایت اطلاعات برای فرستنده بفرسته
فقط باید ماژول رو روی حالتی تنظیم کرد که با بارگذاری و ارسال یک پاکت اطلاعات در جواب از گیرنده مقداری اطلاعات بگیرد

KHM
15-01-2014, 19:32
دوست عزیز شما که اطلاع کامل نداری چرا به این بنده خدا اطلاعات غلط میدی؟
آره میشه همزمان هم بفرسته هم بگیره
یعنی در واقع وقتی اطلاعات رو فرستاد تو جواب تایید طرف دیگه هم میتونه در جواب 32 بایت اطلاعات برای فرستنده بفرسته
فقط باید ماژول رو روی حالتی تنظیم کرد که با بارگذاری و ارسال یک پاکت اطلاعات در جواب از گیرنده مقداری اطلاعات بگیرد
بله شما درست میگین...اونموقع تازه شروع کرده بودم کار باهاشو و فک میکردم نمیشه...ولی بعدش دیدم که میشه تو 1تاپیک دیگه گفتم که میشه...
اونموقع که من سایتارو میگشتم همه میگفتن یه ماژول نمیتونه هم فرستنده و هم گیرنده باشه و باید از 2تا جدا استفاده کرد..تو همین سایتم بگردین پیدا میکنین...کلی خودمو کشتم تا تونستم از یه ماژول به عنوان فرستنده و گیرنده استفاده کنم...البته منظورم بین 2تا نیس...منظور از یکی بگیره و به یکی دیگه بفرسته...
ولی توجه کنین بازم همزمان نیستا...یعنی اول میگیره و بعد میفرسته:د
حالا میگم در جواب فرستنده هم میتونه اطلاعات بفرسته...میتونه هم گیرنده باشه و هم فرستنده و بین هر چنتا میخوای شبکه ایجاد کنی..
البته اگه سوال ایشون رو هم بخونین میخوان از یکی بگیره و به یکی دیگه بفرسته...پس با راه شما نمیشه...درسته؟

saeed210
07-03-2014, 02:53
دوستانی که با این ماژول کارکردن من 1 سوال دارم
من 1 جفتش رو راه انداختم ولی مشکلم اینه که وقتی برق گیرنده رو وصل می کنم و میزارم مثلا 1 دقیقه بمونه بعد فرستنده رو راه میندازم و 1 بایت ارسال میکنم گیرنده میفهمه که یک چیزی رسیده ولی مقدار صفر رو برمیگردونه یعنی وقفه دریافت اتفاق می افته اما مقدار صفر رو دریافت میکنه و رجیستر observe_tx توی ماژول فرستنده هم صفر میمونه یعنی هیچ سعی ای برای ارسال مجدد نمیکنه
اما اگه مثلا 5ثانیه بعد روشن کردن مدار گیرنده مدار فرستنده رو هم روشن کنم اطلاعات درست دریافت میشه

plc1361
10-03-2014, 22:00
بله شما درست میگین...اونموقع تازه شروع کرده بودم کار باهاشو و فک میکردم نمیشه...ولی بعدش دیدم که میشه تو 1تاپیک دیگه گفتم که میشه...
اونموقع که من سایتارو میگشتم همه میگفتن یه ماژول نمیتونه هم فرستنده و هم گیرنده باشه و باید از 2تا جدا استفاده کرد..تو همین سایتم بگردین پیدا میکنین...کلی خودمو کشتم تا تونستم از یه ماژول به عنوان فرستنده و گیرنده استفاده کنم...البته منظورم بین 2تا نیس...منظور از یکی بگیره و به یکی دیگه بفرسته...
ولی توجه کنین بازم همزمان نیستا...یعنی اول میگیره و بعد میفرسته:د
حالا میگم در جواب فرستنده هم میتونه اطلاعات بفرسته...میتونه هم گیرنده باشه و هم فرستنده و بین هر چنتا میخوای شبکه ایجاد کنی..
البته اگه سوال ایشون رو هم بخونین میخوان از یکی بگیره و به یکی دیگه بفرسته...پس با راه شما نمیشه...درسته؟

با سلام
هیچ ماژولی در آن واحد نمیتونه روی یک باند فرکانسی هم گیرنده باشه هم فرستنده
ولی با توجه به سرعت بالای انتقال اطلاعات میتونه تو زمان کوتاهی در حد 500 میکرو ثانیه هم عمل ارسال انجام شه هم دریافت که فکر کنم کار این دوستمون راه بیافته در ضمن این ماژولها در مد گیرندگی 6 کانال فرکانسی متفاوت دارن که میتونن از چند ماژول متفاوت داده دریافت کنن
موفق باشین

saeed210
14-03-2014, 20:14
دوستانی که این ماژول رو با کامپایلر ccs راه انداختن من الان می خوام با spi سخت افزاری باهاش ارتباط بگیرم ولی وقتی از دستورهای spi_write , spi_read استفاده میکنم جواب های چرت و پرت میگیرم یعنی حتی توی خوندن یک رجیستر ساده مشکل دارم
مودهای کاری spi رو روی تمام حالت های ممکن امتحان کردم بازم جواب نمیده بیشتر تمرکزم روی مود setup_spi(SPI_MASTER|SPI_L_TO_H|SPI_CLK_DIV_4); بود ولی تمام حالت ها رو امتحان کردم
کتابخونه هایی که توی اینترنت یا همین تایپیک بود از spi نرم افزاری استفاده شده که من هنوز اون رو امتحان نکردم و می خوام با سخت افزاری راهش بندازم
با AVR راحت راه افتاد ولی با pic نه
من از 16f877 استفاده کردم

mansoory
15-03-2014, 09:47
منبع تغذیه نویز داره. اون رو برطرف کنید درست میشه

saeed210
15-03-2014, 23:09
تغزیه رو از پاور کامپیوتر گرفتم اگه مشکل نویز باشه بالاخره 1بار باید جواب بده یا جواب های خواندن توی چندبار متوالی امتحان کردن مختلف باشه ولی اگه 100 بارم امتحان کنم همش 1 جواب میده

abbasalifix
08-01-2015, 01:34
من اگه بخوام یک متن یا یک عدد 4-3 رقمی رو ار سال کنم باید با چه فرمانی ارسال رو انجام بدم و با چه فرمانی اون رو دریافت کنم ؟

هنوز برام گنگه که کانال و برد ماژول و سرعت اون با تغییر کدام قسمت های هدر تغییر میکنه؟

آیا با این هدر بورد امکان ارسال متن وجود داره ؟

abbasalifix
16-01-2015, 23:00
:sa: کسی نمیدونه ؟

1112
17-01-2015, 00:55
سلام
از رشته استفاده کن
من avr با بیسکام کار کردم
عدد یا متن مورد نظرتو بریز تو یک متغیر از جنس سینگل یا ورد بعد اون رو ارسال کن به سریال میکرو و میره روی باند
و اونطرف همین متغیر رو با همین جنس تعریف کن
و بعد با دستور چاپ روی ال سی دی همن متغیر چاپ میشه به همین راحتی

mahdiamiri804
12-03-2015, 14:56
سلام ، کسی بزای mega32برای nrf24l01بنامه نوشته بده ما؟ برای eca هر کاری کردم جواب نداده

mahdiamiri804
12-03-2015, 15:47
سلام می خواهم ماژول nrf24l01 را باatmega32 با زبان c راه بندازم آیا sampel code یا هر چیز دیگه ای دارید کا کار مارو راه بندازه؟

الهام غزالی
08-07-2015, 23:50
سلام .دوستان کد راه اندازی ماژول nrf24l01 با میکرو atmega8رو هم برای فرستنده و هم گیرنده در نرم افزار bascomeلازم دارم کسی هست نوشته باشه؟

elahee
02-02-2016, 14:09
سلام دوستان
برای ساخت رسیور هاپینگ کد میتونم از این ماژول nrf استفاده کنم؟؟
ممنون میشم اگه راهنمایی کنید...

behzad94
24-04-2016, 18:10
سلام
من قصد دارم بدون استفاده از فایل سرایند کار با ماژول رو یادبگیرم .
هر بایتی که با spi میفرستم 0x0E جواب میده .
با spi میفرستم مثلا 0x04 بعد 0x00 جواب میده اولی رو 0x0E دومی 0x00 .
ایا اشکال از spi که اشتباه استفاده میکنم ؟
کلاک spi نباید تغییر بدم ؟
ممکن ماژول تقلبی باشه ؟
مگر اینطور نیست که بایت اول دستور خواندن ریجستر و جواب بایت دوم رجیستر ماژول باشد ؟
مهندسایی که کار کردن یا تا یه جایی جواب گرفتن لطفا راهنمایی کنند.

mansoory
26-04-2016, 14:07
سلام
من قصد دارم بدون استفاده از فایل سرایند کار با ماژول رو یادبگیرم .
هر بایتی که با spi میفرستم 0x0E جواب میده .
با spi میفرستم مثلا 0x04 بعد 0x00 جواب میده اولی رو 0x0E دومی 0x00 .
ایا اشکال از spi که اشتباه استفاده میکنم ؟
کلاک spi نباید تغییر بدم ؟
ممکن ماژول تقلبی باشه ؟
مگر اینطور نیست که بایت اول دستور خواندن ریجستر و جواب بایت دوم رجیستر ماژول باشد ؟
مهندسایی که کار کردن یا تا یه جایی جواب گرفتن لطفا راهنمایی کنند.
طبق دیتا شیت عمل کنید.

behzad94
26-04-2016, 20:39
سلام
ضمن عرض تشکر
مشکل در دیتا شیت ندارم و تقریبا بارها خوندمش
حالا اگر جاییش رو نفهمیدم اون موضوع دیگری است
وبه راهنمایی نیاز دارم
اگر من بتونم فقط یکی از رجیستر هاش رو با درخواست خواندن بخونم می فهمیدم خیلی جاها چه کارکنم.
حالا یا در قسمت پاوردان مشکل هست یا کد رو اشتباه دارم ؟
کدساده ی

spi_start();
ch[0]=spi(0x04);
ch[1]=spi(0x00);
spi_end();

جواب ch[0] باید استاتوس و جواب ch[1] باید رجیستر 4 باشد ولی اولی 0x0E دومی 0
گفتم کار کردید راهنمایی بخوام و مطرح کردم ببخشید از وقتتون
اگر ممکن رهنمایی کنید

behzad94
02-05-2016, 10:21
با سلام
لازم دارم کار با nrf رو بدون هدر یاد بگیرم
کسانی که از هدر استفاده کردن فایلهایی رو ضمیمه کردن که من نمی شناسم
تا اندکی که دیتا بین دو ماژول بفرستم spi بلدم
وقتی رجیستر ها رو مقدار میدم جوابی میفرسته که فکر کنم بی معنی شاید اشتباه باشه.
با اتمل کد میزنم.
استادایی کار کردن به شما چه جوابی داده.
گیرم
اگر ممکن کسی کمک کنه.

omidctrl
19-12-2016, 17:29
سلام. من میخوام از یک فرستنده کنار جاده (که باد، سرما، گرد و خاک و ... موجوده) با عرض وسیع، به گیرنده ای که در داخل یک خودروی در حال عبور قرار داده شده، یکسری اطلاعات بدون خطا بفرستم. میخواستم بدونم ماژول nrf24l01+ واسه این کار مناسبه؟ وضعیتش تو بازار چطوره؟ طوری نیست که یکی دو سال دیگه کلا گیر نیاد؟ از نظر تعداد گیرنده ها محدودیت نداریم؟ یعنی یک فرستنده داریم که داره داده میفرسته، حالا اگه 100 تا گیرنده توی دید باشن، همشون میتونن این داده رو دریافت بکنن؟
ممنونم.

behnam6500
20-12-2016, 00:53
سلام. من میخوام از یک فرستنده کنار جاده (که باد، سرما، گرد و خاک و ... موجوده) با عرض وسیع، به گیرنده ای که در داخل یک خودروی در حال عبور قرار داده شده، یکسری اطلاعات بدون خطا بفرستم. میخواستم بدونم ماژول nrf24l01+ واسه این کار مناسبه؟ وضعیتش تو بازار چطوره؟ طوری نیست که یکی دو سال دیگه کلا گیر نیاد؟ از نظر تعداد گیرنده ها محدودیت نداریم؟ یعنی یک فرستنده داریم که داره داده میفرسته، حالا اگه 100 تا گیرنده توی دید باشن، همشون میتونن این داده رو دریافت بکنن؟
ممنونم.

وقتتو با این ماژول حروم نکن.

omidctrl
20-12-2016, 01:14
میشه بگید چرا؟ پیشنهاد شما چیه؟

2ali5
27-09-2017, 21:46
سلام،خوبی‌؟شما موفق شدید با این ماژول کار کنید؟

- - - Updated - - -


سلام. من میخوام از یک فرستنده کنار جاده (که باد، سرما، گرد و خاک و ... موجوده) با عرض وسیع، به گیرنده ای که در داخل یک خودروی در حال عبور قرار داده شده، یکسری اطلاعات بدون خطا بفرستم. میخواستم بدونم ماژول nrf24l01+ واسه این کار مناسبه؟ وضعیتش تو بازار چطوره؟ طوری نیست که یکی دو سال دیگه کلا گیر نیاد؟ از نظر تعداد گیرنده ها محدودیت نداریم؟ یعنی یک فرستنده داریم که داره داده میفرسته، حالا اگه 100 تا گیرنده توی دید باشن، همشون میتونن این داده رو دریافت بکنن؟
ممنونم.
سلام، شما تونستید با این ماژول کار کنید؟