اطلاعیه

Collapse
No announcement yet.

ماژول rf01d

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

    ماژول rf01d

    سلام
    من این برنامه رو برای راه اندازی rf01d نوشتم ولی کار نمیکنه.میتونید راهنمایی کنید
    توضیح:کد سه عدد کارت (اعداد روی کارتها) با مقدار کارت خوانده شده مقایسه میشود و اگر درست بود پین متناظر روشن میشه
    کد:
    $regfile = "m8def.dat"
    $crystal = 8000000
    $baud = 9600
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Dim A As Word : A = 0
    Dim R As String * 20
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Config Portd.5 = Output
    Config Portd.6 = Output
    Config Portd.7 = Output
    Config Portb.0 = Output
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    On Urxc Serial_int
    Enable Urxc
    Enable Interrupts
    Declare Sub Hami
    
    Do
      If Portd.5 = 1 And Portd.6 = 1 And Portd.7 = 1 Then
      Set Portb.0
    
      End If
      Waitms 50
      A = A + 1
      If A = 500 Then
      Call Hami
      End If
    Loop
    
    End
    
    Serial_int:
    
    Input R
    Waitms 50
    
    If R = 0001235976 Then
    Set Portd.5
    End If
    
    If R = 0001235971 Then
    Set Portd.6
    End If
    
    If R = 0001236007 Then
    Set Portd.7
    End If
    
    Return
    
    Sub Hami
    Reset Portb.0
    Reset Portd.5
    Reset Portd.6
    Reset Portd.7
    A = 0
    End Sub
    جدیدترین ویرایش توسط اشکان غفارزاده; ۰۴:۱۵ ۱۳۹۵/۰۵/۳۱.

    #2
    پاسخ : ماژول rf01d

    سلام این برنامه که قرار می دم به این صورت عمل می کنه که به محض نزدیک شدن تگ به ماژول اون رو می حونه و در متغییر 10 کارکتری Card قرار میده و شما می تونی با توجه به اون اعمال مورد نظرت رو انجام بد فقط دقت کن که پایه 6 ماژول به زمین پایه 7 به VCC متصل بشه
    کد:
    [LEFT]
    
    
    $regfile = "M8def.dat"
    $crystal = 1000000
    $baud = 9600
    Enable Interrupts
    '-------------------------------------------------------------------------------
    Dim Start_flag As Bit , Read_completed As Bit : Read_completed = 0
    Dim Shr_reading As Byte , Shr_reading2 As Byte , Ss(15) As Byte
    Dim Lcard As Long
    Dim Chex As String * 6 , Card As String * 10
    On Urxc Reading_card
    Enable Urxc
    '===============================================================================
    Main:
    Do
    
    'Your code here
    
    Loop
    End
    '===============================================================================
    Reading_card:
    Dim Usart_data As Byte
    Usart_data = Udr
    
    If Usart_data = &H02 Then Start_flag = 1
    
    If Start_flag = 1 And Shr_reading <= 15 Then
    Ss(shr_reading) = Usart_data
    Incr Shr_reading
    End If
    
    If Usart_data = &H03 Then
    Disable Urxc
    Start_flag = 0
    
    Shr_reading = 1
    For Shr_reading2 = 6 To 11
    Mid(chex , Shr_reading , 1) = Chr(ss(shr_reading2))
    Incr Shr_reading
    Next
    Lcard = Hexval(chex)
    Card = Str(lcard)
    Card = Format(card , "0000000000")
    'Print Card
    Shr_reading = 1
    Read_completed = 1
    
    Enable Urxc
    End If
    
    Return
    '-------------------------------------------------------------------------------
    
    [/LEFT]
    جدیدترین ویرایش توسط اشکان غفارزاده; ۰۴:۱۶ ۱۳۹۵/۰۵/۳۱.

    دیدگاه


      #3
      پاسخ : ماژول rf01d

      کد:
      $regfile = "M8def.dat"
      $crystal = 8000000
      $baud = 9600
      Enable Interrupts
      '-------------------------------------------------------------------------------
      Dim Start_flag As Bit , Read_completed As Bit : Read_completed = 0
      Dim Shr_reading As Byte , Shr_reading2 As Byte , Ss(15) As Byte
      Dim Lcard As Long
      Dim Chex As String * 6 , Card As String * 10
      Dim H As Word
      H = 0
      On Urxc Reading_card
      Enable Urxc
      Config Timer0 = Timer , Prescale = 1024
      Enable Timer0
      On Ovf0 Sarriz
      
      '===============================================================================
      Config Pinb.1 = Output
      Config Pinb.2 = Output
      Config Pinb.3 = Output
      Config Pinb.5 = Output
      Config Pinb.4 = Output
      '---------------------------------------
      Main:
      Do
       Start Timer0
      
       Select Case Card
      Case "0001236007" :
             Set Portb.1
      
      Case "0001263107" :
             Set Portb.2
      
      Case "0001166477" :
            Set Portb.3
      
         End Select
      
      If Portb.1 = 1 And Portb.2 = 1 And Portb.3 = 1 Then
      Stop Timer0
      Waitms 300
      Set Portb.5
      Set Portb.4
      Waitms 300
      Reset Portb.1
      Reset Portb.2
      Reset Portb.3
      Wait 90
      Reset Portb.5
      Reset Portb.4
      End If
      
      Loop
      End
      '---------------------------
      Sarriz:
        Incr H
      If H = 900 Then
        Reset Portb.1
        Reset Portb.2
        Reset Portb.3
        H = 0
        End If
      Return
      '===============================================================================
      Reading_card:
      Stop Timer0
      Dim Usart_data As Byte
      Usart_data = Udr
      
      If Usart_data = &H02 Then Start_flag = 1
      
      If Start_flag = 1 And Shr_reading <= 15 Then
      Ss(shr_reading) = Usart_data
      Incr Shr_reading
      End If
      
      If Usart_data = &H03 Then
      Disable Urxc
      Start_flag = 0
      
      Shr_reading = 1
      For Shr_reading2 = 6 To 11
      Mid(chex , Shr_reading , 1) = Chr(ss(shr_reading2))
      Incr Shr_reading
      Next
      Lcard = Hexval(chex)
      Card = Str(lcard)
      Card = Format(card , "0000000000")
      'Print Card
      Shr_reading = 1
      Read_completed = 1
      
      Enable Urxc
      End If
      
      Return
      '--------
      مشکل این برنامه چیه؟
      توضیح:کد سه عدد کارت (اعداد روی کارتها) با مقدار کارت خوانده شده مقایسه میشود و اگر درست بود پین متناظر روشن میشه
      برنامه درست کار میکنه ولی بعضی وقتا انگار میکرو هنگ میکنه هیچ چراغی روشن نمیشه و باید تغذیه رو قطع کنم تا دوباره مدار کار کنه

      دیدگاه


        #4
        پاسخ : ماژول rf01d

        سلام. به این صفحه در سایت آپارات مراجعه کن. آموزش کامل RFID به همراه فایل های بسکام و امکان ذخیره تگ قرار داده شده است.


        STM32 واقعا یه چیز دیگه است...

        دیدگاه


          #5
          پاسخ : ماژول rf01d

          برنامه درست عمل مبکنه
          مشکل اینه که وقتی تغذیه رو روشن میکنم (در صورتی که سیم مثبت و منفی تغذیه به مدار وصله ) و کارت ها رو نزدیک ماژول میکنم هیچ اتفاقی نمی افته
          اما اگه یک لحظه سیم مثبت تغذیه رو جدا کنم و دوباره وصل کنم مدار کار میکنه
          وقتی سیم مثبت و منفی تغذیه به مدار وصله و تغذیه رو خاموش و روشن میکنم مدار کار نمیکنه
          دیونه شدم
          مگه فرقی داره ک اول تغذیه رو روشن کنم و بعد سیم های تغذیه رو به مدار بزنم یا اینکه سیمهای تغذیه رو به مدار برنم بعد تغذیه رو روشن کنم

          دیدگاه


            #6
            پاسخ : ماژول rf01d

            از جذابیت های الکترونیکه دیگه
            منبع تغذیتون از این درست حسابیاست ؟ یا از این دست سازها ؟

            دیدگاه


              #7
              پاسخ : ماژول rf01d

              با چند نوع منبع امتحان کردم
              منبع تغذیه درست و حسابیه
              آخرش مجبور شدم ی تایمر و ی رله بزارم اول ک برق رو وصل میکنم رله شروع به شمارش میکنه و بعد از چند ثانیه همزمان مثبت و منفی مدار رو وصل میکنه
              یعنی اول تغذیه روشن میشه بعد مدار وصل میشه

              دیدگاه


                #8
                پاسخ : ماژول rf01d

                نوشته اصلی توسط hamid.ch نمایش پست ها
                برنامه درست عمل مبکنه
                مشکل اینه که وقتی تغذیه رو روشن میکنم (در صورتی که سیم مثبت و منفی تغذیه به مدار وصله ) و کارت ها رو نزدیک ماژول میکنم هیچ اتفاقی نمی افته
                اما اگه یک لحظه سیم مثبت تغذیه رو جدا کنم و دوباره وصل کنم مدار کار میکنه
                وقتی سیم مثبت و منفی تغذیه به مدار وصله و تغذیه رو خاموش و روشن میکنم مدار کار نمیکنه
                دیونه شدم
                مگه فرقی داره ک اول تغذیه رو روشن کنم و بعد سیم های تغذیه رو به مدار بزنم یا اینکه سیمهای تغذیه رو به مدار برنم بعد تغذیه رو روشن کنم
                سلام. معمولا این مشکل در زمستان (به دلیل کاهش رطوبت و افزایش میزان الکتریسیته ساکن) بیشتر پیش میاد. شما برای رفع مشکل فکر کنم بهتره در مسیر ورودی تغذیه از خازن های الکترولیت با ظرفیت بالا (مثلا 16 ولت - 1000 میکرو) و خازن عدسی یا مولتی لایر 104 استفاده کن. همچنین اگر برات امکان داره تغذیه رو از رگولاتور LM2576 تامین کن. مشکل تا حد زیادی مرتفع میشه. مقاومت پول آپ بر روی خط دیتای TX ماژول فراموش نشود!
                STM32 واقعا یه چیز دیگه است...

                دیدگاه


                  #9
                  پاسخ : ماژول rf01d

                  مقاومت پول آپ گذاشتم
                  با تغذیه 7805 ،2576 و منبع تغذیه آزمایشگاهی امتحان کردم بیفایده بود،خازن هم گذاشتم 1000 میکرو25 ولت نشد

                  دیدگاه

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