اطلاعیه

Collapse
No announcement yet.

مشکل-یک بودن تمام پین های میکرو قبل از راه اندازی

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

    مشکل-یک بودن تمام پین های میکرو قبل از راه اندازی

    با سلام خدمت اساتید گرامی
    من یه مشکل عجیبی که برام پیش اومده اینه که تمام پین های تمام پورتهای میکرو قبل از راه اندازی یک هستن
    مثلا یکی از پین ها توسط uln2003 به یه رله وصله رله هم شیر برقی رو تغذیه میکنه
    چنانچه اصلا این پین معرفی نشه بعنوان خروجی به محض روشن شدن برد شیر برقی روشن میشه
    حالا اگه بعنوان خروجی اول برنامه تعریفش کنیم و بلافاصله تو خط بعدی اون پین رو صفر کنیم باز وقتی برد روشن میشه یه لحظه شیر برقی عمل میکنه و بعد قطع میشه
    هم رو atmega128 اینجوریه هم روی atmega32
    کسی ایده ای نداره که چرا اینجوری شده؟

    #2
    پاسخ : مشکل-یک بودن تمام پین های میکرو قبل از راه اندازی

    سلام.احتمالا شما توی برنامتون تاخیری در زمان پیکربندی پایه ها دارید, یا استارت آپ یا همون زمان با لا امدن میکرو زیاد هست.

    دیدگاه


      #3
      پاسخ : مشکل-یک بودن تمام پین های میکرو قبل از راه اندازی

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

      دیدگاه


        #4
        پاسخ : مشکل-یک بودن تمام پین های میکرو قبل از راه اندازی

        میشه برنامتون اینجا بزارین تا بهتر بتونم کمکتون کنم.

        دلیل: ادغام دو پست برای جلوگیری از اسپم

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

        دیدگاه


          #5
          پاسخ : مشکل-یک بودن تمام پین های میکرو قبل از راه اندازی


          regfile = "m32def.dat"
          $crystal = 8000000
          Config Portc.2 = Output
          Relay1 Alias Portc.2
          Relay1=0

          do
          wait 1
          loop
          end

          برنامه چیز خاصی نداره آخه

          دیدگاه


            #6
            پاسخ : مشکل-یک بودن تمام پین های میکرو قبل از راه اندازی

            نوشته اصلی توسط tmr22 نمایش پست ها

            regfile = "m32def.dat"
            $crystal = 8000000
            Config Portc.2 = Output
            Relay1 Alias Portc.2
            Relay1=0

            do
            wait 1
            loop
            end

            برنامه چیز خاصی نداره آخه
            توی پروتئوس مشکلی نداره ولی ممکنه از فیوزبیت SUT باشه که زمان بالا آمدن میکرو هستش هر چه مقدار این عدد کم تر باشه میکرو سریعتر بالا می یاد به احتمال خیلی زیادمشکل همینه.
            باید با پروگرامر اونو روی حداقل مقدار بزاری.

            دیدگاه


              #7
              پاسخ : مشکل-یک بودن تمام پین های میکرو قبل از راه اندازی

              نوشته اصلی توسط MM320 نمایش پست ها
              توی پروتئوس مشکلی نداره ولی ممکنه از فیوزبیت SUT باشه که زمان بالا آمدن میکرو هستش هر چه مقدار این عدد کم تر باشه میکرو سریعتر بالا می یاد به احتمال خیلی زیادمشکل همینه.
              باید با پروگرامر اونو روی حداقل مقدار بزاری.
              ممنون از راهنمایی تون
              برم سراغش ببینم چی میشه

              ولی قاعدش تا ما پورت رو یک نکرده باشیم نباید خودش یک بشه آخه

              دیدگاه


                #8
                پاسخ : مشکل-یک بودن تمام پین های میکرو قبل از راه اندازی

                نوشته اصلی توسط tmr22 نمایش پست ها
                ممنون از راهنمایی تون
                برم سراغش ببینم چی میشه


                ولی قاعدش تا ما پورت رو یک نکرده باشیم نباید خودش یک بشه آخه
                حق با شماست
                ولی موضوع اینه که در مدارات منطقی
                معمولا یک بودن یک پورت به معنای خاموش بودن آن و صفر بودن به معنای روشن بودن آنست !
                وقتی میکرو روشن میشه ، همه خروجی ها خاموش هستند (یعنی یک هستند)
                البته در داکیومنت خود اردوینو چیز دیگه ای گفته شده ولی من جستجو که کردم افرادی بودند که
                همین مشکل را دارند، منطقی هم به نظر میرسد که هنگام روشن شدن همینطور باشد

                پس مصرف کننده شما (مثلا یک ال ای دی) اصولا باید بین پین خروجی و قطب مثبت مدار قرار دهید

                البته چون شما در اینجا یک شیر را در ولتاژ بالاتر از ولتاژ مدار استفاده میکنید،
                راه انداز آن (همان آیسی) بین خروجی و منفی مدار قرار میگیرد

                درست مثل اینکه دارید با یک ترانزیستور منفی ، یک رله را با میکرو کنترل میکنید

                اصطلاحا در لو ساید دارید سوئیچ میکند
                اما اصولا باید در های ساید سوئیچ کنید

                شاید برایتان جای سئوال باشد که اصولا چرا چنین است ؟ سئوال خوبیست

                دیدگاه


                  #9
                  پاسخ : مشکل-یک بودن تمام پین های میکرو قبل از راه اندازی

                  نوشته اصلی توسط x935418 نمایش پست ها
                  حق با شماست
                  ولی موضوع اینه که در مدارات منطقی
                  معمولا یک بودن یک پورت به معنای خاموش بودن آن و صفر بودن به معنای روشن بودن آنست !
                  وقتی میکرو روشن میشه ، همه خروجی ها خاموش هستند (یعنی یک هستند)
                  البته در داکیومنت خود اردوینو چیز دیگه ای گفته شده ولی من جستجو که کردم افرادی بودند که
                  همین مشکل را دارند، منطقی هم به نظر میرسد که هنگام روشن شدن همینطور باشد

                  پس مصرف کننده شما (مثلا یک ال ای دی) اصولا باید بین پین خروجی و قطب مثبت مدار قرار دهید

                  البته چون شما در اینجا یک شیر را در ولتاژ بالاتر از ولتاژ مدار استفاده میکنید،
                  راه انداز آن (همان آیسی) بین خروجی و منفی مدار قرار میگیرد

                  درست مثل اینکه دارید با یک ترانزیستور منفی ، یک رله را با میکرو کنترل میکنید

                  اصطلاحا در لو ساید دارید سوئیچ میکند
                  اما اصولا باید در های ساید سوئیچ کنید

                  شاید برایتان جای سئوال باشد که اصولا چرا چنین است ؟ سئوال خوبیست
                  ممنون دوست گرامی
                  عرض کنم خدمتتون که قبلا وقتی همین مدار رو میبستیم تا وقتی خروجی رو یک نمیکردیم رله وصل نمیشد
                  اما الان قبل از هرکاری اول رله وصل میشه و ما حتما باید خروجی رو صفر کنیم تا رله خاموش بشه
                  منظور همون صفر و یک ۵ ولت خودمونه

                  دیدگاه


                    #10
                    پاسخ : مشکل-یک بودن تمام پین های میکرو قبل از راه اندازی

                    نوشته اصلی توسط tmr22 نمایش پست ها
                    ممنون دوست گرامی
                    عرض کنم خدمتتون که قبلا وقتی همین مدار رو میبستیم تا وقتی خروجی رو یک نمیکردیم رله وصل نمیشد
                    اما الان قبل از هرکاری اول رله وصل میشه و ما حتما باید خروجی رو صفر کنیم تا رله خاموش بشه
                    منظور همون صفر و یک ۵ ولت خودمونه
                    مقاومت pulldown رو امتحان کردین ؟

                    دیدگاه


                      #11
                      پاسخ : مشکل-یک بودن تمام پین های میکرو قبل از راه اندازی

                      همینطور که گفتم من قبلا با زبان بیسیک کار می کردم و مثلا ال سی دی 2x16 می خواستم
                      راه انداری کنم چند لحظه ال سی دی سر اولش همه دات ماتریس هاش روشن بود .به هر حال شما
                      همین برنامه رو با کامپایلر کدویژون بنویس بین همین مشکل داری یه چیز دیگه یادم امد شاید مشکل این باشه ممکنه فرکانس برنامه روی ۸باشه ولی فیوز بیت میکرو ۱ مگاهرتز باشه؟یه چکی بکن.
                      جدیدترین ویرایش توسط MM320; ۲۳:۱۷ ۱۳۹۷/۱۲/۰۸.

                      دیدگاه

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