سلام.
ما یک برد با atmega8 A SMD طراحی کردیم و یک برنامه ساده هم روی آی سی پروگرم کردیم.
کاری ما میخواهیم بکنیم راه اندازی یک موتور و توقف اون طبق شرایط خاص هست.
این برنامه پروگرم شده روی میکرو کنترلر هست :
این هم لینک فایل پروتیوس : http://www.rahrodata.com/files/exa%20SMD.zip

عملکرد مدار به این صورت هست که :
با اتصال مدار به باطری 12 ولتی ولتاژ 5 ولت تغذیه میکرو کنترلر با 2 عدد رگلاتور 8 و 5 ولتی تامین میشه و با فشار دادن کلید مربوط به راه اندازی موتور یک پالس منفی به پایه شماره D6 (شماره 10)میاد . تا اینجا مشکلی نیست و موتور کار میکنه.
یک عدد led قرمز رنگ به پایه های 9 و 10 وصل هست که در حالت عادی پایه 9 مثبت هست و پایه 10 نیز با یک مقاومت به + وصل هست . پس در حالت عادی که موتور کار نمیکند این led خاموش هست. با راه افتادن موتور پایه شماره 10 منفی شده و led قرمز رنگ روشن میشود . تا اینجا مدار درست کار میکنه.

یک ورودی دیگه روی میکرو تعریف کردیم که فرمان مربوط به قطع و استوپ موتور هست (پایه 27 که با یک مقاومت به مثبت وصل هست) و به این صورت کار میکنه که زمانی که پایه 27 پالس منفی را دریافت میکند پایه های 25 و 16 مثبت میشوند و دو عدد ترانزیستور را تحریک میکنند. پایه 25 بعد از 55 میلی ثانیه 0 میشود ولی پایه 16 تا زمانی که کلید استارت موتور در حالت فشار داده شده نگه داشته شود 0 نمی شود و بعد از این که دستمان را از روی کلید استارت موتور برداشتیم پایه 16 نیز 0 خواهد شد.
هر یک از این ترانزیستور ها به یک رله 5 ولت وصل هست . یک طرف بوبین رله ها به مثبت مدار و یک طرف به خروجی ترانزیستور وصل است. با تحریک ترانزیستور ها منفی مربوط به بوبین رله ها وصل شده و رله ها تحریک میشوند و یکی از رله ها 55 میلی ثانیه بعد از تحریک خارج میشود. در واقع در مدت این 55 میلی ثانیه موتور در جهت معکوس حرکت اصلی میچرخد یعنی 55 میلی ثانیه + و - موتور تعویض شده و کار استوپ موتور را انجام میدهد.
برای این که پس از استوپ اگر دستمان روی کلید استارت موتور باشد موتور دوباره شروع به حرکت نکند یکی از رله ها که از پایه 16 میکرو تحریک میشود تا زمانی که دستمان را از روی کلید ایتارت موتور برنداریم از تحریک در نمی آید.
یک عدد led سبز رنگ هم به پایه 32 و منفی مدار وصل شده که در حالت عادی پایه 32 منفی هست و با دریافت پالس از سوی پایه 27 پایه 32 مثبت شده و led سبز روشن میشود و همزمان پایه 9 منفی شده و led قرمز خاموش میشود.
تا اینجا همه چیز درست کار میکنه.


اما مشکلات ما :
1. زمانی که چراغ سبز رنگ روشن میشود و رله ها تحریک میشوند اگر دستمان را چند ثانیه (حدود 20 ثانیه) روی شستی استارت موتور نگه داریم رگلاتور ها به شدت داخ میکنند.
2. مشکل اصلی این هست که این مدار پس از مدتی کار کردن میکرو رو میسوزونه و میکرو درست کار نمیکنه و و وقتی به پروگرمر وصل میکنیم basecom نمیشناسه میکرو رو.
این نکته رو هم بگم که موتور 12v dc هست و ولتاژ رو از رله ها دریافت میکنه. ولی بوبین رله با 5 ولت مدار میکرو تحریک میشه.
برای حل این مشکل چه راه حلی رو پیشنهاد میکنید؟
ما یک برد با atmega8 A SMD طراحی کردیم و یک برنامه ساده هم روی آی سی پروگرم کردیم.
کاری ما میخواهیم بکنیم راه اندازی یک موتور و توقف اون طبق شرایط خاص هست.
این برنامه پروگرم شده روی میکرو کنترلر هست :
کد:
$regfile = "m8def.dat" ' specify the used micro $crystal = 1000000 Config Portb.4 = Output Config Portc.2 = Output Config Portd.2 = Output Config Portd.5 = Output Config Pinc.4 = Input Config Pind.6 = Input Waitms 10 Portb.4 = 1 Portc.2 = 0 Portd.5 = 0 Disable Interrupts Do Portd.2 = 0 Portb.4 = 0 Portd.5 = 1 If Pinc.4 = 0 Then Portd.2 = 1 Portb.4 = 1 Portc.2 = 1 Portd.5 = 0 Waitms 55 Portc.2 = 0 Tek: While Pind.6 = 0 Portd.2 = 1 Portb.4 = 1 Goto Tek Wend Portd.2 = 0 Portb.4 = 0 Portd.5 = 1 Else Portd.2 = 0 Portb.4 = 0 Portd.5 = 1 End If Loop

