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

در بیشتر سیستم ها این علاقه وجود دارد که کلیه فرمانها و تنظیمات را بتوان توسط یک کنترل کننده از راه دور انجام داد. در این صورت باید از فرستنده و گیرنده ای که طبق یک پروتکل اطلاعات را رد و بدل می کند استفاده کرد. ارتباط می تواند به صورت امواج مادون قرمز یا بی سیم و یا رادیویی و یا … باشد. یکی از کانال های آسان و کم خرج امواج مادون قرمزاست که بیشتر کنترل کننده های خانگی نیز این نوع ارتباطی را انتخاب می کنند. پروتکل هایی که در این نوع ارتباطی به کار می رود از جمله 5RC و 6RC و یا همچنین مدولاسیون منچستر است. بیشتر کنترل کننده های تلویزیون پروتکل 5RC را پشتیبانی می کنند. دراین نوع پروتکل 14 بیت در هنگام فشرده شدن هر کلید ارسال می شود. دو بیت اول بیت شروع هستند که همیشه یک هستند. بیت بعدی بیت کنترل یا تاگل است که با زدن هر کلید معکوس می شود. پنج بیت بعدی بیت آدرس هستند. شش بیت بعدی بیت های فرمان هستند.بیت ها در دو فاز کد شده و ارسال می شود. حال می توان با داشتن فرکانس ارسال و ایجاد یک تاخیر جهت نمونه برداری این اطلاعات را آشکار کرد. به طور مثال اگر از یک میکروکنترلر استفاده میکنید می توانید با پیکره بندی یکی از تایمرها تاخیر ایجاد کنید و بیت ها مشخص کنید. آشکار کردن این بیت ها چندان کار سختی نیست ولی اگر شما از میکروکنترلر های سری AVR  و همچنین از کامپایلر قدرتمند بسکام استفاده می کنید میتوانید از دستورات ساده آن جهت به دست آوردن اطلاعات بهره ببرید. ضمیمه این فایل اطلاعات مورد نیاز جهت بستن مدار و برنامه موجود است. با دستور زیر به راحتی میتوان فرمان را دریافت Getrc5(address , Command) کرد . مدار زیر قسمت گیرنده می باشد.

مطلب پیشنهادی:  پروژه ساعت دماسنج تاریخ با 7SEG
قسمت گیرنده

 

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

در این سیستم هدف راه اندازی موتوردی سی توسط کنترل تلویزیون است. به این صورت که سیستم ابتدا از شما رمز را در خواست میکند و در صورت صحیح بودن می توانید چپ گرد یا راست گرد یا ایست و حتی سرعت را کنترل کنید. جهت راه اندازی موتور از      آی سی 293L استفاده شده است. مدار زیر نیز بخش راه انداز موتور است.

 

آی سی 293L
آی سی 293L

همان طور که مشاهده میکنید این راه انداز توانایی درایو همزمان سه موتور دی سی را دارد.

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

حالات موتور
حالات موتور

 

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

کنترلر سیستم
کنترلر سیستم

کد :

