اطلاعیه

Collapse
No announcement yet.

راه اندازی ماژول +nRF24L01 به زبان بسکام(BASCOM-AVR)

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    راه اندازی ماژول +nRF24L01 به زبان بسکام(BASCOM-AVR)

    با سلام به همه دوستان

    توی گشتو گذار توی نت هیچ منبعی رو پیدا نکردم که بتونن این ماژول رو با زبان بسکام راه اندازیش کنن
    پس از دوستانی که تجربه کار با ماژول +nRF24L01 رو دارن در خواست میکنم تا به کمک هم بیایم

    یه نمونه برنامه که خودم شخصا تستش نکردم
    چون ماژولش رو فعلا ندارم

    گیرنده:
    کد:
    $regfile = "m8def.dat"
    $crystal = 8000000
    
    Declare Sub R_register(byval Command As Byte , Byval C_bytes As Byte)
    Declare Sub W_register(byval C_bytes As Byte)
    
    'SPI (nRF24L01)
    Const Write_reg = &H20
    Const Rd_rx_pload = &H61
    
    'SPI (nRF24L01)
    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 Rx_pw_p0 = &H11
    Const Fifo_status = &H17
    
    Dim D_bytes(6) As Byte , B_bytes(5) As Byte
    
    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         'CE pin is output
    Config Portb.2 = Output : Ss Alias Portb.2         'SS pin is output
    Config Pinb.0 = Input : Irq Alias Pinb.0          'IRQ pin is input
    
    Spiinit
    
    Set Ce
    Waitms 10
    Reset Ce
    Reset Ss
    
    Print "RX_device"
    
    Call R_register(status , 1)
    Reset Ce
    
    Gosub Setup_rx
    Waitms 2
    Set Ce
    
    Do
    
    If Irq = 0 Then
    Reset Ce
    
    Call R_register(rd_rx_pload , 5)
    Print "Pload : " ; Hex(b_bytes(1)) ; Hex(b_bytes(2)) ; Hex(b_bytes(3)) ; Hex(b_bytes(4)) ; Hex(b_bytes(5))
    
    D_bytes(1) = Write_reg + Status
    D_bytes(2) = &B01000000
    Call W_register(2)
    Set Ce
    Waitms 2
    End If
    
    Loop
    
    
    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
    
    
    Setup_rx:
    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 + Rx_pw_p0
    D_bytes(2) = 5
    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) = &H0F
    Call W_register(2)
    Return
    فرستنده:
    کد:
    $regfile = "m8def.dat"
    $crystal = 8000000
    
    Declare Sub W_register(byval C_bytes As Byte)
    
    'SPI (nRF24L01)
    Const Write_reg = &H20
    Const Wr_tx_pload = &HA0
    Const Flush_tx = &HE1
    
    'SPI (nRF24L01) ًهمèًٌٍû (àنًهٌà)
    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
    
    Dim D_bytes(6) As Byte , W As Byte
    
    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         'CE pin is output
    Config Portb.2 = Output : Ss Alias Portb.2         'SS pin is output
    Config Pinb.0 = Input : Irq Alias Pinb.0          'IRQ pin is input
    
    Config Portd.4 = Output : Red_led Alias Portd.4
    
    Spiinit
    
    Do
    
    Incr W
    If W = 250 Then
    W = 0
    End If
    
    Set Ce
    Waitms 10
    Reset Ce
    Reset Ss
    
    Red_led = 1
    
    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) = &H11
    D_bytes(6) = W
    Call W_register(6)
    
    Waitms 2
    Set Ce
    Waitms 1
    Reset Ce
    
    Red_led = 0
    
    Wait 1
    
    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

    #2
    پاسخ : راه اندازی ماژول +nRF24L01 به زبان بسکام(BASCOM-AVR)

    منابع روسی
    https://translate.google.com/translate?hl=fa&sl=ru&u=http://avrproject.ru/publ/vstraivaemyj_modul_radioupravlenija_na_nrf24l01/1-1-0-147&prev=search

    http://www.aparat.com/v/ouWdm

    http://www.aparat.com/v/7YCa2

    http://www.aparat.com/v/CbUlD

    https://translate.google.com/translate?hl=fa&sl=ru&u=http://avrproject.ru/publ/kak_podkljuchit/radiomoduli_nrf24l01/2-1-0-92&prev=search


    منبع ایرانی:
    از علی عزتی
    http://electrolab.ir/%D8%B1%D8%A7%D9%87-%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C-%D9%85%D8%A7%DA%98%D9%88%D9%84-nrf24l01-%D8%A8%D8%A7-%D8%A8%D8%B3%DA%A9%D8%A7%D9%85/

    دیدگاه


      #3
      پاسخ : راه اندازی ماژول +nRF24L01 به زبان بسکام(BASCOM-AVR)

      آقا من هر کاری می کنم نمیتونم از این ماژول ج بگیرم این برنامه رو هم زدم جواب نمیده یک میشه راهنماییم کنه؟؟؟؟

      دیدگاه


        #4
        پاسخ : راه اندازی ماژول +nRF24L01 به زبان بسکام(BASCOM-AVR)

        منم ماژول رو تهیه کردم و روی برید برد نصب کردم ولی هیچ نشونه امیدی من ندیدم

        دیدگاه


          #5
          پاسخ : راه اندازی ماژول +nRF24L01 به زبان بسکام(BASCOM-AVR)

          نوشته اصلی توسط RahimEdison
          منم ماژول رو تهیه کردم و روی برید برد نصب کردم ولی هیچ نشونه امیدی من ندیدم
          این ماژول روی برد برد بسته نمیشه
          اگه به پایه هاش دقت کنید میفهمید :NO:
          چون پایه هاش جوری هستند که رو برد برد به هم متصل میشن
          از دو چیز بسیار زیاد یاد گرفتم (1) نمونه مدارهای موجود در سایت های خارجی (2) مهندسی معکوس بردهای غیر ایرانی. به نقل از آقای مرتضی امانی
          --------------------------------------------------------
          تمام دنیا ما را تحریم کرده اند؛ حداقل خودمان همدیگر را تحریم نکنیم. به نقل از pencil
          --------------------------------------------------------
          اشک هایی که پس از هر شکست ریخته میشوند همان عرق هاییست که برای پیروزی ریخته نشده است. mehran901

          دیدگاه


            #6
            پاسخ : راه اندازی ماژول +nRF24L01 به زبان بسکام(BASCOM-AVR)

            سلام اون منابع جایی راه اندازیش رو آموزش نداده فقط قیلمه اون منبع ایرانی هم تو برنامش خودتون نگاه کنید ایراد داره و جواب سوالم نمیدن منم مشکل دارم باش هرکاری میکنم جواب نمیده
            برنامه اولم که گذاشتن رو نمیشه برد تو بیسکام چرتو چرت میزنه نمیفهمم چیه لینک دانلود ندارین؟
            { خلاف قوانین - پاک شد }

            دیدگاه

            لطفا صبر کنید...
            X