سلام بچه ها
من یه مدار ساختم که بذارم جای چشم درب برقی
همه چیز خوب ژیش رفت و جواب گرفتم.
اما وقتی که وصلش کردم درب می خواد بسته بشه رله اتصال کوتاه هست اما وسطای راه رله اتصال باز می شه و درب دوباره باز می شه.
فک کنم میکرو ریست می شه.
دیود هرز گرد هم گذاشتم اما بازم همین طور شد.
شما یه تست دستی بکن شاید مشکل رله باشه که ول میکنه برای میکرو هم خوب یه LED چیزی سرش من ببین ریست میشه یا نه دیگه
باید رله رو بایه ترانزیستور درایو کنید
ترانزیستور گذاشتم.
دیود هرز گردهم داره
یه لحظه فقط رله قطع و وصل می شه.
این برنامه یک فرستنده و گیرنده مادون قرمز هست.
این برنامه واسه قسمت گیرنده هست:
$regfile = "m8def.dat"
$crystal = 1000000
$lib "mcsbyte.lbx"
Config Portd = Output
Config Rc5 = Pinb.3 , Timer = 2
Enable Interrupts
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
M:
Getrc5(address , Command)
If Address = 1 Then
Command = Command And &B01111111
Cls
Lcd "Address = " ; Address
Locate 2 , 1
Lcd "command = " ; Command
Waitms 10 -
Portd.7 = 0
Portd.6 = 0
Portd.5 = 1
Waitms 100
If Address = 1 Then Goto M
End If
Cls
Lcd "Address = " ; Address
Locate 2 , 1
Lcd "command = " ; Command
Portd.7 = 1
Portd.6 = 1
Portd.5 = 0
Waitms 600
Loop
End
برنامه اینجور هست که توی چشم در که گذاشتم رله همواره اتصال کوتاه هست.
به محض تشخیص مانع رله اتصال باز می شه و درب بسته نمی شه.
حالا وقتی درب باز می شه و می خواد بسته بشه تو مسیر بسته شدن رله خود به خود اتصال باز می شه و درب دوباره باز می شه
یه جای برنامه اومدین Waitms 10 - اینجوری نوشتین این خطا هست اما کامپایلر خطا نمی گیره
این فرمان هارو به برنامه اضافه کنید به جای Config Portd = Output
کد php:
Config Portd.7 = Output
Config Portd.6 = Output
Config Portd.5 = Output
و همینطور بگین که کدوم پایه با رله وصل میشه ؟
اینم بگم شیوه استفاده از برنامه و فرمان اینتراپ تون اشتباه هست
portd.7 وصل شده به رله.
می خواستم با دستور waitms 10 توی برنامه تاخیر بذذارم، پس چیکار کنم ؟
بچه ها وقتی درب حیاط بسته می شه و موتوراش راه می افته مدار از کار می افته.
تغذیشون یکی نیستا اما نمی دونم چش می شه.[/align]
اگر شماتیک رو میگزاشتی بهتر می شد کمکت کرد. یه سری تغییرات کوچولویی در برنامه ات دادم البته با توجه به اینکه شماتیک رو نداشتم نمیشه 100% مطمئن بود درسته.
کد:
$regfile = "m8def.dat"
$crystal = 1000000
$lib "mcsbyte.lbx"
Config Portd = Output
Config Rc5 = Pinb.3 , Timer = 2
Enable Interrupts
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
M:
Getrc5(address , Command)
If Address = 1 Then
Command = Command And &B01111111
Cls
Lcd "Address = " ; Address
Locate 2 , 1
Lcd "command = " ; Command
Portd.7 = 0
Portd.6 = 0
Portd.5 = 1
Waitms 100
Else
Cls
Lcd "Address = " ; Address
Locate 2 , 1
Lcd "command = " ; Command
Portd.7 = 1
Portd.6 = 1
Portd.5 = 0
Waitms 600
End If
Loop
End