اطلاعیه

Collapse
No announcement yet.

خواندن کد ریموت کنترل های مادون قرمز با AVR

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

    خواندن کد ریموت کنترل های مادون قرمز با AVR

    سلام خدمت مهندسین ،

    من می خوام برای میکروکنترلر برنامه ای بنویسم که بتونم باهاش کد ارسالی از هر ریموت کنترل مادون قرمز رو بخونم و در حافظه ذخیره کنم که بعداً توسط خود میکرو آن کد را ساخته و ارسال کنم . :nerd:

    8 سال پیش یک ساعت مچی Casio داشتم که اینکارو می کرد اینطور که کنترل تلویزیون رو جلو چشم اون می گرفتم و بعد یک دکمه انتخابی رو روی ساعتم رو فشرده نگه می داشتم حالا کد ریموت را ارسال می کردم سپس دستم رو از روی کلیدها بر می داشتم و کد ذخیره می شد و بعد می تونستم از ساعت مچی به عنوان ریموت تلویزیون استفاده کنم (همان دکمه ای که فشرده شده بود). حالا کجاشو دیدین، یک مرتبه توی یک بنگاه معاملاتی هر چی پژو اونجا بود،من کد درهاشون داشتم

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

    این کل برنامه ی خواندن مت زمان پالس های دریافتی هست :

    کد:
    $regfile = "M8def.dat"
    $crystal = 4000000
    
    Config Lcdpin = Pin , Db4 = Pinb.1 , Db5 = Pinb.2 , Db6 = Pinb.3 , _
    Db7 = Pinb.4 , Rs = Pinb.5 , E = Pinb.6
    Config Lcd = 16 * 2
    Cursor Off
    Cls
    Lcd "* ETRmodern *"
    Waitms 500
    
    Config Debounce = 10
    Config Pind.0 = Input
    
    Config Timer0 = Timer , Prescale = 256
    Stop Timer0
    Enable Interrupts
    
    Config Pind.3 = Input
    Set Portd.3
    Pin_ir Alias Pind.3
    
    Config Int1 = Falling
    On Int1 Isr_int1
    
    Dim Cnt_ir As Byte
    Dim Flag_ir_ok As Bit
    Dim I As Word
    Dim T As Byte
    Dim R As Byte
    Dim B As Word
    
    Declare Sub Flag
    Declare Sub Reg
    
    '***************************************************************
    Main:
    I = 1000
    Cnt_ir = 0
    Home
    Lcd "GET TIME REM COD"
    
    Enable Int1
    
    Do
     Debounce Pind.0 , 1 , Flag , Sub
    Loop
    
    'isr for infrared sensor
    Isr_int1:
     Timer0 = 0
     Start Timer0
     Bitwait Pin_ir , Set
     Stop Timer0
     T = Timer0
     Out I , T
     Incr I
     Incr Cnt_ir
     Set Flag_ir_ok
    Return
    
    
    End                            'end program
    '*****************************************************
    
    Sub Flag
     I = 1000
     If Flag_ir_ok = 1 Then
      Reset Flag_ir_ok
      Disable Int1
      Cls
      Lcd "BIT NUMBERS :" ; Cnt_ir ; "  "
    
      Do
       B = I - 1001
       If B = Cnt_ir Then
        Home
        Lcd "Is Final Time "
        Wait 3
        Cls
        jmp Main
       End If
       Debounce Pind.0 , 1 , Reg , Sub
      Loop
     End If
     Locate 2 , 1
     Lcd "Not Press Buttom"
     jmp Main
    End Sub Flag
    
    Sub Reg
     R = Inp(i)
     Locate 2 , 1
     Lcd "Time P" ; I ; " : " ; R ; " "
     Incr I
    End Sub Reg
    Time is jewel

    #2
    پاسخ : خواندن کد ریموت کنترل های مادون قرمز با AVR

    من برنامه رو تقریبا تکمیلش کردم

    من برنامه رو اینجوری نوشتم : با گرفتن کلید1 می تونیم کدها رو وارد میکرو کنیم و آنها را در حافظه EEPROM ذخیره می کنه

    من به ترتیب کد ها رو از خانه 15 حافظه پر می کنم اما وقتی به خانه 1000 حافظه می رسه دوباره به اول بر می گرده (با Mega32 کار می کنم) آیا واقعاً حافظه ی آی سی پر میشه ؟

    کد کامل:
    کد:
    $regfile = "M32def.dat"
    $crystal = 8000000
    
    Config Lcdpin = Pin , Db4 = Pinb.0 , Db5 = Pinb.1 , Db6 = Pinb.2 , _
     Db7 = Pinb.3 , Rs = Pinb.4 , E = Pinb.5
    Config Lcd = 16 * 2
    Cursor Off
    Cls
    Lcd "* ETRmodern  *"
    Waitms 500
    
    Config Debounce = 10
    Config Pina.0 = Input
    Config Pina.1 = Input
    Config Pina.2 = Input
    Config Pina.3 = Output
    
    Config Timer0 = Timer , Prescale = 256
    Stop Timer0
    Enable Interrupts
    Disable Int0
    
    Config Pind.2 = Input
    Set Portd.2
    Pin_ir Alias Pind.2
    
    'for Mega32 dont use : Config Int0 = Falling
    On Int0 Isr_int1
    
    Dim Num_bit As Word , I As Word , Ad As Word , C As Word , D As Word
    Dim Ad2 As Word
    Dim Num_code As Byte , N As Byte , T As Byte , R As Byte
    
    Declare Sub R_eeprom
    Declare Sub Test_key2
    
    '*******************************************************************************
    Main:
    Reset Porta.3
    Stop Timer0
    Disable Int0
    Cls : Lcd "CODE MEMORY OF " : Lowerline : Lcd "IR REM. CONTROL"
    Do
     Debounce Pina.1 , 1 , Get_code
     Debounce Pina.0 , 1 , Remember
    Loop
    
    Get_code:
     I = 501
     Readeeprom Num_code , 5                  'Code number of saved
     Waitms 4
     If Num_code = 255 Then Num_code = 0
     Incr Num_code
     Writeeeprom Num_code , 5                  'Code number of saved
     Waitms 4
     Cls : Lcd "NEW CODE " ; Num_code ; "  "
    
     Enable Int0                        '*** Enable Interupt 1
     Do
      Debounce Pina.1 , 0 , Rw_eeprom
     Loop
    
    '_____________________________
    'isr for infrared sensor
    Isr_int1:
     Timer0 = 0
     Start Timer0
     Bitwait Pin_ir , Set
     Stop Timer0
     T = Timer0
     Out I , T
     Incr I
     Toggle Porta.3
    Return
    '_____________________________
    
    Rw_eeprom:
     Reset Porta.3
     Cls : Lcd "Please Wait....."
     Lowerline : Lcd "Write in EEPROM "
    
     If Num_code = 1 Then
      D = 10
     Else
      Readeeprom D , 10                    'last home number
      Waitms 4
    
      If D > 900 Then
       Cls : Lcd "Memory is Full "
       Wait 2
       jmp Main
      End If
    
     End If
    
     Num_bit = I - 502
     C = D + 5
     D = C + Num_bit
     Writeeeprom D , 10                     'last home number
     Waitms 4
    
     I = 501
     For Ad = C To D
      R = Inp(i)
      Writeeeprom R , Ad
      Waitms 4
      Incr I
     Next Ad
    
     C = C - 2
     Writeeeprom Num_bit , C
     Waitms 4
    
    Remember:
     Reset Porta.3
     Readeeprom Num_code , 5                  'Code number of saved
     Waitms 4
     If Num_code = 255 Then
      Cls : Lcd "NOT EXIST CODE "
      Wait 1
      jmp Main
     End If
     Cls : Lcd "FOR SHOW BITS  " : Lowerline : Lcd "PRESS KEY ....."
     I = 0
     N = 0
     Do
      Debounce Pina.1 , 1 , Select_code
      Debounce Pina.2 , 1 , Main
     Loop
    
    Select_code:
     Reset Porta.3
     If N = 0 Then
      Ad = 8
      Num_bit = 0
     End If
    
     Incr N
     Ad = Ad + 5
     Ad = Ad + Num_bit
     Ad2 = Ad + 2
     Readeeprom Num_bit , Ad
     Waitms 4
    
     If Num_bit > 300 Then                   'usually Bits number are 100 Bit
      Cls : Lcd "NOT EXIST    " : Lowerline : Lcd "   AFTER CODE"
    
      If N = 1 Then
       Ad = 0
      Else
       Ad = Ad - 3
      End If
    
      Writeeeprom Ad , 10                   'last home number of saved
      Waitms 4
      Decr N
      Writeeeprom N , 5                    'N=Num_bit , Code number of saved
      Wait 1
      N = 0
      If Ad = 0 Then Jmp Main
      jmp select_code
     End If
    
     Home : Lcd "Code Number " ; N ; "  "
     Locate 2 , 1 : Lcd "BIT NUMBERS :" ; Num_bit ; "  "
    
     Do
      Debounce Pina.0 , 1 , R_eeprom , Sub
      Debounce Pina.1 , 1 , Select_code
      Debounce Pina.2 , 1 , Main
     Loop
    
    
    End                             'end program
    '*******************************************************************************
    
    
    Sub R_eeprom
     Home : Lcd "CODE " ; N ; " : " ; Num_bit ; " BIT"
     If I > Num_bit Then
      Home : Lcd "Was Final BIT  "
      Wait 1
      Cls
      jmp Main
     End If
     Readeeprom R , Ad2
     Waitms 4
     Locate 2 , 1 : Lcd "Time P" ; Ad2 ; " = " ; R ; "  "
     Incr Ad2
     Incr I
    End Sub R_eeprom
    Time is jewel

    دیدگاه


      #3
      پاسخ : خواندن کد ریموت کنترل های مادون قرمز با AVR

      سلام

      از دوستان کسی هست که پروژه ای با ریموت کنترل مادون درست کرده باشه ؟ هدفم اینه که پالهاسهای ارسالی از کنترل ها رو بخونم و بعد آن پالس ها رو درست کنم و به فرستنده بدهم در واقع می خوام کنترلهای ماون قرمز رو کپی کنم.

      اینطور عمل کردم :
      من ابتدا کد ارسالی از ریموت کنترل ها را می خونم و در حافظه ذخیره می کنم اینگونه که خروجی سنسور گیرنده مادون قرمز را به اینتراپت دادم و با آمدن وقفه بوسیله راه اندازی تایمر صفر مدت زمان پالس های 1و0 را اندازه می گیرم.
      در مرحله بعد نوبت به ساخت پالسها می رسد (مشابه پالسهایی که در خروجی سنسور گیرنده آشکار شده بود) مدت زمان پالس ها رو از حافظه بازخوانی می کنم و با پیکربندی تایمر2 مدت زمان پالس های 0 و 1 را می سازم حال همزمان یکی از پین های میکرو را 0 و1 می کنم تا پالسها تولید شوند .
      در آخر هم خروجی را به یک ترانزیستور و بعد فرستنده مادون قرمز دادم . (مطابق مداری که توی هلپ بسکام هست SENDRC5)
      این پالس هایی که تولید می شوند (در پروتئوس) تقریبا مشابه پالسهای اولیه هستند امــا در عمل اصلاً جواب نمی دهد! :angry:(با تلویزیون پارس تست کردم).


      برنامه ای که نوشتم :

      $regfile = "M32def.dat"
      $crystal = 4000000

      Config Lcdpin = Pin , Db4 = Pinb.1 , Db5 = Pinb.2 , Db6 = Pinb.4 , _
      Db7 = Pinb.5 , Rs = Pinb.6 , E = Pinb.7
      Config Lcd = 16 * 2
      Cursor Off
      Cls
      Lcd "* ETRmodern *"
      Waitms 500

      Deflcdchar 1 , 16 , 16 , 28 , 30 , 30 , 28 , 16 , 16
      Deflcdchar 2 , 24 , 4 , 18 , 9 , 9 , 18 , 4 , 24
      Deflcdchar 3 , 3 , 4 , 9 , 18 , 18 , 9 , 4 , 3
      Deflcdchar 4 , 1 , 1 , 7 , 15 , 15 , 7 , 1 , 1

      Config Debounce = 10
      Config Pina.0 = Input
      Config Pina.1 = Input
      Config Pina.2 = Input
      Config Pina.4 = Input
      Config Pina.5 = Input

      Config Pina.3 = Output
      Led Alias Porta.3

      Config Pind.2 = Input
      Set Portd.2
      Pin_ir Alias Pind.2

      Config Pind.1 = Output 'For IR Puls generator
      Puls Alias Portd.1
      Reset Puls

      Config Timer0 = Timer , Prescale = 256
      Stop Timer0
      Enable Interrupts
      Disable Int0
      On Int0 Isr_int0

      Config Timer2 = Timer , Prescale = 256
      Enable Interrupts
      Enable Timer2
      Timer2 = 0
      On Ovf2 Puls_isr
      Stop Timer2


      Dim Num_level As Word , I As Word , Ad As Word , C As Word , D As Word
      Dim Ad2 As Word
      Dim Num_code As Byte , N As Byte , T1 As Byte , T2 As Byte , R As Byte
      Dim F As Bit , Sw As Byte , G As Byte

      Declare Sub R_eeprom
      Declare Sub Send

      '******************************************** ***********************************
      Main:
      Sw = 0
      Reset Led
      Stop Timer0
      Disable Int0
      Cls
      Lcd " " ; Chr(1) ; Chr(2) ; " " ; Chr(3) ; Chr(4) ; " "
      Lowerline
      Lcd "Send & Recieve"
      Do
      Debounce Pina.1 , 1 , Get_code
      Debounce Pina.0 , 1 , Remember
      Loop

      Get_code:
      Stop Timer0
      F = 0
      I = 501
      Readeeprom Num_code , 5 'Code number of saved
      Waitms 4
      If Num_code = 255 Then Num_code = 0
      Incr Num_code
      Writeeeprom Num_code , 5 'Code number of saved
      Waitms 4
      Cls
      Lcd "NEW CODE " ; Num_code ; " "

      Enable Int0 '*** Enable Interupt 0
      Start Timer0
      Do
      Debounce Pina.1 , 0 , Rw_eeprom
      Loop

      '_____________________________
      'isr for infrared sensor
      Isr_int0:
      Stop Timer0

      If F = 1 Then
      T2 = Timer0
      Out I , T2
      F = 0
      Incr I
      End If

      Timer0 = 0
      Start Timer0

      Bitwait Pin_ir , Set
      Stop Timer0
      T1 = Timer0

      Timer0 = 0
      Start Timer0

      If F = 0 Then
      Out I , T1
      F = 1
      Incr I
      End If

      Toggle Led
      Return
      '_____________________________

      Rw_eeprom:
      Disable Int0
      Stop Timer0
      Reset Led
      Cls : Lcd "Please Wait....."
      Lowerline : Lcd "Write in EEPROM "

      If Num_code = 1 Then
      D = 10
      Else
      Readeeprom D , 10 'last home number
      Waitms 4

      If D > 900 Then
      Cls : Lcd "Memory is Full "
      Wait 2
      jmp Main
      End If

      End If

      Num_level = I - 501
      C = D + 5
      D = C + Num_level
      Writeeeprom D , 10 'last home number
      Waitms 4

      I = 501
      For Ad = C To D
      R = Inp(i)
      Writeeeprom R , Ad
      Waitms 4
      Incr I
      Next Ad

      C = C - 2
      Writeeeprom Num_level , C
      Waitms 4

      Remember:
      Reset Led
      Readeeprom Num_code , 5 'Code number of saved
      Waitms 4
      If Num_code = 255 Then
      Cls : Lcd "NOT EXIST CODE "
      Wait 1
      jmp Main
      End If
      Cls : Lcd "FOR SHOW LEVELS " : Lowerline : Lcd "PRESS KEY ....."
      I = 0
      N = 0
      Sw = 0
      Do
      Reset Porta.3
      Debounce Pina.1 , 1 , Select_code
      Debounce Pina.2 , 1 , Main
      Loop

      Select_code:
      Sw = 1
      Reset Led
      If N = 0 Then
      Ad = 8
      Num_level = 0
      End If

      Incr N
      Ad = Ad + 5
      Ad = Ad + Num_level
      Ad2 = Ad + 2
      Readeeprom Num_level , Ad
      Waitms 4

      If Num_level > 1500 Then 'usually Bits number are 100 Bit
      Cls : Lcd "NOT EXIST " : Lowerline : Lcd " AFTER CODE"

      If N = 1 Then
      Ad = 0
      Else
      Ad = Ad - 3
      End If

      Writeeeprom Ad , 10
      Waitms 4
      Decr N
      Writeeeprom N , 5
      Wait 1
      N = 0
      If Ad = 0 Then Jmp Main
      jmp select_code
      End If

      Home : Lcd "Code Number " ; N ; " "
      Locate 2 , 1 : Lcd "Level NUM :" ; Num_level ; " "

      Key:
      Reset Led
      Reset Puls
      Do
      Debounce Pina.0 , 1 , R_eeprom , Sub
      Debounce Pina.1 , 1 , Select_code
      Debounce Pina.2 , 1 , Main
      Debounce Pina.4 , 1 , Send , Sub
      Debounce Pina.5 , 1 , Delet
      Loop
      '>>>>>>>>>>> >>>>>>>>>>>>&g t;>>>>>>>>>>>> >>>>

      Puls_generat:
      F = 0
      Start Timer2
      Do
      If F = 1 Then
      Stop Timer2
      Reset Puls
      Goto Key
      End If
      Loop

      Puls_isr:
      Stop Timer2
      Toggle Puls
      Incr I
      C = I - 500
      If C = D Then
      F = 1
      End If
      R = Inp(i)
      R = 256 - R
      Timer2 = R
      Start Timer2
      Return

      Delet:
      Num_code = 255
      Writeeeprom Num_code , 5
      Waitms 4
      Cls : Lcd "DELET MEMORY ..."
      Wait 1
      jmp main


      End 'end program
      '******************************************** ********************


      Sub R_eeprom
      Sw = 0
      Reset Led
      Home : Lcd "CODE" ; N ; " :" ; Num_level ; " Level"
      If I > Num_level Then
      Home : Lcd "Was Final LEVEL "
      Wait 1
      jmp Main
      End If
      Readeeprom R , Ad2
      Waitms 4
      Locate 2 , 1 : Lcd "Time P" ; Ad2 ; " = " ; R ; " "
      Incr Ad2
      Incr I
      End Sub R_eeprom

      '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

      Sub Send
      D = Ad2 + Num_level
      Select Case Sw
      Case 0:
      Jmp Select_code
      Case 1:
      Reset Led
      Cls : Lcd "CODE : " ; N ; " "
      Lowerline : Lcd "Please wait ...."
      I = 500
      For Ad = Ad2 To D
      Incr I
      Readeeprom R , Ad
      Waitms 4
      Out I , R
      Next Ad
      Sw = 2
      Cls : Lcd "Press Key ......"
      Case 2:
      I = 500
      jmp puls_generat
      End Select

      End Sub Send


      آیا این روش من برای درست کردن پالسهای مادون قرمز کلاً اشتباه است ؟ !
      آیا این روش من ربطی هم به سیگنال کریر 38 و 36 کیلوهرتز دارد ؟ (یعنی من باید پالسها رو روی کریر 36 کیلوهرتز سوار کنم ؟)

      لطفاً کمکم کنید :cry2:
      Time is jewel

      دیدگاه


        #4
        پاسخ : خواندن کد ریموت کنترل های مادون قرمز با AVR

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

        منم میخواستم 206 ..... :mrgreen:

        یه گیرنده قوی پیدا کردم 2319 بردش عالی بود

        اگه مایل باشی با هم دنبال کنیم

        دیدگاه


          #5
          پاسخ : خواندن کد ریموت کنترل های مادون قرمز با AVR

          مادون قرمز واقعا چیز مزخرفیه. به قول یکی از دوستان هر چیزی که لازم باشه از تو هوا رد بشه دردسر درست می کنه. چه امواج الکترومغناطیس باشه و یا نور و مادون باشه.

          پیشنهادهایی براتون دارم که می تونه کارتون رو راحت کنه.

          LED ها همیشه با جریان کار می کنند نه ولتاژ. پس سعی نکنید که با ولتاژ زیاد قدرت و بردشون رو بیشتر کنید.

          همیشه برای این پروژه یک دوربین فیلمبرداری مثل دوربین موبایل همراه داشته باشید تا از روشن شدن LED مادون مطمئن بشید. با این دوربینها میشه دید که روشن هست یا خاموش.

          مقادیر مقاومتها بسیار بسیار بسیار مهم می باشد. همه رنج مقاومتها را امتحان کنید.

          همیشه یک فرکانس متر همراهتان داشته باشید.

          فاز ارسال و دریافت را فراموش نکنید.

          پی نوشت : نقشه مداری که من طراحی کردم گم شده ولی گیرنده رو با امیتر مشترک و دوطبقه ببندید و ترانزیستور طبقه دوم باید از نوع مثبت باشه.
          دلا یاران سه قسمند ار بدانی
          زبانی اند و نانی اند و جانی
          به نانی نان بده از در برانش
          محبت کن به یاران زبانی
          و لیکن یار جانی را به دست آر
          به جانش جان بده تا می توانی

          دیدگاه


            #6
            پاسخ : خواندن کد ریموت کنترل های مادون قرمز با AVR

            بله حتما روی کاریر سوار میشه اگه مستقیم ازنور استفاده بشه هر چیزی روی اون تاثیر میزاره
            بعدا یه جمله قشنگ مینویسم

            دیدگاه


              #7
              پاسخ : خواندن کد ریموت کنترل های مادون قرمز با AVR

              سلام.

              دوستان من یه فرستنده و گیرنده گرفتم در فرستنده که مشکلی نیست ولی گیرنده ای که گرفتم 3 پایه هستش و بدنه فلزی داره و پشتش8315 نوشته در ضمن از جهان کیت گرفتم کسی تابه حال با این گیرنه کار کرده....؟ من دیتا شیتشو میخوام اگه کسی داره ممنونش میشیم.


              راستی یه سوال دیگه / کسی با PT2262 , PT2272 M6 کار کرده؟


              www.icesi.ir

              دیدگاه


                #8
                پاسخ : خواندن کد ریموت کنترل های مادون قرمز با AVR

                سلام

                راستی یه سوال دیگه / کسی با PT2262 , PT2272 M6 کار کرده؟
                من برای یه ماژول فرستنده گیرنده رادیویی ازشون استفاده کردم
                از سایت www.yazdkit.com با هاشون آشنا شدم
                شما هم همونجا می تونید نحوه کار باهاشون رو ببینید.

                این هم آدرس این مطلب :
                http://www.yazdkit.com/article-98--0-0.html

                دیدگاه


                  #9
                  پاسخ : خواندن کد ریموت کنترل های مادون قرمز با AVR

                  نوشته اصلی توسط علیرضا کجوری
                  سلام

                  راستی یه سوال دیگه / کسی با PT2262 , PT2272 M6 کار کرده؟
                  من برای یه ماژول فرستنده گیرنده رادیویی ازشون استفاده کردم
                  از سایت www.yazdkit.com با هاشون آشنا شدم
                  شما هم همونجا می تونید نحوه کار باهاشون رو ببینید.

                  این هم آدرس این مطلب :
                  http://www.yazdkit.com/article-98--0-0.html
                  خیلی ممنون.

                  کسی دیتا شیت رو نداره؟ گیرنده رو میگم.

                  نوشته اصلی توسط میلاد موسوی
                  سلام.

                  دوستان من یه فرستنده و گیرنده گرفتم در فرستنده که مشکلی نیست ولی گیرنده ای که گرفتم 3 پایه هستش و بدنه فلزی داره و پشتش8315 نوشته در ضمن از جهان کیت گرفتم کسی تابه حال با این گیرنه کار کرده....؟ من دیتا شیتشو میخوام اگه کسی داره ممنونش میشیم.
                  www.icesi.ir

                  دیدگاه


                    #10
                    پاسخ : خواندن کد ریموت کنترل های مادون قرمز با AVR

                    چیزی که خریدی فکر کنم سنسور نظامیه
                    با برد 30 متر
                    وقتی از جلو بهش نگاه کنی
                    سمت راست vcc=5
                    وسط gnd
                    سمت چپ خروجی
                    علم چندانکه بيشتر خواني چون عمل در تو نيست ناداني

                    دیدگاه


                      #11
                      پاسخ : خواندن کد ریموت کنترل های مادون قرمز با AVR

                      ممنون.

                      اینطوری وصل کردم ولی خورجیش به طور کامل 0 و 1 نمیشه.
                      www.icesi.ir

                      دیدگاه


                        #12
                        پاسخ : خواندن کد ریموت کنترل های مادون قرمز با AVR

                        vccرو pull upکن با 22k
                        و یه 100ufهم وصل کن
                        علم چندانکه بيشتر خواني چون عمل در تو نيست ناداني

                        دیدگاه


                          #13
                          پاسخ : خواندن کد ریموت کنترل های مادون قرمز با AVR

                          من هفته پیش جواب گرفتم با دو تا کلید حالا همون برنامه رو کردم با 4 تا کلید دیگه کار نمیکنه.

                          برنامه فرستنده :

                          $regfile = "m8def.dat"
                          $crystal = 1000000
                          Config Portd = Input
                          Config Debounce = 30
                          Dim Togbit As Byte , Command As Byte , Address As Byte

                          Togbit = 0
                          Address = 5
                          Address = 0
                          Milad:
                          Do
                          Debounce Pind.1 , 0 , Bala
                          Debounce Pind.2 , 0 , Paeen
                          Debounce Pind.3 , 0 , Rast
                          Debounce Pind.0 , 0 , Chap
                          Loop
                          End

                          Bala:
                          Waitms 500
                          Command = 1
                          Rc5send Togbit , Address , Command
                          jmp milad
                          Paeen:
                          Waitms 500
                          Command = 6
                          Rc5send Togbit , Address , Command
                          jmp milad
                          Chap:
                          Waitms 500
                          Command = 9
                          Rc5send Togbit , Address , Command
                          jmp milad
                          Rast:
                          Waitms 500
                          Command = 16
                          Rc5send Togbit , Address , Command
                          jmp milad

                          گیرنده:

                          $regfile = "m8def.dat"
                          $crystal = 1000000

                          Dim Address As Byte , Command As Byte

                          Config Rc5 = Pind.2
                          Config Portb = Output
                          Enable Interrupts

                          Do
                          Getrc5(address , Command)


                          If Address = 5 Then

                          Command = Command And &B01111111

                          If Command = 1 Then Portb = 1
                          If Command = 6 Then Portb = 2
                          If Command = 9 Then Portb = 4
                          If Command = 16 Then Portb = 8



                          End If

                          Loop

                          End

                          نوشته اصلی توسط khast khodaiebehnam
                          vccرو pull upکن با 22k
                          و یه 100ufهم وصل کن
                          100UF رو بین vcc, gnd وصل کنم؟
                          www.icesi.ir

                          دیدگاه


                            #14
                            پاسخ : خواندن کد ریموت کنترل های مادون قرمز با AVR

                            میشه چیزیو که شماتیک دارین کامل بزاری؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
                            علم چندانکه بيشتر خواني چون عمل در تو نيست ناداني

                            دیدگاه


                              #15
                              پاسخ : خواندن کد ریموت کنترل های مادون قرمز با AVR

                              سلام.
                              شماتیکم چیزه خاصی نیست.همون مدار هایی هستش که توی Help خود بیسکامه.
                              تو فرستنده به جای دیود مادون قرمز یه led میزارم با هر فشار دادن کلید ها روشن و خاموش میشه(به نظرم فکر کنم فرستنده درست باشه.)
                              www.icesi.ir

                              دیدگاه

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