صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از 1 به 10 از 13

موضوع: سوال در مورد برنامه گیرنده فرستنده مادون قرمز

  1. #1
    کاربر عادی hamed_avr آواتار ها
    تاریخ عضویت
    May 2014
    نوشته ها
    77
    تشکر
    15
    تشکر شده 20 بار در 17 پست

    سوال در مورد برنامه گیرنده فرستنده مادون قرمز

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

    کد:
    $regfile = "m8def.dat"
    $crystal = 4000000
    $lib "mcsbyte.lbx"
    Config Portd = Input
    Config Portb.1 = Output
    Dim Togbit As Byte , Command As Byte , Address As Byte
    Enable Interrupts
    Togbit = 0
    Address = 0
    Command = 0
    Strl:
    Do
    If Pind.0 = 1 Then Command = 1
    If Pind.1 = 1 Then Command = 3
    If Pind.2 = 1 Then Command = 5
    If Pind.3 = 1 Then Command = 7
    If Pind.4 = 1 Then Command = 8
    If Pind.5 = 1 Then Command = 6
    If Pind.6 = 1 Then Command = 4
    If Pind.7 = 1 Then Command = 2
    If Command = 0 Then Goto Strl
    Rc5send Togbit , Address , Command
    Waitms 100
    Command = 0
    Loop
    End
    اینم برنامه گیرنده :
    کد:
    Dim Address As Byte , Command As Byte
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
    Cls
    Lcd "Waiting for RC5"
    Locate 2 , 1
    Lcd "Press Any Key"
    Do
    Getrc5(address , Command)
    If Address = 0 Then
    Command = Command And &B01111111
    If Command = 1 Then Toggle Portd.0
    If Command = 2 Then Toggle Portd.1
    If Command = 3 Then Toggle Portd.2
    If Command = 4 Then Toggle Portd.3
    If Command = 5 Then Toggle Portd.4
    If Command = 6 Then Toggle Portd.5
    If Command = 7 Then Toggle Portd.6
    If Command = 8 Then Toggle Portd.7
    Cls
    Lcd "Address = " ; Address
    Locate 2 , 1
    Lcd "command = " ; Command
    Waitms 1
    End If
    Loop
    End

  2. #2
    مدیریت سایت LightIran آواتار ها
    تاریخ عضویت
    Apr 2014
    نوشته ها
    1,027
    تشکر
    221
    تشکر شده 1,350 بار در 606 پست
    سلام
    عزاداری های همه دوستان مقبول خدا باشه.
    در مورد برنامه شما لزومی نداره فرستنده رو درست بکنید چون فرستنده به صورت ریموت های آماده در بازار موجود هست و شما باید از این ریموت ها در جهت نیاز خودتون استفاده کنید پس یعنی با فرستنده آماده و با رمزگشایی به برنامه نهایی برسید.
    در مورد این برنامه هم چیز خاصی نیست. برنامه اولیه که مربوط به فرستنده است.در این برنامه تعدادی کلید به پورت D وصل شدن و در واقع کلیدهای انتخاب کننده هستن . برنامه از طریق شناسایی کلید فشرده شده دیتای مربوطه رو در قالب RC5 و از پورت B1 به بیرون میده.
    برنامه گیرنده هم این دیتا رو دریافت میکنه و بر اساس اطلاعات بدست اومده نتیجه رو روی LCD نشون میده. برای درک فرمت های برنامه هم به راهنمای بسکام و دستور RC5 مراجعه کنین.
    You can if you want!Trust Me
    تنها غیرممکن غیرممکن است پس تلاش کنید!

  3. #3
    کاربر عادی hamed_avr آواتار ها
    تاریخ عضویت
    May 2014
    نوشته ها
    77
    تشکر
    15
    تشکر شده 20 بار در 17 پست
    سلام
    اول اینکه ریموت اماده فکر کنم پیدا کردنش سخت باشه چون تو نت خیلی سرچ کردم
    بعدش برای رمز گشاییش فرموده بودید نیاز به اوسیلوسکوپ هست

  4. #4
    مدیریت سایت LightIran آواتار ها
    تاریخ عضویت
    Apr 2014
    نوشته ها
    1,027
    تشکر
    221
    تشکر شده 1,350 بار در 606 پست
    ریموت آماده در بازار موجود هست ولی اون چیزی که برای فلاشر لازم هست رو نداره و البته استانداردهای ارسال دیتا به صورت مادون قرمز فقط محدود به RC5 نیست و علاوه بر درک ارسال اطلاعات از استاندارد ارسال نیز آگاه باشین
    برای رمزگشایی بهتره از لاجیک آنالیزر استفاده بشه تا اسیلوسکوپ چون اسسلوسکوپ معمولی سیگنال رو به صورت گذرا نشون میده ولی لاجیک آنالیزر امکان ذخیره و حفظ دیتا رو داره و کلا برای سیگنال دیجیتال بهتره.
    You can if you want!Trust Me
    تنها غیرممکن غیرممکن است پس تلاش کنید!

  5. #5
    کاربر عادی hamed_avr آواتار ها
    تاریخ عضویت
    May 2014
    نوشته ها
    77
    تشکر
    15
    تشکر شده 20 بار در 17 پست
    لاجیک انالیزر چی هست؟ لطفا توضیح بدبد

  6. #6
    مدیریت سایت LightIran آواتار ها
    تاریخ عضویت
    Apr 2014
    نوشته ها
    1,027
    تشکر
    221
    تشکر شده 1,350 بار در 606 پست
    وسیله ای همانند اسیلوسکوپ هست ولی عملکرد اصلیش برای سیگنال های دیجیتال هست!دارای پرابهای متعددی برای سنجش سیگنال هست و با ارتباط با کامپیوتر اطلاعات رو روی مانیتور کامپیوتر نمایش و مدیریت میشه کرد!
    You can if you want!Trust Me
    تنها غیرممکن غیرممکن است پس تلاش کنید!

  7. #7
    کاربر عادی hamed_avr آواتار ها
    تاریخ عضویت
    May 2014
    نوشته ها
    77
    تشکر
    15
    تشکر شده 20 بار در 17 پست
    با این دستگاه میشه کد های خروجی فرستنده ریموت رو شناسایی کرد؟ یعنی آدرس هر کلید و نشون میده؟

  8. #8
    مدیریت سایت LightIran آواتار ها
    تاریخ عضویت
    Apr 2014
    نوشته ها
    1,027
    تشکر
    221
    تشکر شده 1,350 بار در 606 پست
    نمیشه گفت نشون میده ولی میشه تشخیص داد. هر سیستم و استاندارد ارسال اطلاعات روند و ترتیب مربوط به خودش رو داره و مثلا در ابتدا یک عددی به عنوان شروع ارسال فرستاده میشه و پشت اون آدرس و در انتها هم دیتا میاد.
    سیستم RC5 هم دقیقا به همین صورت هست و روندی رو برای ارسال اطلاعات در بر داره. لاجیک آنالیزر حافظه برای سیگنال گذرا داره و شما میتونید سیگنال رسیده از فرستنده رو به اون اعمال کنید و سیگنال موجود رو رمزگشایی کنید. البته همه موارد نیازمند آشنایی با سیستم RC5 ، لاجیک آنالیزر و در نهایت مدار فرستنده و گیرنده داره.
    You can if you want!Trust Me
    تنها غیرممکن غیرممکن است پس تلاش کنید!

  9. #9
    کاربر عادی hamed_avr آواتار ها
    تاریخ عضویت
    May 2014
    نوشته ها
    77
    تشکر
    15
    تشکر شده 20 بار در 17 پست
    سلام
    من یه برنامه فرستنده و گیرنده رو اماده کردم
    لطف میکنید چک کنید که ببینید در عمل درست کار میکنه که بسازمش ؟
    فرستنده:
    کد:
    $regfile = "m8def.dat"
    $crystal = 4000000
    $lib "mcsbyte.lbx"
    Config Portd = Input
    Config Portb.1 = Output
    Dim Togbit As Byte , Command As Byte , Address As Byte
    Enable Interrupts
    Togbit = 0
    Address = 0
    Command = 0
    Strl:
    Do
    If Pind.0 = 1 Then Command = 1
    If Pind.1 = 1 Then Command = 3
    If Pind.2 = 1 Then Command = 5
    If Pind.3 = 1 Then Command = 7
    If Pind.4 = 1 Then Command = 8
    If Pind.5 = 1 Then Command = 6
    If Pind.6 = 1 Then Command = 4
    If Pind.7 = 1 Then Command = 2
    If Command = 0 Then Goto Strl
    Rc5send Togbit , Address , Command
    Waitms 100
    Command = 0
    Loop
    End
    گیرنده :
    کد:
    $regfile = "m8def.dat"
    $crystal = 1000000
    $lib "mcsbyte.lbx"
    Enable Interrupts
    Config Portd = Output
    Config Rc5 = Pinb.3 , Timer = 2
    Dim Address As Byte , Command As Byte
    Dim E3 As Byte
    Dim E1 As Byte
    Declare Sub Dip0
    Declare Sub Dip1
    Declare Sub Dip2
    Declare Sub Dip3
    Declare Sub Dip4
    Declare Sub Dip5
    Declare Sub Dip6
    Declare Sub Dip7
    
    Do
    Getrc5(address , Command)
    If Address = 0 Then
    Command = Command And &B01111111
    If Command = 1 Then Call Dip0
    If Command = 2 Then Call Dip1
    If Command = 3 Then Call Dip2
    If Command = 4 Then Call Dip3
    If Command = 5 Then Call Dip4
    If Command = 6 Then Call Dip5
    If Command = 7 Then Call Dip6
    If Command = 8 Then Call Dip7
    Waitms 1
    End If
    Loop
    End
    
       Sub Dip0
       For E3 = 0 To 2
       For E1 = 0 To 7
       Portd = Lookup(e1 , Efect1)
       Waitms 200
      Next
       Next
         End Sub
    
       Sub Dip1
       For E3 = 0 To 2
       For E1 = 0 To 31
       Portd = Lookup(e1 , Efect2)
       Waitms 200
       Next
         Next
          End Sub
    
    
       Sub Dip2
       For E3 = 0 To 2
       For E1 = 0 To 11
       Portd = Lookup(e1 , Efect3)
       Waitms 200
       Next
       Next
            End Sub
    
      Sub Dip3
      Portd = &B00000000
    
    
              End Sub
    
      Sub Dip4
       Portd = &B00000011
         End Sub
    
      Sub Dip5
       Portd = &B00000111
        End Sub
    
    
      Sub Dip6
      Portd = &B00011000
    
           End Sub
    
      Sub Dip7
       Portd = &B01111110
       End Sub
    
        Efect1:
        Data &B00000000
        Data &B00000011
        Data &B00000000
        Data &B00000011
        Data &B00000000
        Data &B00000011
        Data &B00000000
        Data &B00000011
        Efect2:
        Data &B00000010
        Data &B00000011
        Data &B00000010
        Data &B00000011
        Data &B00000010
        Data &B00000011
        Data &B00000010
        Data &B00000011
        Data &B00000010
        Data &B00000011
        Data &B00000010
        Data &B00000011
        Data &B00000011
        Data &B00000011
        Data &B00000011
        Data &B00000011
        Data &B00000011
        Data &B00000011
        Data &B00000011
        Data &B00000011
        Data &B00000011
        Data &B00000001
        Data &B00000011
        Data &B00000001
        Data &B00000011
        Data &B00000001
        Data &B00000011
        Data &B00000001
        Data &B00000011
        Data &B00000001
        Data &B00000011
        Data &B00000001
        Data &B00000011
        Efect3:
       Data &B00000001
       Data &B00000010
       Data &B00000001
       Data &B00000010
       Data &B00000001
       Data &B00000010
       Data &B00000001
       Data &B00000010
       Data &B00000001
       Data &B00000010
       Data &B00000001
       Data &B00000010
    البته برنامه فرستنده رو توضیح دادید. برنامه گیرنده رو یه تغییراتی دادم ولی نمیدونم در عمل مشکل داره یا نه؟

  10. #10
    مدیریت سایت LightIran آواتار ها
    تاریخ عضویت
    Apr 2014
    نوشته ها
    1,027
    تشکر
    221
    تشکر شده 1,350 بار در 606 پست
    با بررسی اجمالی که من کردم میشه گفت این برنامه به هیچ وجه کار نمیکنه!شما برنامه گیرنده رو جوری نوشتید که مدار گیرنده به طور مداوم سیگنال دریافت میکنه. در حالی که این چنین نیست و کاربر میتونه فقط یکبار کلید رو فشار بده و ریموت کنترل رو بذاره کنار!پس شما برنامه گیرنده رو یکجوری باید بنویسید که برنامه دریافت سیگنال به صورت وقفه باشه و به محض دریافت سیگنال فراخوانی بشه. بعد از فراخوانی هم مقدار کلید فشرده شده رو رمزگشایی و یک متغیر نهایی رو تغییر بده که بر اساس این متغیر برنامه فلاشر شما عمل کنه!
    You can if you want!Trust Me
    تنها غیرممکن غیرممکن است پس تلاش کنید!

  11. کاربران زیر از این پست مفید LightIran تشکر نموده اند:

    hamed_avr (11-09-2014)

صفحه 1 از 2 12 آخرینآخرین

باز و بسته کردن مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  
با کلیک بر روی 1+ ما را در گوگل محبوب کنید