سلام، من چند تا ماژول 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





دیدگاه