اطلاعیه

Collapse
No announcement yet.

راه اندازی موتور dc

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

    #16
    پاسخ : راه اندازی موتور dc

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

    دیدگاه


      #17
      پاسخ : راه اندازی موتور dc

      نوشته اصلی توسط شاهرخ
      سلام.عالیه!همین که موتور ها سوت میزنن خودش نشون دهنده ی این هست که اصل قضیه حل شده.فقط تو برنامه فرکانس اعمالی خیلی کم هست! 200 هرتز! اون رو تغییر بدین به 10000 .دیوتی سایکل رو هم کم و زیاد بکنین ببینین کجا موتور شروع میکنه به حرکت.
      سلام از بنده است.
      باز هم متشکرم از حضورتون.
      ok، الان میرم درستش میکنم، منتها فرکانس رو تا 3 کیلو هم بردم، اتفاقی نیافتاد، ولی چشم با فرکانس بالاتر و دیوتی های مختلف تست میکنم.

      نوشته اصلی توسط شاهرخ
      راجع به سوال قبلی که موتور در ابتدای کار تکون میخوره یا نه؟ به نظرم بستگی به این موارد داره که اولا موتور چند rpm هست و دوما چه باری به شفت موتور وصله؟
      طبیعتا هرچی rpm پایینتر باشه، تغییرات در خروجی کمتر میشه یا به عبارتی عوامل خارجی(مثل بار وصل شده به شفت) نمیتونه به خاطر سنگینی و... باعث بشه شفت حرکت کنه.در ضمن شما میتونین تو اول برنامه دستور ترمز به موتور ها صادر بکنین که با توجه به همون بحث rpm شدت قفل شوندگی متناسب هست با rpm موتور . تغذیه موتور ها هم به نظرم میتونه روی این شدت قفل شوندگی تأثیر بذاره.
      پس در کل dc ها مثل سرووها نیستن که تا زمانیکه pwm بهشون نرسیده،به محض گرفتن تغذیه واسه خودشون یه حرکت الکی داشته باشند، و موتور dc ها صبر میکنند تا شرطهای حرکتیشون برسه و بعد حرکت میکنند، درست عرض میکنم؟

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

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

      دیدگاه


        #18
        پاسخ : راه اندازی موتور dc

        راستی جهت اطمینان از تولید pwm خروجی رو با ولت متر اندازه بگیرین ببینین سطح ولتاژ چقدر هست؟ (با pwm به مقدار 127 ؛ تقریبا 3 - 2.5 ولت باید نشون بده)

        rpm موتورها 200 هست؟ ولتاژ اعمالی چقدره؟ اگه بشه rpm پایین تر انتخاب بکنین، کنترل موتور بهتر و دقیقتر و البته راحت تر انجام میشه.

        دیدگاه


          #19
          پاسخ : راه اندازی موتور dc

          نوشته اصلی توسط شاهرخ
          راستی جهت اطمینان از تولید pwm خروجی رو با ولت متر اندازه بگیرین ببینین سطح ولتاژ چقدر هست؟ (با pwm به مقدار 127 ؛ تقریبا 3 - 2.5 ولت باید نشون بده)
          ok،حتما.

          نوشته اصلی توسط شاهرخ
          rpm موتورها 200 هست؟ ولتاژ اعمالی چقدره؟ اگه بشه rpm پایین تر انتخاب بکنین، کنترل موتور بهتر و دقیقتر و البته راحت تر انجام میشه.
          بله rpm، موتورها 200 هست، ولتاژشون هم 12 ولت، تو دیتا شیت راجع به جریان این طور نوشته:
          no load: 130 ma
          AT MAXIMUM EFFEICIENCY :400 ma
          stall : 1.8 ma


          اضافه شده در تاریخ :
          نوشته اصلی توسط شاهرخ
          راستی جهت اطمینان از تولید pwm خروجی رو با ولت متر اندازه بگیرین ببینین سطح ولتاژ چقدر هست؟ (با pwm به مقدار 127 ؛ تقریبا 3 - 2.5 ولت باید نشون بده)
          سلام و عرض احترام.
          جناب شاهرخ ولتاژ سر پایه pwm رو خوندم، دقیقا با دیوتی 127 حدود 2.6 بود و با دیوتی 205 حدود 3.4

          شکر خدا pwm هم ok شد و با دیوتی های مختلف سرعتهای مختلف موتور رو دیدم، منتها یه چیزی!
          اونم اینکه با فرکانس بالا موتور خیلی سخت حرکت میکنه و فرکانس رو که میارم پائین حرکتش روون میشه...

          و الان 2 تا موضوع مبهمه، یکی اینکه فرکانسی که در نظر میگیرم به کریستالم هم باید بستگی داشته باشه، درسته؟
          و اینکه به طور معمول مقدار فرکانس باید چقدر باشه؟

          و یکی دیگش اینکه موتور ما در حین حرکت باید چه جوری باشه تا بفهمیم الان حرکتش عادیه، یعنی صدایی که داره تا چه حد نرمال هست؟

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

          دیدگاه


            #20
            پاسخ : راه اندازی موتور dc

            :wow: :wow: :applause: :applause: :nerd:
            تبریــــــــــــــــــک.....بالاخره به عبارتی کوبیدین تو سر این موتورها....و چه بسا توی سر پروژه!! تا درس عبرتی بشه برای بقیه! :mrgreen: هرکی با pama در افتاد،آخرسر ورافتاد! :applause:

            اینکه با فرکانس بالا خوب کار نمیکنه واسم جای سوال شد! چه فرکانسی میدین بهش؟ همون 10 کیلو؟ ( حدود 10 کیلو هم مناسبه؛ ولی دیگه زیر 1کیلو نه! )

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

            از نظر صدای موتورها؛ خب شما مستقیم موتور رو بزنین به برق شهر :mrgreen: وقتی که ترکید ببینین چه صدایی داره! جدای از شوخی، وقتی مستقیم با 12 ولت موتور رو راه میندازین صدای موتور رو بشنوین،بعد که با درایور و با pwm های مختلف و فرکانسهای مختلف(مثلا 1k به 1k فرکانس رو تغییر بدین) تست کردین،اختلاف تقریبی رو میشه تشخیص داد.اگه منظور اصلی شما تعیین فرکانس مناسب pwm هست؛چندتاجا خوندم که فرکانس مناسب بین 5k تا 15k هست(و بعضا 20k) امیدوارم درست متوجه سوالتون شده باشم.
            انشاالله که این پروژه تون به خیر و خوشی و با موفقیت به اتمام برسه. من هم سعی میکنم تا حد توان کمکتون کنم... :redface:

            دیدگاه


              #21
              پاسخ : راه اندازی موتور dc

              سلام.
              شبتون بخیر.
              متشکرم از حضور دوبارتون.

              نوشته اصلی توسط شاهرخ
              تبریــــــــــــــــــک.....
              حالا شاخ غول نشکوندم که جناب شاهرخ!!! یه موتور dc راه انداختم اون هم با کمکهای شما

              نوشته اصلی توسط شاهرخ
              اینکه با فرکانس بالا خوب کار نمیکنه واسم جای سوال شد! چه فرکانسی میدین بهش؟ همون 10 کیلو؟ ( حدود 10 کیلو هم مناسبه؛ ولی دیگه زیر 1کیلو نه! )

              فرمول ارتباط فرکانس با کریستال رو دقیق نمیدونم؛ ولی عموما هم لازم نمیشه؛اینجا واسه شما هم فکر نکنم لازم باشه.شما تست کنین ببینین حدود چه فرکانسی خوب جواب میگیرین؟
              اتفاقا با فرکانس زیر 1 کیلو و حدود 300 هرتز خوب کار میکنه!
              ولی اگه فرکانس رو زیاد میکنم، انگار موتور جون حرکت کردن نداره...

              نوشته اصلی توسط شاهرخ
              از نظر صدای موتورها؛ خب شما مستقیم موتور رو بزنین به برق شهر :mrgreen: وقتی که ترکید ببینین چه صدایی داره! جدای از شوخی، وقتی مستقیم با 12 ولت موتور رو راه میندازین صدای موتور رو بشنوین،بعد که با درایور و با pwm های مختلف و فرکانسهای مختلف(مثلا 1k به 1k فرکانس رو تغییر بدین) تست کردین،اختلاف تقریبی رو میشه تشخیص داد.اگه منظور اصلی شما تعیین فرکانس مناسب pwm هست؛چندتاجا خوندم که فرکانس مناسب بین 5k تا 15k هست(و بعضا 20k) امیدوارم درست متوجه سوالتون شده باشم.
              ok.
              بله منظور اصلیم همون فرکانس pwm هست.

              نوشته اصلی توسط شاهرخ
              انشاالله که این پروژه تون به خیر و خوشی و با موفقیت به اتمام برسه. من هم سعی میکنم تا حد توان کمکتون کنم... :redface:
              توکل به خدا، یک دنیا متشکرم از لطفتون.

              اضافه شده در تاریخ :
              دوستان در ادامه با پیشنهاد یک دوست بنا بر این هست که با گیرنده فرستنده های مادون قرمز پالسهای شافت خروجی موتور با میکرو خونده بشه، تا بتونیم پوزیشنهایی رو که قرار هست موتور رو در اونجا ترمز کنیم بدست بیاریم.

              جناب soleares در یکی از تایپیکها پیشنهاد زیر رو دادن، حالا 2 تا موضوع وجود داره، یکی اینکه میخوام نهایتا کار، یه کار حرفه ای و درست از آب در بیاد، هم اینکه متاسفانه هیچی از pid نمیدونم، و زمانم هم بسیار محدود هست و استفاده از روش اول برام آسونتره، با توجه به حساسیت کار و شرایط بنده، دوستان کدوم روش رو پیشنهاد میدن؟

              این روشی هست که جناب soleares پیشنهاد دادند:

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

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

              دیدگاه


                #22
                پاسخ : راه اندازی موتور dc

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

                متأسفانه بنده در نوشتن برنامه PID کنترل هیچ سررشته ای ندارم :angry:

                اما واسم یه سوال مطرح شد و اون هم اینکه آیا موتور ها قراره تعداد معینی دور بزنن؟ جواب این سوال اصولا باید مثبت باشه که اون دوستمون استفاده از مولتی ترن رو پیشنهاد دادن....

                دیدگاه


                  #23
                  پاسخ : راه اندازی موتور dc

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

                  متأسفانه بنده در نوشتن برنامه PID کنترل هیچ سررشته ای ندارم :angry:

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

                  دیدگاه


                    #24
                    پاسخ : راه اندازی موتور dc

                    خواهش میکنم.تا اینجا که کار خاصی نکردیم. :nerd:

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

                    میتونین واسه شمارش از یه صفحه ی کاغذی که به قطاع های سیاه و سفید تقسیم شده استفاده بکنین(مثلا 4 قسمت یا بسته به دقت مورد نظر) و با پک فرستنده گیرنده ی مادون قرمز(مثلاCNY70) تعداد دور رو بشمارید.

                    (معمولا از opto counter و یه صفحه ی سوراخ دار استفاده میکنن که اگه محدودیت فضا داشته باشیم دردسر ساز میشه)

                    ویه سوال دیگه؛وقتی که قراره موتورها حرکت کنن،با حداکثر سرعت حرکت میکنن یا نه؟ موقعیت موتورها ثابت هست؟ یا خود موتورها هم با چرخش شفت؛ به حرکت درمیان؟

                    موفق باشین.

                    دیدگاه


                      #25
                      پاسخ : راه اندازی موتور dc

                      نوشته اصلی توسط شاهرخ
                      خواهش میکنم.تا اینجا که کار خاصی نکردیم. :nerd:

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

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

                      (معمولا از opto counter و یه صفحه ی سوراخ دار استفاده میکنن که اگه محدودیت فضا داشته باشیم دردسر ساز میشه)
                      متشکرم.
                      در حال حاضر یه سنسور IR دارم و یه پره هم که از این پره های فن زیر لپ تاپ هست رو بستم سر موتور، و میخوام با کانتر میکرو تعداد پالسها رو بشمارم، اما بسی مشکل دارم!!
                      اساس مشکلم هم تو برنامه نویسیه متاسفانه...
                      اونم سر این ماجرا هست که باید این پالسها مرتب شمرده بشه و بعد ما با توجه به شرطمون که این شرط از خروجی یه سنسور دیگست، تصمیم بگیریم که چند تعداد پالس که زده شد ما موتورمون رو stop کنیم، منتها مشکل اینجاست که نمیخوام عین فرکانس متر تو یه زمان خاصی پالسها شمرده بشه، بلکه میخوایم تو یه لوپی باشیم که تو این لوپ با هر بار دیدن مانع توسط سنسور یا به عبارتی با هر بار زده شدن پالس، یک متغیری یه دونه یه دونه افزایش پیدا کنه و به این ترتیب ما تعداد پالسهای شمرده شدمون رو داشته باشیم، تا خارج از لوپ بتونیم بر اساس تعداد این پالسها تصمیم بگیریم، که فرضا هر وقت این تعداد به 40 یا 90 رسید، حالا موتور stop بشه.
                      منتها الان تایمر 1 رو بردم تو مد کانتر و خواستم تو حلقه ی while این کارو انجام بدم که دیدم اشتباست، با وقفه خارجی هم نتونستم کارو پیش ببرم...
                      اینه که باز هم محتاج کمک دوستانم...

                      نوشته اصلی توسط شاهرخ
                      ویه سوال دیگه؛وقتی که قراره موتورها حرکت کنن،با حداکثر سرعت حرکت میکنن یا نه؟ موقعیت موتورها ثابت هست؟ یا خود موتورها هم با چرخش شفت؛ به حرکت درمیان؟
                      موفق باشین.
                      بله باید با حد اکثر سرعت حرکت کنند، منتها بنده دقیقا نمیدونم حداکثر مقدار مجاز duty که میتونیم به موتور بدیم چند درصده؟ بنده تا دیوتی 80% هم به موتور دادم.
                      موتورها هم هنگاه حرکت ثابتند جناب شاهرخ، فقط شافتشون میچرخه.

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

                      دیدگاه


                        #26
                        پاسخ : راه اندازی موتور dc

                        اول جواب سوال دوم!

                        حداکثر دیوتی 100% هست.اتفاقی نمیفته! مثل اینه که موتور رو مستقیم به تغذیه مربوطه ش وصل کردین.

                        باز هم احتیاطا این سوال رو میپرسم:

                        خروجی سنسور ها رو ازطریق Op-amp و مدار مقایسه کننده میدین به میکرو؟ درسته؟

                        حالا جواب سوال اول با یه سوال دیگه! :nerd:

                        پالسها تو یه جهت خاص که شمارش میشن؛ وقتی دستور Stop داده شد؛ اگه موتور بخواد دوبار تو همون جهت حرکت کنه، مقدار شمارش های قبلی چی میشه؟ لازم هست ذخیره بشه یا نه؟ و اگه موتور برعکس کار بکنه چی؟ شمارشهای قبلی رو پاک میکنیم؟
                        واسه این پرسیدم که اگه لازم نیست این شمارش به مقدار زیاد انجام بشه، میتونین از ماژول تایمر-کانتر صفر استفاده کنین.(همون پایه A.4 معروف، که درین باز هم هست)

                        دیدگاه


                          #27
                          پاسخ : راه اندازی موتور dc

                          نوشته اصلی توسط شاهرخ
                          اول جواب سوال دوم!

                          حداکثر دیوتی 100% هست.اتفاقی نمیفته! مثل اینه که موتور رو مستقیم به تغذیه مربوطه ش وصل کردین.
                          متشکرم.

                          نوشته اصلی توسط شاهرخ
                          باز هم احتیاطا این سوال رو میپرسم:

                          خروجی سنسور ها رو ازطریق Op-amp و مدار مقایسه کننده میدین به میکرو؟ درسته؟
                          حالا مطمئن باشید که بنده بیسواد بیسوادم...
                          نه! سنسور IR ها رو همینجوری زدم به میکرو oo:

                          نوشته اصلی توسط شاهرخ
                          حالا جواب سوال اول با یه سوال دیگه! :nerd:

                          پالسها تو یه جهت خاص که شمارش میشن؛ وقتی دستور Stop داده شد؛ اگه موتور بخواد دوبار تو همون جهت حرکت کنه، مقدار شمارش های قبلی چی میشه؟ لازم هست ذخیره بشه یا نه؟ و اگه موتور برعکس کار بکنه چی؟ شمارشهای قبلی رو پاک میکنیم؟
                          واسه این پرسیدم که اگه لازم نیست این شمارش به مقدار زیاد انجام بشه، میتونین از ماژول تایمر-کانتر صفر استفاده کنین.(همون پایه A.4 معروف، که درین باز هم هست)
                          راستش ما 2 تا موتور داریم که قراره به هر دوشون سر چند تا پالس دستور stop بدیم، و بله در هر دو حالت راستگرد و چپگرد لازم هست که مقدار قبلی صفر بشه و برای ادامه ی حرکت و stop شدن در پوزیشن جدید، پالس های جدید رو میشمریم.

                          بله شما کاملا درست میفرمائید میتونیم هر یک از تایمرهای 0 یا 1 رو در مد کانتر تعریف کنیم یا اینکه از اینت اکسترنال کمک بگیریم و ازش برای شمارش پالسها استفاده کنیم اما نمیدونم من چرا دارم رو یه همچین برنامه ی ساده ای گیج میزنم!
                          زندگی برگ بودن در مسیر باد نیست
                          امتحان ریشه هاست
                          ریشه هم هرگز اسیر باد نیست
                          زندگی چون پیچک است
                          انتهایش میرسد پیش خدا!

                          دیدگاه


                            #28
                            پاسخ : راه اندازی موتور dc



                            سنسور ها رو اینطوری وصل کنین و بعد به میکرو وصل کنین.مقدار پتانسیومتر رو حدود 10 کیلو انتخاب کنین.بقیه مقادیر درست هستن.

                            و اینکه تعداد دور هر موتور جداگانه باید شمرده بشه؟(سرعت موتورها متفاوت از هم هستن؟)

                            دیدگاه


                              #29
                              پاسخ : راه اندازی موتور dc

                              متشکرم.
                              الان متوجه منظورتون شدم.
                              راستش سوتی ای که دادم اینه که پ امپ رو نذاشته بودم!

                              راجع به موتور هم باید عرض کنم که بله، پالسهای هر کدوم باید جداگونه شمرده بشه منتها هر 2 موتور سرعتهای یکسانی دارند.


                              اضافه شده در تاریخ :
                              سلام و عرض احترام.
                              دوستان این برنامه رو واسه خوندن تعداد پالسهایی که شفت خروجی موتور میزنه،و سنسور فرستنده گیرنده ی مادون قرمز اونها رو تشخیص میده و با کمک اینت اکسترنال میکرو نوشتم، منتها متاسفانه فعلا تا یه روز دیگه برام امکان تست با موتور وجود نداره، تا بتونم از صحت برنامه مطمئن بشم، میشه دوستان لطف کنن و یه نگاهی به برنامه بندازن؟!
                              و اینکه لطفا یه پیشنهادی برای تست برنامه بهم بدید، با آیسی 555 تست کردم با چرخوندن پتانسیومتر 100 کیلویی که یه آیسی هست ظاهرا فرکانس زیاد میشد،منتها مقدار اولیه ای که از ابتدا رو lcd داشتم از حدود 2000 شروع به افزایش میکرد!

                              حالا نمیدونم اصلا این شبیه سازی با 555 درست بوده یا خیر؟ و یا اینکه باید از چیز دیگه ای واسه تست استفاده کنم، که مطمئن بشم با هر 1 پالسی که زده میشه متغیر من یه دونه زیاد میشه....

                              کد:
                              @ DEVICE PIC16F877A ,WDT_OFF ,LVP_OFF ,PROTECT_OFF ,PWRT_ON ,BOD_OFF
                               
                              DEFINE LCD_DREG PORTD
                              DEFINE LCD_DBIT 4
                              DEFINE LCD_RSREG PORTD
                              DEFINE LCD_RSBIT 2
                              DEFINE LCD_EREG PORTD
                              DEFINE LCD_EBIT 3
                              DEFINE LCD_BITS 4
                              DEFINE LCD_LINES 2
                              
                              A VAR WORD
                              
                              ON INTERRUPT GOTO lable
                              OPTION_REG = $7F
                              INTCON = %10010000
                              
                              main:
                                LCDOUT $FE, 1
                                LCDOUT "A="
                                LCDOUT $FE, $14
                                LCDOUT #A
                                pause 100
                                goto main
                                
                                DISABLE
                              lable:
                                A = A + 1
                                PAUSE 100
                                INTCON.1 = 0
                              RESUME
                                ENABLE    
                              END
                              بسیار متشکر میشم دوستان راهنمائی بفرمایند...
                              زندگی برگ بودن در مسیر باد نیست
                              امتحان ریشه هاست
                              ریشه هم هرگز اسیر باد نیست
                              زندگی چون پیچک است
                              انتهایش میرسد پیش خدا!

                              دیدگاه


                                #30
                                پاسخ : راه اندازی موتور dc

                                سلام
                                َََ-A رو مقدار دهی اولیه نکردی.
                                قبل از main مقدار صفرو به A بده که تو لوپتم نباشه.
                                -حواست باشه بدلیل OPTION_REG = $7F وقفه رو لبه بالارونده اتفاق میفته پس برای تست به جای 555 یه پول داون ببند رو b0 ات و با کلید فشاری که به vcc وصله به b0 دستی پالس بالارو بده.
                                باقیش درسته...

                                - با توجه به این که برای برنامه نهاییت نیاز به دو شمارنده داری که با هر پالس اینتراپت شن و اگر میکروت 1 ext-intr داره هم میتونی از کانترها با ورودی کلاک پالس خارجی استفاده کنی که مقدار اولیه تایمرو مثلا اگه 8 بیتییه 254 بزاری...
                                موفق باشی.
                                مشغول در اين دنياي آکل و ماکول .......

                                دیدگاه

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