در بیشتر سیستم ها این علاقه وجود دارد که کلیه فرمانها و تنظیمات را بتوان توسط یک کنترل کننده از راه دور انجام داد. در این صورت باید از فرستنده و گیرنده ای که طبق یک پروتکل اطلاعات را رد و بدل می کند استفاده کرد. ارتباط می تواند به صورت امواج مادون قرمز یا بی سیم و یا رادیویی و یا … باشد. یکی از کانال های آسان و کم خرج امواج مادون قرمزاست که بیشتر کنترل کننده های خانگی نیز این نوع ارتباطی را انتخاب می کنند. پروتکل هایی که در این نوع ارتباطی به کار می رود از جمله 5RC و 6RC و یا همچنین مدولاسیون منچستر است. بیشتر کنترل کننده های تلویزیون پروتکل 5RC را پشتیبانی می کنند. دراین نوع پروتکل 14 بیت در هنگام فشرده شدن هر کلید ارسال می شود. دو بیت اول بیت شروع هستند که همیشه یک هستند. بیت بعدی بیت کنترل یا تاگل است که با زدن هر کلید معکوس می شود. پنج بیت بعدی بیت آدرس هستند. شش بیت بعدی بیت های فرمان هستند.بیت ها در دو فاز کد شده و ارسال می شود. حال می توان با داشتن فرکانس ارسال و ایجاد یک تاخیر جهت نمونه برداری این اطلاعات را آشکار کرد. به طور مثال اگر از یک میکروکنترلر استفاده میکنید می توانید با پیکره بندی یکی از تایمرها تاخیر ایجاد کنید و بیت ها مشخص کنید. آشکار کردن این بیت ها چندان کار سختی نیست ولی اگر شما از میکروکنترلر های سری AVR و همچنین از کامپایلر قدرتمند بسکام استفاده می کنید میتوانید از دستورات ساده آن جهت به دست آوردن اطلاعات بهره ببرید. ضمیمه این فایل اطلاعات مورد نیاز جهت بستن مدار و برنامه موجود است. با دستور زیر به راحتی میتوان فرمان را دریافت Getrc5(address , Command) کرد . مدار زیر قسمت گیرنده می باشد.
در مدار بالا از گیرنده سه پایه مادون قرمز استفاده شده است.
در این سیستم هدف راه اندازی موتوردی سی توسط کنترل تلویزیون است. به این صورت که سیستم ابتدا از شما رمز را در خواست میکند و در صورت صحیح بودن می توانید چپ گرد یا راست گرد یا ایست و حتی سرعت را کنترل کنید. جهت راه اندازی موتور از آی سی 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()
دانلود فایل ها :
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.
سلام خسته نباشید. فایل پیوست کجاست؟ انگار روی وب قرار نگرفته
سلام روی دانلود PDF. کلیک کنید دانلود میشه منظور از پیوست همون فایل دانلودی که هایپر لینک شده است
من ایتجا لینکش رو پیدا نمیکنم.میشه برام ایمیل کنید لطفا؟
با سلام ، نوشته بالا اصلاح شد.
سلام ،من یک پروژه کنترل نرمافزار با ریموت کنترل اینفراد دارم ،می تونید به من کمک کنید ،باتشکر
سلام، متاسفانه خیلی وقته پروژه انجام نمیدیم ولی اگر سوالی بود در اینجا یا قسمت پرسش و پاسخ بپرسید اگر بلد بودیم صد در صد کمک میکنیم. موفق باشید.
بسار عالی بود متشکرمهندس
سلام وقت بخیر
کد به زبان C هست یا Basic؟