اطلاعیه

Collapse
No announcement yet.

[آموزش]راه اندازی ماژول +nRF24L01

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

    پاسخ : راه اندازی ماژول +nRF24L01

    نوشته اصلی توسط interrupt
    علی آقا مشکل حل شد اشکال استفاده از اینتراپت یک بود، یکم موضوع عجیب نباید استفاده از اینتراپتها تو کار همدیگه مشکلی ایجاد کنه چون هر اینتراپت وکتور نامبر داره که هر زمانی دو اینتراپت در یک زمان رخ بده اول اونی اجرا میشه که وکتور بالاتری داره. صفخه42 جدول 18 دیتا شیت مگا8.
    علی آقا بابت پاسخهای شما متشکرم
    خواهش میکنم
    خوشحال شدم به نتیجه رسیدید :agree: :agree:

    ولی من یه چیزی تو برنامتون رو نفهمیدم چرا شما چند بار پشت سر هم کد ارسال میکنید oo: oo:
    کد:
    if(Flag==1)
       {
        Send_Data(1 , &null);
        delay_ms(2);
        Send_Data(1 , &null);
        delay_ms(2);
        Send_Data(1 , &null);
        delay_ms(2);
        Send_Data(1 , &null);
        delay_ms(2);
        Send_Data(1 , &null);
        Flag=0;
       }

    دیدگاه


      پاسخ : راه اندازی ماژول +nRF24L01

      نوشته اصلی توسط ALI micro
      خواهش میکنم
      خوشحال شدم به نتیجه رسیدید :agree: :agree:

      ولی من یه چیزی تو برنامتون رو نفهمیدم چرا شما چند بار پشت سر هم کد ارسال میکنید oo: oo:
      کد:
      if(Flag==1)
         {
          Send_Data(1 , &null);
          delay_ms(2);
          Send_Data(1 , &null);
          delay_ms(2);
          Send_Data(1 , &null);
          delay_ms(2);
          Send_Data(1 , &null);
          delay_ms(2);
          Send_Data(1 , &null);
          Flag=0;
         }
      این برنامه تستم هست چند بار ارسال میکردم که مطمئن بشم ارسال میشه لزومی هم نداشت چون تست بود ومهم نبود پاکش نکردم

      دیدگاه


        پاسخ : راه اندازی ماژول +nRF24L01

        با سلام
        من سه تا از این ماژول ها رو میخوام با هم شبکه کنم به این صورت که یکی همیشه فرستنده و دوتای دیگه گیرنده باشن مشکل اینجاست که وقتی دو slave باهم روشن هستن اطلاعات به درستی دریافت نمیشه و فقط یکی از ماژولا اطلاعات رو دریافت می کنه.
        اگه کسی بتونه کمکم کنه ممنون میشم

        دیدگاه


          پاسخ : راه اندازی ماژول +nRF24L01

          نوشته اصلی توسط mahdi222
          با سلام
          من سه تا از این ماژول ها رو میخوام با هم شبکه کنم به این صورت که یکی همیشه فرستنده و دوتای دیگه گیرنده باشن مشکل اینجاست که وقتی دو slave باهم روشن هستن اطلاعات به درستی دریافت نمیشه و فقط یکی از ماژولا اطلاعات رو دریافت می کنه.
          اگه کسی بتونه کمکم کنه ممنون میشم
          سلام
          عرض کنم من با کتابخانه آقای ایمانی فر این کار تو تستهام انجام دادم اصلا مشکل شما رو نداشتم میشه
          گفت این ساده ترین نوع شبکه کردن هستش (شاید بهتر باشه اسمش رو شبکه هم نذاریم بهتر باشه)
          برنامت بفرست تا من و سایر دوستان شاید تونستیم کمکت کنیم

          دیدگاه


            پاسخ : راه اندازی ماژول +nRF24L01

            با تشکر از جواب سریع تون
            وقتی یکی از گیرنده ها روشنه همه کدها به درستی کارمیکنن و مشکل فقط زمانیه که دو تا گیرنده دارم.البته مشکل بعد از دستکاری رجیسترهای آدرس RX_ADDR و TX_ADDR تا حدودی مرتفع شد اما باز مشکل سرجاش هشت و هی ادا درمیاره.
            کدهای پروژه رو هم به دلیل طولانی بودن مناسب نمیدونم اینجا قرار بدم
            اگه درباره آدرس چیپ ها اطلاعاتی دارین بفرمایید

            دیدگاه


              پاسخ : راه اندازی ماژول +nRF24L01

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

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

              زبان برنامه نویسیم بسکامه و اونو توی پروتئوس طراحی کردم تا راحت تر کمکم کنید
              با تشکر ویژه از همتون
              http://s3.picofile.com/file/8212819476/Rahim.zip.html

              با زبان سی چطور ؟
              این دیگه میشه که؟؟؟؟

              دیدگاه


                پاسخ : راه اندازی ماژول +nRF24L01

                دوستان کسی میدونه تو هدر آقای ایمانی فر ،کار شرط اول تو روتین وقفه چیه؟
                قسمت else اون که مربوط به گیرنده هست و وقتی اطلاعات جدیدی دریافت می شه کد اجرا میشه اما شرط اول مربوط به فرستنده ست و ظاهرا داره یه چیزی رو دریافت میکنه!!!!!!!!!

                دیدگاه


                  پاسخ : راه اندازی ماژول +nRF24L01

                  نوشته اصلی توسط Shapour-Ardebil
                  گیـــرنده:

                  کد:
                  '-------------------------------------------------------------------------------
                  '
                  '            IN THE NAME OF GOD
                  '
                  '-------------------------------------------------------------------------------
                  
                  '===============================================================================
                  'Project     : Recive nRF24L01
                  'Version     : 1.0.0
                  'copyright    : (c) 2013
                  'Date       : 1392/08/20
                  
                  'Chip type    : ATmega8
                  'Clock frequency : 11,059,200 Hz
                  '===============================================================================
                  
                  $regfile = "m8Adef.dat"
                  '$crystal = 11059200
                  $crystal = 8000000
                  $romstart = &H0
                  $baud = 19200                        ' use baud rate
                  $hwstack = 40                        ' default use 32 for the hardware stack
                  $swstack = 20                        ' default use 10 for the SW stack
                  
                  '-------------------------------------------------------------------------------
                  'Config LCD 16 * 2
                  '-------------------------------------------------------------------------------
                  Config Lcd = 16 * 2
                  Config Lcdpin = Pin , Db4 = Portd.6 , Db5 = Portd.7 , Db6 = Portb.0 , _
                   Db7 = Portb.1 , E = Portd.3 , Rs = Portd.2
                  
                  Cursor Off
                  Cursor Noblink
                  Cls
                  
                  '-------------------------------------------------------------------------------
                  ' Declare Sub Directory
                  '-------------------------------------------------------------------------------
                  Declare Sub R_register(byval Command As Byte , Byval C_bytes As Byte)
                  Declare Sub W_register(byval C_bytes As Byte)
                  
                  
                  '-------------------------------------------------------------------------------
                  'SPI (nRF24L01) team
                  '-------------------------------------------------------------------------------
                  Const Write_reg = &H20                   ' Define command entry in the register
                  Const Rd_rx_pload = &H61                  ' Define Rx Payload Address Register
                  
                  
                  '-------------------------------------------------------------------------------
                  'SPI (nRF24L01) registers (address)
                  '-------------------------------------------------------------------------------
                  Const Config_nrf = &H00                   ' Config register address
                  Const En_aa = &H01                     ' Enable Automatic confirmation email address
                  Const En_rxaddr = &H02                   ' Rx Enabled address " address"
                  Const Rf_ch = &H05                     ' RF channel' register address
                  Const Rf_setup = &H06                    ' RF Setup "(Settings) address"
                  Const Status = &H07                     ' Status " address"
                  Const Rx_addr_p0 = &H0A                   ' rx address Pipe0 " address register "
                  Const Rx_pw_p0 = &H11                    ' rx payload width , Pipe0 " address register "
                  Const Fifo_status = &H17                  ' fifo - Register Status " check address"
                  
                  Dim D_bytes(6) As Byte , B_bytes(5) As Byte
                  
                  '-------------------------------------------------------------------------------
                  'Config equipment
                  '-------------------------------------------------------------------------------
                  Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , _
                            Polarity = Low , Phase = 0 , Clockrate = 4 , Noss = 1
                  
                  
                  '===============================================================================
                  ' Software SPI does not work with nRF24L01, SPI only use the equipment
                  ' but the SS pin- code should be managed by our function
                  '===============================================================================
                  Config Portc.5 = Output : Ce Alias Portc.5         'CE pin is output
                  Config Portb.2 = Output : Ss Alias Portb.2         'SS pin is output
                  Config Pinc.4 = Input : Irq Alias Pinc.4          'IRQ pin is input
                  
                  '-------------------------------------------------------------------------------
                  ' connection Global Pines
                  '-------------------------------------------------------------------------------
                  Config Pind.5 = Output : Backlight Alias Portd.5      ' Backlight pin is output
                  Set Backlight
                  
                  Config Portc.1 = Output : Read_led Alias Portc.1
                  
                  '-------------------------------------------------------------------------------
                  
                  Spiinit
                  
                  '--------------------
                  
                  Set Ce
                  Waitms 10
                  Reset Ce
                  Reset Ss
                  
                  Call R_register(status , 1)                 ' Read the status register
                  Reset Ce                          ' Set CE is low, access to the registers
                  
                  Gosub Setup_rx                       ' Setting nRF24L01 for RX
                  Waitms 2
                  Set Ce                           ' Set nRF20L01 in receive mode
                  
                  
                  '-------------------------------------------------------------------------------
                  
                  Cls
                  Locate 1 , 1 : Lcd " RX_device "
                  Wait 2
                  
                  
                  '===============================================================================
                  ' Wait for IRQ occurs , pin- code becomes low interrupt
                  '===============================================================================
                  Do
                  
                    If Irq = 0 Then
                  
                     Set Read_led
                     Reset Ce                        ' The receiver must be enabled to read pload
                     Call R_register(rd_rx_pload , 5)            ' Read 5 bytes RX pload registration
                     '--------------------------------------------------------------------------
                     ' Show Recived Data
                     '--------------------------------------------------------------------------
                  '   Locate 1 , 1 : Lcd Hex(b_bytes(1)) ; "_" ; Hex(b_bytes(2)) ; "_" ; Hex(b_bytes(3)) ; " "
                  '   Locate 2 , 1 : Lcd Hex(b_bytes(4)) ; "_" ; Hex(b_bytes(5)) ; " "
                     Locate 1 , 1 : Lcd B_bytes(1) ; " _ " ; B_bytes(2) ; " _ " ; B_bytes(3) ; " "
                     Locate 2 , 1 : Lcd B_bytes(4) ; " _ " ; B_bytes(5) ; "   "
                  
                     D_bytes(1) = Write_reg + Status            ' Reset status bit RX_DR
                     D_bytes(2) = &B01000000                ' Write 1 to RX_DR bit to reset IRQ
                     Call W_register(2)
                     Set Ce                         ' Enable receiver again
                  
                     Reset Read_led
                     Waitms 100
                  
                    End If
                  
                  Loop
                  
                  
                  
                  'Sub routines
                  
                  '===============================================================================
                  ' Write to register with SPI
                  '===============================================================================
                  Sub W_register(byval C_bytes As Byte)
                   Reset Ss                         ' Guide CC control contact, use SS low to offset bytes
                   Spiout D_bytes(1) , C_bytes                ' Shiftout data bytes SPI trough , C_bytes is the number of bytes to be written
                   Set Ss                          ' Set SS high
                  End Sub
                  
                  
                  '===============================================================================
                  'C_bytes = Count_bytes, the number of bytes to read off
                  '===============================================================================
                  Sub R_register(byval Command As Byte , Byval C_bytes As Byte) As Byte
                    Reset Ss                         ' Manual control SS contact, set at a low level until the transition to / from Byte
                    Spiout Command , 1                    ' First shiftout in the register , which will be read
                    Spiin B_bytes(1) , C_bytes                ' read back bytes from SPI sent to nRF20L01
                    Set Ss                          ' Set SS back at a high level
                  End Sub
                  
                  
                  '===============================================================================
                  ' Preparing for the RX
                  '===============================================================================
                  Setup_rx:
                    D_bytes(1) = Write_reg + Rx_addr_p0           ' RX address pipe0
                    D_bytes(2) = &H34
                    D_bytes(3) = &H43
                    D_bytes(4) = &H10
                    D_bytes(5) = &H10
                    D_bytes(6) = &H01
                    Call W_register(6)                    ' Send 6 bytes for SPI
                    D_bytes(1) = Write_reg + En_aa              ' Enable auto ACK on pipe0
                    D_bytes(2) = &H01
                    Call W_register(2)
                    D_bytes(1) = Write_reg + En_rxaddr            ' Enable RX address pipe0
                    D_bytes(2) = &H01
                    Call W_register(2)
                    D_bytes(1) = Write_reg + Rf_ch              ' Channel Setup
                    D_bytes(2) = 40                     ' frequency 2440 MHz
                    Call W_register(2)
                    D_bytes(1) = Write_reg + Rx_pw_p0            ' Set RX pload width for pipe0
                    D_bytes(2) = 5
                    Call W_register(2)
                    D_bytes(1) = Write_reg + Rf_setup            ' Setting the RF -> output power of 0 dBm , datarate 2 Mbit / s and the LNA gain on
                    D_bytes(2) = &H0F
                    Call W_register(2)
                    D_bytes(1) = Write_reg + Config_nrf           ' Setting CONFIG -> I = 1 (RX_device), PWR_UP = 1 , CRC 2bytes, Enable CRC
                    D_bytes(2) = &H0F
                    Call W_register(2)
                  Return
                  فرستنــده:

                  کد:
                  '-------------------------------------------------------------------------------
                  '
                  '            IN THE NAME OF GOD
                  '
                  '-------------------------------------------------------------------------------
                  
                  '===============================================================================
                  'Project     : Send nRF24L01
                  'Version     : 1.0.0
                  'copyright    : (c) 2013
                  'Date       : 1392/08/20
                  
                  'Chip type    : ATmega8
                  'Clock frequency : 11,059,200 Hz
                  '===============================================================================
                  
                  $regfile = "m8Adef.dat"
                  $crystal = 11059200
                  '$crystal = 8000000
                  $romstart = &H0
                  $baud = 19200                        ' use baud rate
                  $hwstack = 40                        ' default use 32 for the hardware stack
                  $swstack = 10                        ' default use 10 for the SW stack
                  
                  '-------------------------------------------------------------------------------
                  'Config LCD 16 * 2
                  '-------------------------------------------------------------------------------
                  Config Lcd = 16 * 2
                  Config Lcdpin = Pin , Db4 = Portd.6 , Db5 = Portd.7 , Db6 = Portb.0 , _
                   Db7 = Portb.1 , E = Portd.3 , Rs = Portd.2
                  
                  Cursor Off
                  Cursor Noblink
                  Cls
                  
                  '-------------------------------------------------------------------------------
                  ' Declare Sub Directory
                  '-------------------------------------------------------------------------------
                  Declare Sub W_register(byval C_bytes As Byte)
                  
                  '-------------------------------------------------------------------------------
                  'SPI (nRF24L01) team
                  '-------------------------------------------------------------------------------
                  Const Write_reg = &H20                   ' Define command entry in the register
                  Const Wr_tx_pload = &HA0                  ' Define Tx Payload Address Register
                  Const Flush_tx = &HE1                    ' Detect Flash Tx Command Register
                  
                  '-------------------------------------------------------------------------------
                  'SPI (nRF24L01) registers (address)
                  '-------------------------------------------------------------------------------
                  Const Config_nrf = &H00                   ' Config register address
                  Const En_aa = &H01                     ' Enable Automatic confirmation email address
                  Const En_rxaddr = &H02                   ' Rx Enabled address " address"
                  Const Rf_ch = &H05                     ' RF channel' register address
                  Const Rf_setup = &H06                    ' RF Setup "( Settings) address"
                  Const Status = &H07                     ' Status " address"
                  Const Rx_addr_p0 = &H0A                   ' rx address Pipe0 " address register "
                  Const Tx_addr = &H10                    ' TX address ( address)
                  
                  Dim D_bytes(6) As Byte , W As Byte
                  
                  '-------------------------------------------------------------------------------
                  'Config equipment
                  '-------------------------------------------------------------------------------
                  Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 4 , Noss = 1
                  
                  '-------------------------------------------------------------------------------
                  ' Software SPI does not work with nRF24L01, SPI only use the equipment
                  ' but the SS pin- code should be managed by our function
                  '-------------------------------------------------------------------------------
                  Config Portc.5 = Output : Ce Alias Portc.5         'CE pin is output
                  Config Portb.2 = Output : Ss Alias Portb.2         'SS pin is output
                  Config Pinc.4 = Input : Irq Alias Pinc.4          'IRQ pin is input
                  
                  '-------------------------------------------------------------------------------
                  ' connection Global Pines
                  '-------------------------------------------------------------------------------
                  Config Pind.5 = Output : Backlight Alias Portd.5      ' Backlight pin is output
                  Set Backlight
                  
                  Config Portc.1 = Output : Send_led Alias Portc.1
                  
                  '-------------------------------------------------------------------------------
                  
                  Spiinit
                  
                  Cls
                  Locate 1 , 1 : Lcd " TX_device "
                  Wait 2
                  
                  '===============================================================================
                  '
                  '===============================================================================
                  Do
                  
                    Incr W
                    If W = 250 Then W = 0
                  
                    Set Ce
                    Waitms 10
                    Reset Ce
                    Reset Ss
                  
                    Send_led = 1
                  
                    D_bytes(1) = Flush_tx                  ' Flush the TX_fifo buffer
                    Call W_register(1)
                    D_bytes(1) = Write_reg + Status             ' Reset IRQ bit
                    D_bytes(2) = &B00110000
                    Call W_register(2)
                  
                    Gosub Setup_tx                      ' Setting nrf240l01 for TX
                    D_bytes(1) = Wr_tx_pload                 ' Put 5 bytes in TX pload buffer
                    D_bytes(2) = &HAA                    ' Byte 1
                    D_bytes(3) = &HBB                    ' Byte 2
                    D_bytes(4) = &HCC                    ' Byte 3
                    D_bytes(5) = &H11                    ' Byte 4
                    D_bytes(6) = W                      ' Byte 5 will increase every cycle
                    Call W_register(6)                    ' Record 6 Bytes For Registration
                  
                    Waitms 2
                    Set Ce                          ' Set CE for a brief moment to transmit buffer fifo
                    Waitms 1
                    Reset Ce
                  
                    Send_led = 0
                    '--------------------------------------------------------------------------
                    ' Show Sended Data
                    '--------------------------------------------------------------------------
                  '  Locate 1 , 1 : Lcd Hex(d_bytes(1)) ; " _ " ; Hex(d_bytes(2)) ; " _ " ; Hex(d_bytes(3)) ; " "
                  '  Locate 2 , 1 : Lcd Hex(d_bytes(4)) ; " _ " ; Hex(d_bytes(5)) ; " _ " ; Hex(d_bytes(6)) ; " "
                  
                    Locate 1 , 1 : Lcd D_bytes(1) ; " _ " ; D_bytes(2) ; " _ " ; D_bytes(3) ; " "
                    Locate 2 , 1 : Lcd D_bytes(4) ; " _ " ; D_bytes(5) ; " _ " ; D_bytes(6) ; " "
                  
                  
                    Wait 1
                  
                  Loop
                  
                  
                  
                  'Sub routines
                  
                  
                  '===============================================================================
                  ' Write to register with SPI
                  '===============================================================================
                  Sub W_register(byval C_bytes As Byte)
                    Reset Ss                         ' Guide CC control contact, use SS low to offset bytes
                    Spiout D_bytes(1) , C_bytes               ' Shiftout data bytes SPI trough , C_bytes is the number of bytes to be written
                    Set Ss                          ' Set SS high
                  End Sub
                  
                  
                  '===============================================================================
                  ' Preparing for TX
                  '===============================================================================
                  Setup_tx:
                    D_bytes(1) = Write_reg + Tx_addr             'TX address
                    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           'RX address pipe0
                    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              'Enable auto ACK on pipe0
                    D_bytes(2) = &H01
                    Call W_register(2)
                    D_bytes(1) = Write_reg + En_rxaddr            ' Enable RX address pipe0
                    D_bytes(2) = &H01
                    Call W_register(2)
                    D_bytes(1) = Write_reg + Rf_ch              ' Channel Setup
                    D_bytes(2) = 40                     ' frequency 2440 MHz
                    Call W_register(2)
                    D_bytes(1) = Write_reg + Rf_setup            ' Setting the RF -> output power of 0 dBm , datarate 2 Mbit / s and the LNA gain on
                    D_bytes(2) = &H0F
                    Call W_register(2)
                    D_bytes(1) = Write_reg + Config_nrf           ' Setting CONFIG -> I = 0 (TX_device), PWR_UP = 1 , CRC 2bytes, Enable CRC
                    D_bytes(2) = &H0E
                    Call W_register(2)
                  Return
                  من با این کد راه انداختم ولی برد آن خیلی کم است با تحقیق به این نتیجه رسیدم که بایستی دیتاریت را به پایین ترین حد آن بیاورم تا برد بیشتر شود
                  توجه نمایید که دیتاریت در فرستنده و گیرنده بایستی یک مقدار باشد

                  کد:
                  Const Rf_setup = &H06                   ' RF Setup "( Settings) address"
                  D_bytes(1) = Write_reg + Rf_setup            ' Setting the RF -> output power of 0 dBm , datarate 2 Mbit / s and the LNA gain on
                  چون خیلی سرم شلوغ بود نتوانستم بیشتر روی آن کار بکنم فقط اگه اینکار را بکنید حرف ندارد

                  ================================================== ===============================


                  با سلام دوباره مسئله 'Rf Setup' هم حل شد که میتوانید در پست زیر ملاحظه بفرمایید

                  http://www.eca.ir/forum2/index.php?t...1345#msg671345

                  سلام من این برنامه گرفتم و ماژول براحتی راه افتاد
                  فقط یک سوال داشتم: چطوری یک کارکتر مثل "Ali" بفرستم؟ oo:
                  من با بسکام کد می نویسم

                  دیدگاه


                    پاسخ : راه اندازی ماژول +nRF24L01

                    سلام
                    من این ماژول رو راه اندازی کردم و چند بایت رو میفرستم باهاش اما یه مشکلی دارم
                    یه برنامه تست نوشتم که روی دوتا ماژول همون رو ریختم. چندتا عدد رو هر 200 میلی ثانیه تغییرش میدم و میفرستم ، بعد از ارسال ماژول در حالت گیرنده قرار میدم یعنی بیت 0 رجیستر CONFIG رو 1 میکنم. مشکل اینجاست که تا حدود 10 15 دقیقه خوب کار میکنه و هر دو طرف مقادیر رو میفرستن و میگیرن اما بعد از این مدت یکدفعه دیگه داده ای دریافت نمیشه و فقط داده رو میفرسته که بعد از یه مدت دیگه حتی ارسال هم نمیکنه!! به نظرتون مال چی میتونه باشه؟
                    زمانی هم که اینطوری میشه دیگه با ریست کردن میکرو و کنفیگ کردن دوباره ماژول این مشکل حل نمیشه و فقط باید خاموش روشنش کرد
                    و یه سوال وقتی دیتا رو از بافر میخونیم خود بافر خالی میشه یا باید خالیش کنیم؟

                    اضافه شده در تاریخ :
                    درست شد

                    غیر از وقفه دریافت، fifo گیرنده رو چک کردم و اگه پر بود اون رو خوندم و خالی کردم چون حدس زدم که ممکنه بخاطر دستورات خاصی که توی برنامه دارم بعضی مواقع برنامه وارد وقفه نشه و بافر پر بشه
                    بعد از خوندن بافر هم اونو خالی کردم
                    AYRIC

                    دیدگاه


                      پاسخ : راه اندازی ماژول +nRF24L01

                      من 43 صفحه خوندم . تعداد زیادی لینک دنبال کردم و کلی از وقتم گرفته شد . ( که البته مطالب بسیار خوبی هم یاد گرفتم ) ممون از همه دوستان

                      برای اینکه دوستانی که تازه با این ماژول آشنا میشن مثل من وقت زیادی از دست ندن خلاصه این 43 صفحه رو بصورت pdf میزارم برای دانلود . یک فایل pdf دیگه هم همراهش داره که از آقای ایمان باقری هست.
                      البته اینو هم بگم که مطالبی که خلاصه کردم به هیچ وجه ویرایش نشده طوری که حتی شکلک ها هم توی pdf اومده .راستش از اول هدفم ایجاد یک خلاصه برای خودم بود اما دیدم بهتره که بزارمش برای دوستان . شاید بکار اونها هم بیاد . چون میدونم خوندن 43 صفحه 25 پستی یعنی چی :cry:
                      اگر مطلبی توی این pdf ناقص بود و فقط در حد اشاره بود کافیه کلمات کلیدیشو توی همین انجمن جستجو کنید به صفحه مورد نظر با توضیحات احتمالا" بیشتر میرسید
                      لینک دانلود :
                      http://s3.picofile.com/file/8215406384/kholase_43_safhe.rar.html

                      دیدگاه


                        پاسخ : راه اندازی ماژول +nRF24L01

                        سلام دوستان کسی راجع به pipeline اطلاعی داره؟
                        من میخوام چندین فرستنده و یک گیرنده داشته باشم و دما رو جمع اوری کنم از مثلا 10 نقطه یا بیشتر...
                        چطور باید اینکارو انجام بدم؟
                        با تشکر

                        دیدگاه


                          پاسخ : راه اندازی ماژول +nRF24L01

                          اگه دقت کرده باشید اگه فرستنده یا گیرنده در حین کار ریست بشند دیگه نمیتونند هم را پیدا کنند مگه اینکه برق nrf قطع و وصل بشه.
                          حالا اگه میخواید که این اتفاق نیوفته یعنی بعد از اینکه میکرو دوباره شروع به کار کرد ارتباط از سر گرفته بشه اول تابع nrf_config این چند خط را اضافه کنید.
                          کد:
                          ////on reset clear:    
                            Command_Reg = 0x7E;//7E-->01111110 -->clearing all flags
                            Set_Reg(0x27);//writing on status register   
                            Set_Reg(FLUSH_TX);//clearring all of tx FIFO   
                            Set_Reg(FLUSH_RX);//clearring all of tx FIFO     
                          ////////////////////////////////////////////////////////////////////
                          همچنین دستور فعال کردن وقفه سراسری را هم ببرید آخر تابع.
                          کد:
                            // Global enable interrupts
                            #asm("sei")
                          آیا جهالت نیست که آدمی ساعات شیرین امروز را فدای روزهای آینده کند؟

                          دیدگاه


                            پاسخ : راه اندازی ماژول +nRF24L01

                            اینم یه تابع برای اینکه از حالت فرستنده به گیرنده و بلعکس سوییچ کنید.
                            کد:
                            void set_direct(unsigned char mode)
                            {
                              CE=0;
                              Opr_Mode = mode;
                              Command_Reg = 0x7E;//7E-->01111110 -->clearing all flags
                              Set_Reg(0x27);//writing on status register     
                              Set_Reg(FLUSH_RX);//clearring all of tx FIFO 
                              Set_Reg(FLUSH_TX);//clearring all of tx FIFO 
                              if(mode==0)
                              {     
                                Command_Reg = 0x4E;
                                Set_Reg(W_REGISTER);  
                                send_actived = 1;
                              }
                              else
                              {
                                Command_Reg = 0x3F;
                                Set_Reg(W_REGISTER);  
                                CE = 1;
                              } 
                            }
                            آیا جهالت نیست که آدمی ساعات شیرین امروز را فدای روزهای آینده کند؟

                            دیدگاه


                              پاسخ : راه اندازی ماژول +nRF24L01

                              با سلام و عرض خسته نباشید خدمت اساتید محترم .
                              من "ماژول +NRF24L01 دو چیپ تقویت شده با برد 1000 متر" را از آدرس زیر خریداری کرده ام . ولی نمی دانم پایه های آن به چه صورتی هست؟ بر روی pcb آن هم چیزی ننوشته است. شرکت eca هم جوابی نمی دهد oo:! لطفا در صورت اطلاع از اسم پایه های این ماژول و ترتیب آنها، لطفا نام و ترتیب آنها را بیان بفرمایید.
                              با تشکر.

                              http://eshop.eca.ir/%D9%85%D8%A7%DA%98%D9%88%D9%84-%D9%87%D8%A7%DB%8C-ism-band/4397-%D9%85%D8%A7%DA%98%D9%88%D9%84-nrf24l01-%D8%AF%D9%88-%DA%86%DB%8C%D9%BE-%D8%AA%D9%82%D9%88%DB%8C%D8%AA-%D8%B4%D8%AF%D9%87-%D8%A8%D8%A7-%D8%A8%D8%B1%D8%AF-1000-%D9%85%D8%AA%D8%B1.html

                              دیدگاه


                                پاسخ : راه اندازی ماژول +nRF24L01

                                با سلام
                                پایه هاش مثل NRF24L01تقویت نشده است

                                دیدگاه

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