اطلاعیه

Collapse
No announcement yet.

کمک در مورد سروو موتور

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

    پاسخ : کمک در مورد سروو موتور

    نوشته اصلی توسط امیر حسنی کاخکی
    سلام
    راستش من زیاد با سروو کار نکردم .برای یک پروژه فقط یکی خریدم و راه اندازی کردم
    اتفاقا چون طرز کار سرووها برام جالب بود بازش کردم و داخلش یک PIC دیدم.حالا ممکنه اون سروو من داخلش میکرو بوده و بقیه سرووها لزوما میکرو نداشته باشن.
    آقای پاما میتونن یکی از سرووها رو باز کنن و اگر دیدن داخلش میکرو داره پس با این روش نمیشه.ولی اگر میکرو نداشت مسئله حل شده است.
    هر چند هیچ توجیحی برای کارنکردن میکروها در بعضی اوقات (پس از قطع و وصل تغذیه )ندارم.
    بهرحال ایشون میخوان مرتبا با تغییر هر شرط سرووها رو به ترتیب خاموش و روشن کنند و فقط در ابتدای لحظه استارت نیست
    سلام احوال شما ؟
    راستش سروو های آقای پاما تاور پرو هستن و داخلشون چیزی ندارن جز همون مقایسه گر . البته این ممکنه به شکل یک میکروکنترلر باشه شاید به همین دلیل اشتباه شده ؟
    سروویی که شما خریدین چی بود ؟
    در مورد خاموش و روشن کردن سروو ها ما خیلی با هم صحبت کرده بودیم قرار بر همون شد که عرض کردم . یعنی فقط در ابتدای کار تغذیه روشن بشه و تا آخر کار روشن بمونه .
    مگر اینکه نظر pama عوض شده و میخواد کار جدیدی بکنه ؟؟
    اما توضیحاتی که به من داده بود به این شکل بود که فقط در لحظه شروع این مشکل وجود داره.

    دیدگاه


      پاسخ : پاسخ : کمک در مورد سروو موتور

      نوشته اصلی توسط pama

      بنده فکر میکنم بهتر باشه برای تحقق این امر که هر گاه شرطها محقق شد، سرووها با عکس العمل درست در زاویه های درست قرار بگیرند، و علاوه بر اون مشکل حرکت اولیه ی سرووها به محض زدن تغذیه، و همچنین مشکل حرکت همزمان سرووها با احقاق یک شرط، و در یک lable، حل بشه،( که ما میخوایم سرووها در ابتدا ساکن باشند و در lable هم به ترتیب و نه همزمان، حرکت کنند)

      بهتر هست، هر گاه که نیاز داریم سرووها حرکت کنند، همون موقع بهشون برق بدیم، یا اصلا از ابتدا تغذیه ی میکرو رو از تغذیه ی سروو جدا کنیم، کما اینکه الان هم جدا هست، و به میکرو دائم برق بدیم ، منتها به سروو، هر وقت که میخواد حرکت کنه برق بدیم، اون هم به کمک یک ترانزیستور و در برنامه،تا کمک کنه، هر موقع احتیاج بود، تغذیه سوئیچ بشه.

      هر وقتش هم به این صورت باشه، که ما از ابتدا اصلا تغذیه ی سرووها رو وصل نکنیم و در درون lableها قبل از حرکت اولین سروو ، به کمک ترانزیستور تغذیه ی سروو رو وصل کنیم، بعد از حرکت اون قطع کنیم، بعد قبل از حرکت سرووی دوم تغذیه ی اون رو که با یک ترانزیستور دیگه، کنترل میشه، وصل و بعد از حرکت قطع کنیم، به همین ترتیب تا انتها و در همه ی lable ها....
      من اینطور از صحبتاشون برداشت کرده بودم .نمیدونم شایدم اشتباه کردم.
      دمت گرم دیگه فرق مقایسه گر رو با pic نمیدونم!!!!؟؟؟
      اون سروو بنده هم Towerpro بود و مدلش رو یادم نیست ولی احتمالا میتونم برم با اجازه صاحبش بازش کنم و از داخلش عکس بندازم(هرچند دردسر داره)
      نظر شما در باره درست عمل نکردن بعضی از سرووها با چند بار قطع و وصل کردن تغذیه اونها چیه؟

      پروردگارا: به من زیستنی عطا کن که در لحظه مرگ بر بی ثمری لحظه ای که برای زیستن گذشته است حسرت نخورم، و مردنی عطا کن که بر بیهودگیش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست میداری

      دیدگاه


        پاسخ : پاسخ : کمک در مورد سروو موتور

        نوشته اصلی توسط امیر حسنی کاخکی
        من اینطور از صحبتاشون برداشت کرده بودم .نمیدونم شایدم اشتباه کردم.
        دمت گرم دیگه فرق مقایسه گر رو با pic نمیدونم!!!!؟؟؟
        اون سروو بنده هم Towerpro بود و مدلش رو یادم نیست ولی احتمالا میتونم برم با اجازه صاحبش بازش کنم و از داخلش عکس بندازم(هرچند دردسر داره)
        نظر شما در باره درست عمل نکردن بعضی از سرووها با چند بار قطع و وصل کردن تغذیه اونها چیه؟
        خوب اینو بهتره خود pama بیاد بگه ببینیم تصمیمش چیه ؟؟
        اما ایشون باید دقت کنن سروو وقتی خاموش باشه هیچ قدرتی نداره . یعنی هیچ تلاشی برای حفظ موقعیتش انجام نمیده .
        و بازم میگم توضیحاتی که به من داده بودن اینطور بود که این مشکل فقط در چند لحظه یا چند دقیقه اول کار وجود داره و بعد از اون تکلیف سروو ها مشخصه و نیازی به خاموش کردنشون نیست .
        نه این چه حرفیه قربان . آقای pama یادمه وقتی مدل سروو هاش رو گفت یکیش که 9g بود اون یکیشم یادمه که من مشابهشو قبلا داشتم و هیچ کدوم میکروکنترلر ندارن .

        این مشکل درست عمل نکردن سروو روتا حالا بر نخوردم مطمینید سیگنال دیتا در کل مدت آزمایش اوکی بوده ؟

        دیدگاه


          پاسخ : کمک در مورد سروو موتور

          سلام به همه ی دوستان گرامی که لطف کرده و با هدف کمک وارد این تایپیک شدند.
          دوستان اینجا چه خبر شده؟!
          امروز عصر از ساعت 3 متاسفانه اینترنت از دسترسم خارج شده بود تا به الان، برای همین شرمنده ی روی همه ی دوستان هستم.
          از جناب معین هم از اعماق وجود معذرت میخوام که صحبتی بدون ذکر نام ایشون شده، در ادامه توضیح خواهم داد....
          در هر صورت از حضور مجدد دوستان بزرگوارم، جناب کاخکی ، جناب معین، و جناب Intersil و سایر دوستان سپاسگذارم.

          سروران بزرگوارم بی شک همه میدونیم که جمع شدیم اینجا، برای حل مشکلات، و گاه این اتفاقها می افته که طبیعی هم هست، اگر خدای نکرده بنده ناخواسته هر گونه جسارتی به دوستانداشتم، باز هم عذر میخوام.

          در ادامه عرض کنم خدمت بزرگواران که بله، جناب معین هم به موازات سایر دوستان(جناب baby-1، جناب perfectو ...) پیشنهاد دادند که از سوئیچ استفاده بشه، که البته جناب معین، در ابتدا این پیشنهاد از جناب perfect بود و جناب baby-1 فرمودند از ترانزیستور BDX53 برای این سوئیچ استفاده بشه، و شما هم طی pm های متعدد بر موضوع استفاده از سوئیچ تاکید کرده و لطف کرده و تست هم کردید.
          که بنده از اعماق وجودم از کمکهای خالصانه ی همه ی شما بینهایت سپاسگذارم

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

          نوشته اصلی توسط pama
          سلام.
          بسیار متشکرم از حضور و پاسخ مجددتون جناب کاخکی.
          و واقعا بابت تاخیرم معذرت میخوام...
          خدمت جناب کاخکی و سایر اساتید عرض کنم که بنده فکر میکنم متاسفانه پست قبلی و کلیه ی عرائضم رو طوری عرض کردم که ایجاد ابهام کرده و مساله روشن نیست که باید چه اتفاقی بیافته.
          بنده با اجازتون توضیحی از کل کار عرض میکنم، امیدوارم بتونم خوب توضیح بدم.

          اصل کار به این صورت هست که ما میخوایم این طور برنامه رو بنویسیم که:
          در برناممون 15 تا شرط داریم که هر گاه هر کدوم از این 15 شرط محقق شد، باید کاری بازای اون انجام بشه، به این صورت که ما بازای این 15 شرط 15 تا lable داریم که حرکت 7 سرووی ما در غالب این 15 lable گنجونده شده،و 3 تا از سرووهای ما پای ثابت همه ی lableهان، و بقیه ی سرووها هم به ترتیبی در این lableها گنجونده شدند.

          حالا هر کدوم از شرطها که محقق شد به lable مربوط به خودش پرش میکند و در اونجا تعدادی از سرووها مثلا 4 تا از اونها ، باید به ترتیب و پشت سر هم در زاویه های تعریف شدش قرار بگیرند، و به همین ترتیب وقتی دستگاه در حال کار هست، ممکنه از این شرط خارج شده و شرط بعدی محقق بشه، در نتیجه باید از این lable خارج شده و به lable مربوط به شرط جدید پرش انجام بشه و باز در اون تعداد سرووهایی که قرار دارند، هر کدوم به ترتیب در زاویه های مربوط به خودشون که براشون تعریف کردیم، قرار بگیرند.
          و به همین ترتیب تا آخر....

          یک نکته ای هم در اینجا وجود داره، اونم این هست که دستگاه ما قرار بر این هست که یک عملی که به صورت دستی صورت میپذیره رو به صورت اتومات انجام بده، منتها نه اتومات دائم، بلکه یک دکمه ی درایو یا راه انداز داشته باشه، که هر گاه ما این دکمه رو زدیم میکروی سیستم با خوندن شرطها و تشخیص شرطها و در نتیجه پرش به لوپهای مربوط به هر شرط ،سرووهای ما رو حرکت بده و در نهایت سیستم رو اتومات کنه، و هر گاه هم نخواستیم اون عمل اتومات باشه،( با وجود دستگاه)، و خواستیم دستی کار رو انجام بدیم، دستگاه رو روشن نکنیم و کارمون رو دستی انجام بدیم.

          حالا نکته ی داستان در این هست که فرض کنیم ما انجام اون عمل خاص رو اتومات و با دستگاه مزبور شروع کردیم و در حالت احقاق شرط سوم و به تبع اون پرش به lable سوم و در نیمه ی کار میخوایم از حالت اتومات ، کار رو خارج کرده و دستی به ادامه ی انجام کار بپردازیم،

          حالا در این شرایط وقتی دستگاه خاموش میشه، سرووهای اون در یک زاویه ای قرار میگیرند،که این زاویه ها مربوط به زوایای تعریف شده برای سروو در lable 3 هست...


          ما به حالت دستی میریم، وقتی در حالت دستی هستیم، سرووها مسلما زاویه هاشون تغییر نمیکنه، اما شرطهایی که داریم و با توجه به اون شرطها به lable های مختلف میرفتیم، این شرطها با انجام اون عمل به صورت دستی تغییر میکنه

          حالا فرض کنید باز میخوایم از حالت دستی به حالت اتومات بریم، دفعه ی قبل که دستگاه رو خاموش کرده بودیم، شرط ما در حالت شرط 3 بود و به تبع اون سرووها در حالت زوایای مربوط به سرووها در lable 3 بود،

          اما الان که دوباره دستگاه روشن شده، سرووها ثابت هستند، به عبارتی زوایای مربوط به lable3 رو دارند ، اما شرط ما تغییر کرده، فرضا الان در حالت شرط 6 قرار گرفتیم، پس طبیعتا با احقاق شرط 6 به lable 6 پرش میکنیم و سرووها میخوان در حالتهای تعریف شده در اون حالت قرار بگیرند، در صورتی که این سرووهای ما به محض دریافت تغذیه یک حرکتی رو میکنند و علاوه بر اون آخرین مقدار سرووها رو هم نمیتونیم به سرووها اعمال کنیم چون مربوط به حالت 3 هست و الان در حالت 6 قرار داریم.


          و ایده آل برای ما این هست که وقتی از حالت دستی به حالت اتومات اومدیم، میکروی ما تشخیص بده که کدوم یک از 15 شرط ما محقق شده و بعد از اون به هر کدوم از 15 تا lableهای مربوط به خودش پرش کنه و سرووها رو در زاویه ها قرار بده.

          بنده فکر میکنم بهتر باشه برای تحقق این امر که هر گاه شرطها محقق شد، سرووها با عکس العمل درست در زاویه های درست قرار بگیرند، و علاوه بر اون مشکل حرکت اولیه ی سرووها به محض زدن تغذیه، و همچنین مشکل حرکت همزمان سرووها با احقاق یک شرط، و در یک lable، حل بشه،( که ما میخوایم سرووها در ابتدا ساکن باشند و در lable هم به ترتیب و نه همزمان، حرکت کنند)

          بهتر هست، هر گاه که نیاز داریم سرووها حرکت کنند، همون موقع بهشون برق بدیم، یا اصلا از ابتدا تغذیه ی میکرو رو از تغذیه ی سروو جدا کنیم، کما اینکه الان هم جدا هست، و به میکرو دائم برق بدیم ، منتها به سروو، هر وقت که میخواد حرکت کنه برق بدیم، اون هم به کمک یک ترانزیستور و در برنامه،تا کمک کنه، هر موقع احتیاج بود، تغذیه سوئیچ بشه.

          هر وقتش هم به این صورت باشه، که ما از ابتدا اصلا تغذیه ی سرووها رو وصل نکنیم و در درون lableها قبل از حرکت اولین سروو ، به کمک ترانزیستور تغذیه ی سروو رو وصل کنیم، بعد از حرکت اون قطع کنیم، بعد قبل از حرکت سرووی دوم تغذیه ی اون رو که با یک ترانزیستور دیگه، کنترل میشه، وصل و بعد از حرکت قطع کنیم، به همین ترتیب تا انتها و در همه ی lable ها....

          در این صورت بنده گمون میکنم، نه حرکت اولیه ی سرووها رو خواهیم داشت ونه مشکل حرکت همزمانیه سرووها رو .....

          از اینکه این پست خیلی طولانی شد،و سرتون رو درد آوردم، یک دنیا معذرت میخوام.
          و اگر خیلی آماتورانه و مضحک پیشنهاد دادم، بنده رو عفو بفرمائید.
          بنده بسیار مشتاقم نظر اساتید رو بدونم.
          بنا بر این اگر قرار باشه، از سوئیچ کردن تغذیه استفاده بکنیم، نه تنها در ابتدای برنامه بلکه همونطور که عرض کردم باید در هر حرکت سرووها این اتفاق بی افته که بنده هم احساس میکنم این روش چون تعداد تکرارش در برنامه زیاد هست، زیاد مناسب نباشه و بسیار راغبم روشی که جناب کاخکی میفرمودند و با کمک اون مشکلهامون هم رفع میشدند رو بدونم به چه نحو هست.

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

          و نکته اساسی اینکه روش دوم دقیقا همین کاری رو میکنه که شما میخواهید یعنی با روشن کردن مدار سرووها تغییر زاویه اولیه نخواهند داشت و پس از بررسی شرط در صورتی که شرط تغییر کرده بود (پس از تکمیل شدن برنامه)سرووها به ترتیب به زوایای جدید خواهند رفت و اگر شرط تغییر نکرده بود در همان زوایای قبلی باقی خواهند ماند
          بنده باز هم از همه ی دوستان تمنا دارم که بنده رو در انجام این روش راهنمائی بفرمایند.
          از حسن نیت همه ی شما سروران گرامی سپاسگذارم.
          زندگی برگ بودن در مسیر باد نیست
          امتحان ریشه هاست
          ریشه هم هرگز اسیر باد نیست
          زندگی چون پیچک است
          انتهایش میرسد پیش خدا!

          دیدگاه


            پاسخ : کمک در مورد سروو موتور

            خوب پس تصمیم گرفتین از روشمن پیش برید؟
            خوب پس سعی کنید یک دیتا رو روی EEprom بنویسید
            و مجددا از روی Eeprom بخونید اگر این هم موفقیت آمیز باشه و دیتا یکی باشه میمونه مرحله آخر تشخیص قطع برق
            برنامه رو اینطوری بنویسید
            a=100
            a در خانه مثلا 2 حافظه eeprom ذخیره شود
            b= خانه شماره 2 eeprom
            اگر a=b آنگاه فلان کار انجام شود

            خوب اگر فلان کار انجام شد یعنی عملیات خواندن و نوشتن eeprom موفقیت آمیز بوده
            خبر با شما
            پروردگارا: به من زیستنی عطا کن که در لحظه مرگ بر بی ثمری لحظه ای که برای زیستن گذشته است حسرت نخورم، و مردنی عطا کن که بر بیهودگیش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست میداری

            دیدگاه


              پاسخ : کمک در مورد سروو موتور

              نوشته اصلی توسط امیر حسنی کاخکی
              خوب پس تصمیم گرفتین از روشمن پیش برید؟
              سلام جناب کاخکی، بسیار سپاسگذارم از اینکه باز هم با پاسخهاتون حضور پیدا کردید.
              بله تصمیم بر ادامه با روش شما شد.

              نوشته اصلی توسط امیر حسنی کاخکی
              خوب پس سعی کنید یک دیتا رو روی EEprom بنویسید
              و مجددا از روی Eeprom بخونید اگر این هم موفقیت آمیز باشه و دیتا یکی باشه میمونه مرحله آخر تشخیص قطع برق
              برنامه رو اینطوری بنویسید
              a=100
              a در خانه مثلا 2 حافظه eeprom ذخیره شود
              b= خانه شماره 2 eeprom
              اگر a=b آنگاه فلان کار انجام شود

              خوب اگر فلان کار انجام شد یعنی عملیات خواندن و نوشتن eeprom موفقیت آمیز بوده
              خبر با شما
              ok، ممنون.
              در نتیجه در حال حاضر 2 تا نکته برای بنده باز میشه سوال!
              یکی اینکه دفعه ی قبلی که شما فرمودید، برنامه رو بدون خوندن خروجی سنسور و شرطها و eeprom و فقط با تایمرها و مقدار اولیه دادن به سرووها چک کنم، خاطرتون باشه، نتیجه ی این آزمایش که با مقدار دهی اولیه به سرووها ، چندین بار تغذیه رو قطع و وصل کنم، این شد که برای بار سوم و چهارم، عملکرد سرووها به هم میریخت، این مساله رو باید چکارش کنیم؟

              و دومی هم راجع به فرمایشاتتون در این پست هست، که آیا بنده باید تست نوشتن و خوندن از eeprom رو در برنامه ی مربوط به سرووهام که خوندن فرکانس و شرطها رو هم شامل میشه، انجام بدم، یا اینکه خیر، در همون برنامه ای که فقط مقدار دهی اولیه ی سرووها رو شامل میشد، این کار رو بکنم؟!

              سوالات بنده رو به کم سوادیم ببخشید...

              باز هم از سایر دوستان و اساتید بزرگوار، که تجربه یا اطلاعاتی دارند، تمنا دارم، تا با شرکتشون در این بحث، کمک بفرمایند تا همونطور که قبلا عرض کردم، تمام بار بیسوادی بنده بر گردن جناب کاخکی نباشه.

              باز هم از لطف همه ی بزرگواران متشکرم.
              زندگی برگ بودن در مسیر باد نیست
              امتحان ریشه هاست
              ریشه هم هرگز اسیر باد نیست
              زندگی چون پیچک است
              انتهایش میرسد پیش خدا!

              دیدگاه


                پاسخ : کمک در مورد سروو موتور

                عرض سلام و خسته نباشید
                نوشته اصلی توسط pama
                آیا بنده باید تست نوشتن و خوندن از eeprom رو در برنامه ی مربوط به سرووهام که خوندن فرکانس و شرطها رو هم شامل میشه، انجام بدم، یا اینکه خیر، در همون برنامه ای که فقط مقدار دهی اولیه ی سرووها رو شامل میشد، این کار رو بکنم؟!
                فرقی نمیکنه
                منظور فقط تست برنامه نویسیه که آیا این کاری که مد نظرمونه آیا میتونید پیاده سازی کنید یا خیر.

                نوشته اصلی توسط pama
                دفعه ی قبلی که شما فرمودید، برنامه رو بدون خوندن خروجی سنسور و شرطها و eeprom و فقط با تایمرها و مقدار اولیه دادن به سرووها چک کنم، خاطرتون باشه، نتیجه ی این آزمایش که با مقدار دهی اولیه به سرووها ، چندین بار تغذیه رو قطع و وصل کنم، این شد که برای بار سوم و چهارم، عملکرد سرووها به هم میریخت، این مساله رو باید چکارش کنیم؟
                خوب چون چند دفعه اول درست کار میکرده پس میشه نتیجه گرفت ایراد از برنامه نیست بلکه ایراد دیگری وجود داره
                احتمالا دلیلش یا بوجود آمدن نویز با قطع و ول مکرر تغذیه مدار است و یا هم سرعت قطع و وصل تغذیه زیاد بوده و قبل از خاموش شدن کامل سرووها شما اقدام به برقراری مجدد تغذیه میکردید و این باعث اختلال میشده

                شما اگر این کار ها رو انجام بدبد خیلی خوب میشه
                1-یکی از سرووها رو باز کنید و ببینید داخلش میکروو داره و یا مقایسه گر(اگر میکرو داشت بهتره با نوعی که مقایسه گر داره تعویض بشه)
                2- سعی کنید تغذیه رو با رله قطع و وصل کنید تا نویز هنگام وصل مدار به حد اقل برسه
                3- بین قطع و وصل تغذیه یک مقدار فاصله بندازید (در حدود 30 ثانیه خوبه تا خازنهای مدار کاملا تخلیه بشن)
                4- اگر مشکل برطرف نشد چک کنید آیا اون سروهایی که درست عمل نمیکنند اصلا سیگنالی از طرف میکرو بهشون میرسه یا نه(روی ورودیشون PWM دارند یا نه؟)

                درضمن تعارفها رو بذارید کنار هدف من از اومدن به این سایت علاوه بر رفع مشکلات خودم رفع مشکلات دیگران در حد سوادم هم هست .پس به هیچ عنوان از سوالاتتون خسته و ناراحت نمیشم و تا به جواب نهایی رسوندن مدارتون با کمک هم و دیگر دوستان پیش خواهیم رفت.(انشاا...)
                موفق باشید

                پروردگارا: به من زیستنی عطا کن که در لحظه مرگ بر بی ثمری لحظه ای که برای زیستن گذشته است حسرت نخورم، و مردنی عطا کن که بر بیهودگیش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست میداری

                دیدگاه


                  پاسخ : کمک در مورد سروو موتور

                  سلام از بنده است و باز هم متشکرم از توضیحاتتون.
                  ok، در نتیجه بنده کدهای مربوط به خواندن و نوشتن در eeprom رو به برنامه اضافه و تست میکنم و خبرش رو میدم.

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

                  شما اگر این کار ها رو انجام بدبد خیلی خوب میشه
                  1-یکی از سرووها رو باز کنید و ببینید داخلش میکروو داره و یا مقایسه گر(اگر میکرو داشت بهتره با نوعی که مقایسه گر داره تعویض بشه)
                  2- سعی کنید تغذیه رو با رله قطع و وصل کنید تا نویز هنگام وصل مدار به حد اقل برسه
                  3- بین قطع و وصل تغذیه یک مقدار فاصله بندازید (در حدود 30 ثانیه خوبه تا خازنهای مدار کاملا تخلیه بشن)
                  4- اگر مشکل برطرف نشد چک کنید آیا اون سروهایی که درست عمل نمیکنند اصلا سیگنالی از طرف میکرو بهشون میرسه یا نه(روی ورودیشون PWM دارند یا نه؟)
                  ok، راجع به سرعت قطع و وصل باید عرض کنم، که قاطی کردن سرووها برای بار سوم یا چهارم، زمانی اتفاق میافتاد که تغذیه رو حدود 3 یا 4 دقیقه قبلش قطع و دوباره وصل کرده بودم.

                  باز کردن سروو....
                  یه کم میترسم :redface:
                  تا به حال این کار رو نکردم....
                  باید گیربکسش رو به هم بریزم؟؟؟

                  قطع و وصل تغذیه رو چشم، همینطوری مستقیم انجام نمیدم، منتها فعلا رله دم دست ندارم، اشکالی نداره که از همون ترانزیستور BDX53 که جناب baby-1 فرمودند، استفاده کنم؟

                  فاصله ی بین قطع و وصل رو هم عرض کردم مراعات میکنم، در تستهای بعدی هم چشم،حتما مراعات میکنم.

                  pwm رو هم با یه lcd یا راحتتر یه led میتون چک کنم، درسته؟

                  منتها در کل بنده احساس میکنم که تغذیشون به هم میریزه که این ریختی میشن، البته اصلا مطمئن نیستم، با این حال نکته هایی که شما فرمودید رو تست میکنم و نتیجه رو خبر میدم.

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

                  دیدگاه


                    پاسخ : پاسخ : کمک در مورد سروو موتور

                    نوشته اصلی توسط pama

                    باز کردن سروو....
                    یه کم میترسم :redface:
                    تا به حال این کار رو نکردم....
                    باید گیربکسش رو به هم بریزم؟؟؟

                    قطع و وصل تغذیه رو چشم، همینطوری مستقیم انجام نمیدم، منتها فعلا رله دم دست ندارم، اشکالی نداره که از همون ترانزیستور BDX53 که جناب baby-1 فرمودند، استفاده کنم؟

                    نه نیازی نیست گریبکس باز بشه فقط ته سروو رو باز کنید یک برد و یک موتور داره همین .

                    در مورد تغذیه هم فکر نکنم مشکلی باشه فقط وقتی تغذیه رو قطع کردید حتما چک کنید ولتاژ روی سروو کاملا قطع شده باشد

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

                    دیدگاه


                      پاسخ : کمک در مورد سروو موتور

                      نوشته اصلی توسط امیر حسنی کاخکی
                      نه نیازی نیست گریبکس باز بشه فقط ته سروو رو باز کنید یک برد و یک موتور داره همین .

                      در مورد تغذیه هم فکر نکنم مشکلی باشه فقط وقتی تغذیه رو قطع کردید حتما چک کنید ولتاژ روی سروو کاملا قطع شده باشد

                      یک راه تست وجود PWM همون ال ای دیه (اگه اسکوپ باشه که بهتره)میتونید فقط تغذیه همون سروویی که قاطی میکنه رو قطع و مجددا وصل کنید ببینید سروو درست میشه یا نه!اگر درست شد یعنی PWM داریم اگرنه هم که یعنی PWM نداریم.
                      بله، بسیار ممنونم.
                      خیلی زود خبر همه چی رو میدم....


                      اضافه شده در تاریخ :
                      سلام مجدد به همه ی دوستان و اساتید گرامی علی الخصوص جناب کاخکی.
                      آقا بنده کدهای مربوط به نوشتن و خوندن از eeprom رو در یک برنامه ی جداگانه نوشتم و با یه led چک کردم، به نظر من باید درست باشه، اگر اشتباه میکنم، لطفا بفرمائید.

                      کد:
                      define osc 8
                      @ DEVICE pic16f877a,WDT_OFF ,PWRT_ON ,PROTECT_OFF ,LVP_OFF ,HS_OSC ,BOD_OFF
                      
                      a var byte
                      b var byte
                       trisc.0 = 0
                       
                       main:
                       low portc.0
                       pause 500
                       a = 100
                       
                       write 2, a
                       read 2, b
                       
                       if a = b then
                       high portc.0
                       pause 500
                       endif
                       
                       low portc.0 
                       pause 500
                       goto main
                       
                       end
                      که همونطور که مشخص هست طبق فرموده ی جناب کاخکی در ابتدا مقدار 100 رو در eeprom نوشتم و بلافاصله اون رو خوندم و بعد از اینکه شرط برابری مقدار خونده شده و نوشته شده محقق شد، led ای که در ابتدا خاموش بود رو روشن کردم، در عمل هم led چشمک میزد.

                      اگر در تبدیل به کد کردن فرموده های جناب کاخکی ، اشتباه کردم، لطفا راهنمائیم بفرمائید.

                      دلیل اینکه در برنامه ی اصلی که مربوط به سرووهاست، خوندن و نوشتن از eeprom رو تست نکردم، دلیلش این بود که اونطور که در کتاب دکتر میرزا کوچکی آورده شده، اگر در برنامه از وقفه استفاده شده باید قبل از دستور write کلیه ی وقفه ها غیر فعال بشن.

                      با اینکه در برنامه ی مربوط به سرووها همونطور که جناب perfect عمل کردن، در روتین کنترلی سرووها، (جایی که سرریز تایمر 2 اتفاق افتاده و 20 میلی ثانیه ساخته شده و پرش به جایی صورت گرفته که حالا قرار هست زمان بین 1 تا 2 میلی ثانیه برای کنترل سرووها ساخته بشه) قبل از هر چیز وقفه ها غیر فعال شدند:
                      .
                      .
                      .
                      DISABLE
                      interrupt:

                      if PIR1.1=1 then ; if TMR2IF=1 then
                      .
                      .
                      .
                      و با اینکه دوستان فرمودند که عمل خوندن باید در ابتدای برنامه صورت بگیره و علاوه بر اون ظاهرا، خوندن با وقفه ها موردی نداره و برای نوشتن باید وقفه ها غیر فعال باشند و فعلا برای بنده محل دقیق نوشتن در eeprom ، در برناممون برام کمی مبهم هست،
                      این شواهد باعث شد که بنده در برنامه ی اصلی برای تست خوندن و نوشتن از eeprom ، باز هم از دوستان کمک بگیرم.
                      زندگی برگ بودن در مسیر باد نیست
                      امتحان ریشه هاست
                      ریشه هم هرگز اسیر باد نیست
                      زندگی چون پیچک است
                      انتهایش میرسد پیش خدا!

                      دیدگاه


                        پاسخ : کمک در مورد سروو موتور

                        سلام
                        خوبه پس مشخص شد در نوشتن و خوندن از eeprom مشکلی نیست
                        خوب حالا میرسیم به اینکه کجا عملیات نوشتن انجام بشه.
                        ببینید شما برای اینکه قطعی برق رو تشخیص بدید باید یک تغییر خیلی کوچک در سخت افزارتون بدید.
                        طبق این شماتیک

                        فرض کنیم پورت آزاد میکرو پین A1 باشه
                        در این صورت وقتی تغذیه قطع بشه تقریبا بلافاصله ولتاژ از روی پین A1 قطع میشه ولی به دلیل وجود خازن پس از دیود میکرو همچنان از ذخیره خازن تغذیه میشه و روشن میمونه.
                        بنابراین میکرو از روی پایه A1 خودش میتونه تشخیص بده که ولتاژ قطع شده و دراین حالات شما باید با نوشتن یک زیر برنامه وقفه ها رو غیر فعال کنید و عملیات نوشتن بر روی Eeprom رو انجام بدید
                        امیدوارم مطلب رو خوب توضیح داده باشم

                        ظرفیت خازن رو اگر دوستان میتونن حساب کنند و اگر هم کسی این کار رو نکرد باید با آزمون و خطا بدست بیارید
                        موفق باشید
                        پروردگارا: به من زیستنی عطا کن که در لحظه مرگ بر بی ثمری لحظه ای که برای زیستن گذشته است حسرت نخورم، و مردنی عطا کن که بر بیهودگیش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست میداری

                        دیدگاه


                          پاسخ : کمک در مورد سروو موتور

                          از بنده هم سلام جناب کاخکی.
                          یک دنیا ممنونم از لطفتون.

                          و باز هم سوالات بنده!
                          جناب کاخکی اگر اجازه بدید بنده یه دور دیگه بگم باید چه کاری در این مرحله انجام بشه، که مشخص بشه، بنده درست متوجه شدم یا خیر.

                          اول اینکه ما باید در ابتدا تشخیص بدیم که چه زمانی برق میکروی ما قطع میشه که در اون زمان باید به قول فرمایش شما به یه زیر برنامه بریم و اونجا وقفه ها رو غیر فعال کنیم و مقدار pwm ای که سرووها دارن و در همون مقدار قفل شدند رو در خانه های حافظه بنویسیم.
                          درست عرض میکنم؟!

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

                          جناب کاخکی معذرت میخوام از اینکه سوالایی که میخوام بپرسم خیلی زیادن!!

                          ابهامات بنده یکیش اینجاست که هنوز هم قطع و وصل تغذیه رو دستی انجام بدم؟ یا خیر، از رله یا ترانزیستور استفاده کنم و در برنامه با high و low کردن پینی از میکرو که به اون رله یا ترانزیستور وصله، قطع و وصل تغذیه رو انجام بدم؟

                          بعدیش اینکه ما باید رله رو در ورودی رگولاتور 7805مون بیاریم؟ یعنی تو پایه ی 1 رگلاتور؟

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

                          فک کنم حسابی دارم گیج میزنم....
                          زندگی برگ بودن در مسیر باد نیست
                          امتحان ریشه هاست
                          ریشه هم هرگز اسیر باد نیست
                          زندگی چون پیچک است
                          انتهایش میرسد پیش خدا!

                          دیدگاه


                            پاسخ : کمک در مورد سروو موتور

                            نوشته اصلی توسط pama
                            اول اینکه ما باید در ابتدا تشخیص بدیم که چه زمانی برق میکروی ما قطع میشه که در اون زمان باید به قول فرمایش شما به یه زیر برنامه بریم و اونجا وقفه ها رو غیر فعال کنیم و مقدار pwm ای که سرووها دارن و در همون مقدار قفل شدند رو در خانه های حافظه بنویسیم.
                            درست عرض میکنم؟!
                            کاملا درسته

                            نوشته اصلی توسط pama
                            قطع و وصل تغذیه رو دستی انجام بدم؟ یا خیر، از رله یا ترانزیستور استفاده کنم و در برنامه با high و low کردن پینی از میکرو که به اون رله یا ترانزیستور وصله، قطع و وصل تغذیه رو انجام بدم؟
                            دستی انجام بدید (فعلا فقط عملکرد میکرو رو تست میکنیم و به سرووها و هنگ کردنشون کاری نداریم


                            نوشته اصلی توسط pama
                            بعدیش اینکه ما باید رله رو در ورودی رگولاتور 7805مون بیاریم؟ یعنی تو پایه ی 1 رگلاتور؟
                            به رله نیازی نداریم


                            نوشته اصلی توسط pama
                            و دیگه اینکه مقدار ظرفیت خازن ها رو نمیدونم باید به چه نحو محاسبه کنم!!!
                            با 1000 میکروی الکترولیت شروع کنم و بعد با توجه به چه نکاتی باید مقدارش رو عوض کنم؟
                            فعلا همون 1000 رو بگذارید
                            میزانش هم به این بستگی داره که میکرو فرصت داشته باشه تا اعمال خواسته شده رو انجام بده و وسط کار تغذیه کم نیاره و ازطرفی اینقدر ظرفیت زیاد نباشه که میکرو مدت زیادی روشن بمونه و به هنگام وصل مجدد تغذیه میکرو قاطی کنه (هرچند این زیاد مهم نیست چون با چند روش میشه خازن رو سریع تخلیه کرد و یا اگر تغذیه مجدد وصل شد میکرو برنامه رو از سر بگیره)




                            پروردگارا: به من زیستنی عطا کن که در لحظه مرگ بر بی ثمری لحظه ای که برای زیستن گذشته است حسرت نخورم، و مردنی عطا کن که بر بیهودگیش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست میداری

                            دیدگاه


                              پاسخ : کمک در مورد سروو موتور

                              بسیار ممنونم جناب کاخکی.
                              در نتیجه اول باید برم یه خازن 1000 میکرو . ترجیحا چند تا ظرفیت بالاترش رو مثل 2200 یا 3300 بگیرم و با همون 1000 سخت افزار شما رو برای رگولاتور ببندم.
                              بعد از اینکه مدار این تغییر رو پیدا کرد، طبق فرمایش شما تو این پست:

                              نوشته اصلی توسط امیر حسنی کاخکی
                              بنابراین میکرو از روی پایه A1 خودش میتونه تشخیص بده که ولتاژ قطع شده و دراین حالات شما باید با نوشتن یک زیر برنامه وقفه ها رو غیر فعال کنید و عملیات نوشتن بر روی Eeprom رو انجام بدید
                              باید تو برنامه ی اصلی که سرووها با وقفه تایمرها کنترل میشن، بگیم که هر وقت این پین تغذیش قطع شد، (جدای از disable کردن وقفه ها تو برنامه ی اصلی) به یک ساب روتینی پرش انجام بشه و در اونجا وقفه ها غیر فعال و مقدار سرووها در eeprom ذخیره بشن.
                              درست عرض میکنم؟!

                              منتها سوالی که وجود داره اینه که چجوری به میکرو بفهمونیم که این پین الان تغذیه نداره؟ یا به عبارتی در برناممون برای تشخیص قطع بودن تغذیه ی این پین، باید چه چیزی رو اضافه کنیم؟ با یه شرط در ابتدای برنامه باید چک کنیم درست عرض میکنم؟!
                              اما شرطه چی باشه باید جناب کاخکی؟
                              و lable مربوط به اون که باید در اون وقفه غیر فعال بشه و ..... رو باید در انتهای برنامه بیاریم درسته؟

                              فکر میکنم فشار کار روز، نمودش رو داره خیلی خوب رو بنده نشون میده!!!!!
                              حسابی قاطی کردم دوباره......................

                              ازتون خواهش میکنم منو ببخشید که این همه با گیج زدنهام اذیتتون میکنم...


                              زندگی برگ بودن در مسیر باد نیست
                              امتحان ریشه هاست
                              ریشه هم هرگز اسیر باد نیست
                              زندگی چون پیچک است
                              انتهایش میرسد پیش خدا!

                              دیدگاه


                                پاسخ : کمک در مورد سروو موتور

                                سلام جناب pama
                                این داستان سروو همچنان ادامه داره.......................
                                ببخشید که وسط بحث مهندسین پریدم
                                برای چک کردن قطع شدن تغذیه میتونی از وقفه خارجی استفاده کنی حساس به لبه پایین رونده
                                اگر هم که از وقفه استفاده نمیکنی با دستور IF میتونی این کار رو انجام بدی که در صورت درست بودن شرط اجرای برنامه به سابروتین مورد نظر پرش کنه

                                و lable مربوط به اون که باید در اون وقفه غیر فعال بشه و ..... رو باید در انتهای برنامه بیاریم درسته؟
                                بله درسته در آخر برنامه از زیربرنامه استفاده کنید
                                شما زندگی می کنید من بازی میکنم، زندگی شما را; زندگی بازی خدا و یک عروسکِ گِلی ست

                                دیدگاه

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