اطلاعیه

Collapse
No announcement yet.

سوزاندن atmega8 روی یک مدار(کمک برای حل این مشکل)

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    سوزاندن atmega8 روی یک مدار(کمک برای حل این مشکل)

    سلام.
    ما یک برد با 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
    این هم لینک فایل پروتیوس : 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 ولت مدار میکرو تحریک میشه.


    برای حل این مشکل چه راه حلی رو پیشنهاد میکنید؟

    #2
    پاسخ : سوزاندن atmega8 روی یک مدار(کمک برای حل این مشکل)

    واقعا کسی نمیتونه کمکی بکنه؟

    دیدگاه


      #3
      پاسخ : سوزاندن atmega8 روی یک مدار(کمک برای حل این م&#158

      با درود . . .
      1 ساعت طول برد تا متن رو خوندم!
      بگذریم
      شما ابتدا دلیل استفاده از 2 رگولاتور و همچنین نحوه درایو رله رو هم توضیح بدید تا بریم سراغ حل مشکل

      پی نوشت:
      بارز ترین نکته در طرح شما عدم وجود دیود هرزگرد هست

      موفق باشید
      درد من تنهایی نیست؛ بلکه مرگ ملتی است که گدایی را قناعت، بی‏عرضگی را صبر، و با تبسمی بر لب این حماقت را حکمت خداوند می‏ نامند! "گاندی"

      به دلیل وجود برخی مشکلات و بی احترامی ها این اکانت رو غیر فعال کردم. همیشه سر بلند باشید.
      بدرود . . .

      دیدگاه


        #4
        پاسخ : سوزاندن atmega8 روی یک مدار(کمک برای حل این مشکل)

        اول از یک رگلاتور 5 ولت استفاده کردم ولی چون داغ میکرد از یک رگلاتور 8 ولت و بعد از رگلاتور 5 ولت استفاده کردم که حل بشه ولی باز هم داغ میکنه.
        زمانه که پالس منفی به پایه 27 میاد دو تا خروجی متصل به ترانزیستور ها 1 میشن و رله عمل میکنه.

        دیدگاه


          #5
          پاسخ : سوزاندن atmega8 روی یک مدار(کمک برای حل این مشکل)

          دلیل عمده داغ کردن رگولاتور تغذیه کردن رله ها و همچنین توان بالای تلفاتی روی خود رگولاتور هست
          آیا برای رله ها از دیود هرزگرد استفاده کردید؟
          بر روی خط تغذیه 5 ولت هم باید یه خازن در حدود 47 الی 220 میکرو قرار بدید که دیده نمیشه
          درد من تنهایی نیست؛ بلکه مرگ ملتی است که گدایی را قناعت، بی‏عرضگی را صبر، و با تبسمی بر لب این حماقت را حکمت خداوند می‏ نامند! "گاندی"

          به دلیل وجود برخی مشکلات و بی احترامی ها این اکانت رو غیر فعال کردم. همیشه سر بلند باشید.
          بدرود . . .

          دیدگاه


            #6
            پاسخ : سوزاندن atmega8 روی یک مدار(کمک برای حل این مشکل)

            نوشته اصلی توسط وحید نصیری
            دلیل عمده داغ کردن رگولاتور تغذیه کردن رله ها و همچنین توان بالای تلفاتی روی خود رگولاتور هست
            آیا برای رله ها از دیود هرزگرد استفاده کردید؟
            بر روی خط تغذیه 5 ولت هم باید یه خازن در حدود 47 الی 220 میکرو قرار بدید که دیده نمیشه
            دلیل استفاده از دیود زمانی که از ترانزیستور استفاده شده چیه؟
            دلیل سوختن میکرو چی میتونه باشه؟

            دیدگاه


              #7
              پاسخ : سوزاندن atmega8 روی یک مدار(کمک برای حل این مشکل)

              نوشته اصلی توسط j_tmec
              دلیل استفاده از دیود زمانی که از ترانزیستور استفاده شده چیه؟
              دلیل سوختن میکرو چی میتونه باشه؟
              دوست عزیز از دیود هرزگرد در جاهایی که با سلف سرو کار داریم استفاده میشه
              دلیلش هم همون رابطه v=Ldi\dt که نشون میده با قطع جریان در یک لحظه ولتاز زیادی تولید میشه :eek: دیود میگذارند تا در خود سلف این ولتاز ار بین بره :applause:!
              یکی از دلایل سوختن میکرو هم میتونه باشه بازگشت این ولتاز به میکرو چون ایزوله نشده
              بهترین راه برای شما که دارین با موتور و ... کار میکنید استفاده از اپتو کوپلر هست(به جای ترانزیستور و یا قبل اون)!

              دیدگاه


                #8
                پاسخ : سوزاندن atmega8 روی یک مدار(کمک برای حل این مشکل)

                مشکل داغ کردن رو با تغییر مقادیر مقاوت ها و افزودن یک سری خازن برطرف کردیم.
                البته یک سری تغییرات هم تو برنامه داریم و حل شد.
                مدار توسط یک باطری 12 ولتی کارمیکنه.
                چطور میتونیم ضعیف شدن باطری رو با روشن شدن یک led نشون بدیم؟

                دیدگاه


                  #9
                  پاسخ : سوزاندن atmega8 روی یک مدار(کمک برای حل این مشکل)

                  سلام.
                  از adc استفاده کن.پروژههای زیادی واسه ساختم ولت متر وجود داره که میتونی با کمی جستجو اونو پیدا کنی. موفق باشی

                  دیدگاه

                  لطفا صبر کنید...
                  X