سلام، من چند تا ماژول nrf با برد یک کیلومتر گرفتم که بیشتر از 40 متر جواب نمیده، فقط هم دو تا دیوار بین فرستنده و گیرنده هست. خیلی جا ها نوشتن که میشه با تنظیم گین و ... برد رو افزایش داد ولی هیچ کدوم ننوشتن چطوری!! ممنون میشم بگین که در برنامه فرستنده زیر کدوم رجیستر رو باید تغییر بدم تا حداکثر برد رو داشته باشم
دلیل: ادغام دو پست برای جلوگیری از اسپم
طبق چیزی که بنده متوجه شدم، با تغییر رجیستر 6 میشه برد رو افزایش داد، ولی نمیدونم چطوری اینکار رو بکنم.
این هم یک لینک از کلیه کد های این ماژول https://www.mcselec.com/?option=com_content&task=view&id=212&Itemid=57
کد:
$regfile = "m8def.dat" $crystal = 8000000 Const Write_reg = &H20 Const Wr_tx_pload = &HA0 Const Flush_tx = &HE1 Const Config_nrf = &H00 Const En_aa = &H01 Const En_rxaddr = &H02 Const Rf_ch = &H05 Const Rf_setup = &H06 Const Status = &H07 Const Rx_addr_p0 = &H0A Const Tx_addr = &H10 Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 4 , Noss = 1 Config Portb.1 = Output : Ce Alias Portb.1 Config Portb.2 = Output : Ss Alias Portb.2 Config Pinb.0 = Input : Irq Alias Pinb.0 Config Portc.1 = Output : Led Alias Portc.1 Config Portd.0 = Input : Sw Alias Pind.0 Dim D_bytes(6) As Byte Dim Dat As Byte Dim A As Byte Dim B As Byte Dim C As Byte Declare Sub W_register(byval C_bytes As Byte) Spiinit Set Portd.0 Do If Sw = 0 Then [FONT=Yekan] Set Led[/FONT] Dat = 10 Set Ce Waitms 10 Reset Ce Reset Ss D_bytes(1) = Flush_tx Call W_register(1) D_bytes(1) = Write_reg + Status D_bytes(2) = &B00110000 Call W_register(2) Gosub Setup_tx D_bytes(1) = Wr_tx_pload D_bytes(2) = &HAA D_bytes(3) = &HBB D_bytes(4) = &HCC D_bytes(5) = &HDD D_bytes(6) = Dat Call W_register(6) Waitms 2 Set Ce Waitms 1 Reset Ce Waitms 20[FONT=Yekan] [/FONT] End If Loop Sub W_register(byval C_bytes As Byte) Reset Ss Spiout D_bytes(1) , C_bytes Set Ss End Sub Setup_tx: D_bytes(1) = Write_reg + Tx_addr D_bytes(2) = &H34 D_bytes(3) = &H43 D_bytes(4) = &H10 D_bytes(5) = &H10 D_bytes(6) = &H01 Call W_register(6) D_bytes(1) = Write_reg + Rx_addr_p0 D_bytes(2) = &H34 D_bytes(3) = &H43 D_bytes(4) = &H10 D_bytes(5) = &H10 D_bytes(6) = &H01 Call W_register(6) D_bytes(1) = Write_reg + En_aa D_bytes(2) = &H01 Call W_register(2) D_bytes(1) = Write_reg + En_rxaddr D_bytes(2) = &H01 Call W_register(2) D_bytes(1) = Write_reg + Rf_ch D_bytes(2) = 40 Call W_register(2) D_bytes(1) = Write_reg + Rf_setup D_bytes(2) = &H0F Call W_register(2) D_bytes(1) = Write_reg + Config_nrf D_bytes(2) = &H0E Call W_register(2) Return
طبق چیزی که بنده متوجه شدم، با تغییر رجیستر 6 میشه برد رو افزایش داد، ولی نمیدونم چطوری اینکار رو بکنم.
این هم یک لینک از کلیه کد های این ماژول https://www.mcselec.com/?option=com_content&task=view&id=212&Itemid=57
دیدگاه