$regfile = "M32def.dat"
$crystal = 1000000
Config Lcdpin = Pin , Db4 = Portd.7 , Db5 = Portc.0 , Db6 = Portc.1 , Db7 = Portc.2 , Rs = Portd.0 , E = Portd.1
Config Lcd = 16 * 2
Cls
Cursor Off
Config Rc5 = Pind.4
Config Portd.3 = Output
Config Portd.2 = Output
Enable Interrupts
Dim Address As Byte , Command As Byte , Count As Byte
Dim Lock As Bit
Dim Fuse As Bit
Dim Enter As String * 3
Dim Key As String * 1
Dim Password As String * 3
Dim Speed As Word
Declare Sub Play()
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Prescale = 1
Count = 0
Lock = 0
Home
Lcd "Enter password:"
Cursor On , Blink
Locate 2 , 1
Pwm1a = 1000
'*********************************************
Do
Getrc5(address , Command)
If Address = 0 Then
Command = Command And &B01111111
If Lock = 0 Then
Select Case Command
Case Is < 10
Incr Count
If Count =< 3 Then
Key = Str(command)
Mid(enter , Count) = Key
Lowerline
Lcd Enter
Waitms 400
End If
Case 37
Count = 0
Readeeprom Password , 0
Waitms 10
If Enter = Password Then
Cursor Off , Noblink
Lock = 1
Cls
Lcd "       OK"
Wait 2
Cls
Lcd "you can drive DC"
Lowerline
Lcd "motor with keys."
Else
Cursor Off , Noblink
Cls
Lcd "     ERROR"
Wait 2
Cls
Lcd "Enter password:"
Cursor On , Blink
Locate 2 , 1
End If
End Select
'***********************************************************************************
Else                                                        'BARNAMEYE ASLI BAD AZ GHOFL.YANI DAR GHEYRE EEN SOORAT AGAR GHOFL BAZ BASHAD.HALA DIGAR GHESMATE GHOFL EJRA NEMISHAVAD
Select Case Command
Case Is < 10
Incr Count
If Count < 4 Then
Key = Str(command)
Mid(enter , Count) = Key
Lowerline
Lcd Enter
Waitms 400
End If
Case 16
Cls
Lcd "   TURN RIGHT"
Set Portd.3
Reset Portd.2
Case 17
Cls
Lcd "   TURN LEFT"
Reset Portd.3
Set Portd.2
Case 32
If Pwm1a =< 1000 Then
Pwm1a = Pwm1a + 10
Cls
Speed = Pwm1a / 4
Lcd "speed: " ; Speed ; " rpm   "
Else
Cls
Lcd "     *WOW*"
Lowerline
Lcd " it's very fast"
End If
Case 33
Pwm1a = Pwm1a - 10
Cls
Speed = Pwm1a / 4
Lcd "speed: " ; Speed ; " rpm    "
Lcd Pwm1a
Case 37
Cls
Lcd "     STOP"
Set Portd.3
Set Portd.2
Case 59
Cls
Call Play()
Case Else
Cls
Lcd Command
End Select
Waitms 250
End If                                                      'EEN END IF BARAYE IF  LOCK AST KE DARAYE ELSE NIZ MIBASHAD
End If
Loop
'************************************
Sub Play()
Home
Lcd "Enter old pass:"
Pass:
Getrc5(address , Command)
If Address = 0 Then
Command = Command And &B01111111
Select Case Command
Case Is < 10
Incr Count
If Count < 4 Then
Key = Str(command)
Mid(enter , Count) = Key
Lowerline
Lcd Enter
Waitms 400
End If
Case 37
Count = 0
If Fuse = 0 Then
Readeeprom Password , 0
Waitms 10
If Enter = Password Then
Fuse = 1
Cls
Lcd "Enter new pass:"
Locate 2 , 1
Wait 2
Else
Cls
Lcd "      ERROR"
Wait 2
Cls
Lcd "Enter old pass:"                                       '
End If
Else
Password = Enter
Writeeeprom Password , 0
Waitms 10
Cls
Lcd "     GO ON"
Wait 2
Goto Payan
End If
End Select
End If
Goto Pass
Payan:
Fuse = 0
End Sub Play()

دانلود فایل ها :

مطلب پیشنهادی:  پروژه هشدار دهنده دریافت ایمیل با AVR ! پروژه ای متفاوت

دیتاشیت L293

دیتاشیت HS0038A2

اگر این نوشته‌ برایتان مفید بود لطفا کامنت بنویسید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

8 دیدگاه

  1. سلام خسته نباشید. فایل پیوست کجاست؟ انگار روی وب قرار نگرفته

  2. سلام روی دانلود PDF. کلیک کنید دانلود میشه منظور از پیوست همون فایل دانلودی که هایپر لینک شده است

  3. alireza jj کوهگرئ

    من ایتجا لینکش رو پیدا نمیکنم.میشه برام ایمیل کنید لطفا؟

  4. سلام ،من یک پروژه کنترل نرم‌افزار با ریموت کنترل اینفراد دارم ،می تونید به من کمک کنید ،باتشکر

  5. بسار عالی بود متشکرمهندس

  6. سلام وقت بخیر
    کد به زبان C هست یا Basic؟