عملکرد مدار به این صورت هست که :
با اتصال مدار به باطری 12 ولتی ولتاژ 5 ولت تغذیه میکرو کنترلر با 2 عدد رگلاتور 8 و 5 ولتی تامین میشه و با فشار دادن کلید مربوط به راه اندازی موتور یک پالس منفی به پایه شماره D6 (شماره 10)میاد . تا اینجا مشکلی نیست و موتور کار میکنه.
یک عدد led قرمز رنگ به پایه های 9 و 10 وصل هست که در حالت عادی پایه 9 مثبت هست و پایه 10 نیز با یک مقاومت به + وصل هست . پس در حالت عادی که موتور کار نمیکند این led خاموش هست. با راه افتادن موتور پایه شماره 10 منفی شده و led قرمز رنگ روشن میشود . تا اینجا مدار درست کار میکنه.

یک ورودی دیگه روی میکرو تعریف کردیم که فرمان مربوط به قطع و استوپ موتور هست (پایه 27 که با یک مقاومت به مثبت وصل هست) و به این صورت کار میکنه که زمانی که پایه 27 پالس منفی را دریافت میکند پایه های 25 و 16 مثبت میشوند و دو عدد ترانزیستور را تحریک میکنند. پایه 25 بعد از 55 میلی ثانیه 0 میشود ولی پایه 16 تا زمانی که کلید استارت موتور در حالت فشار داده شده نگه داشته شود 0 نمی شود و بعد از این که دستمان را از روی کلید استارت موتور برداشتیم پایه 16 نیز 0 خواهد شد.
هر یک از این ترانزیستور ها به یک رله 5 ولت وصل هست . یک طرف بوبین رله ها به مثبت مدار و یک طرف به خروجی ترانزیستور وصل است. با تحریک ترانزیستور ها منفی مربوط به بوبین رله ها وصل شده و رله ها تحریک میشوند و یکی از رله ها 55 میلی ثانیه بعد از تحریک خارج میشود. در واقع در مدت این 55 میلی ثانیه موتور در جهت معکوس حرکت اصلی میچرخد یعنی 55 میلی ثانیه + و - موتور تعویض شده و کار استوپ موتور را انجام میدهد.
برای این که پس از استوپ اگر دستمان روی کلید استارت موتور باشد موتور دوباره شروع به حرکت نکند یکی از رله ها که از پایه 16 میکرو تحریک میشود تا زمانی که دستمان را از روی کلید ایتارت موتور برنداریم از تحریک در نمی آید.
یک عدد led سبز رنگ هم به پایه 32 و منفی مدار وصل شده که در حالت عادی پایه 32 منفی هست و با دریافت پالس از سوی پایه 27 پایه 32 مثبت شده و led سبز روشن میشود و همزمان پایه 9 منفی شده و led قرمز خاموش میشود.
تا اینجا همه چیز درست کار میکنه.


اما مشکلات ما :
1. زمانی که چراغ سبز رنگ روشن میشود و رله ها تحریک میشوند اگر دستمان را چند ثانیه (حدود 20 ثانیه) روی شستی استارت موتور نگه داریم رگلاتور ها به شدت داخ میکنند.
2. مشکل اصلی این هست که این مدار پس از مدتی کار کردن میکرو رو میسوزونه و میکرو درست کار نمیکنه و و وقتی به پروگرمر وصل میکنیم basecom نمیشناسه میکرو رو.
این نکته رو هم بگم که موتور 12v dc هست و ولتاژ رو از رله ها دریافت میکنه. ولی بوبین رله با 5 ولت مدار میکرو تحریک میشه.
برای حل این مشکل چه راه حلی رو پیشنهاد میکنید؟
دیدگاه