اطلاعیه

Collapse
No announcement yet.

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

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

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

    سلام و عرض احترام.
    دوستان بنده میخوام برای اولین بار یه موتور دی سی گیربکس دار رو با l298 درایو کنم، ولتاژ موتورم 12 ولته و جریانش هم حداکثر 1 آمپر.
    فقط هم در حد تئوری میدونم که وقتی از l298 استفاده میشه برا راه اندازی موتور dc، باید اول پایه 6 رو ولتاژ 5 بدیم واگر به پایه5 (input1) ولتاژ 5 رو بدیم و به پایه 7(input2) ولتاژ 0 (یعنی زمینش کنیم) موتور شروع به چرخش میکنه و اگر به input1 ولتاژ 0 وبه input2 ولتاژ 5 رو متصل کنیم موتور برعکس حالت اول میچرخه در صورتی که هر دو پایه ورودی ولتاژ بالا یا هر دو ولتاژ پایین داشته باشن موتور ترمز میکنه
    حالا اگر به پایه 6 ولتاژ 0 بدیم موتور ازاده (ترمز نمیکنه و نمیچرخه) (مثل اینکه موتور روشن نیست و ورودی های موتور به هم متصل نیستن)

    موتور دومی هم اگر در کار باشه مثل موتور اول با Input 3 ,input 4 کنترل میشه
    و ما باید پایه های input 1, input 2, input 3 ,input 4 رو به میکرو متصل کنیم تا بتونیم موتورها رو کنترل کنیم

    درست عرض میکنم؟؟!
    البته این کنترل جهت چرخش موتور بود برای کنترل سرعت باید با روش PWM ولتاژ رو به پایه Enable بدیم که دیگه نمیدونم باید چیکار کنیم؟؟؟!!!

    و یه سوال :redface:
    ما دو تا از پین های میکرو رو میخوایم که به عنوان ورودی وارد درایور میشن و با اون میتونیم موتور رو چپ گرد راستگرد یا ترمز کنیم، درست؟
    حالا ما باید با high و low کردن این 2 تا پایه تو برناممون موتور رو چپگرد راستگرد کنیم، و کار برنامه نویسی خاص و بیشتر دیگه ای نداره درست عرض میکنم؟؟
    حالا البته گذشته از کنترل سرعتش...
    راستی میکروم 16f877a و کامپایلرم pbp هست.
    بسیار متشکر میشم از دوستان با تجره تا بنده رو یاری بفرمایند.
    زندگی برگ بودن در مسیر باد نیست
    امتحان ریشه هاست
    ریشه هم هرگز اسیر باد نیست
    زندگی چون پیچک است
    انتهایش میرسد پیش خدا!

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

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

    اول اینکه همین مطلب رو سرچ زدی ببینی چیزی گیرت میاد یا نه؟(هم انجمن هم گوگل و...)

    پیشنهادم هم اینه که یه برنامه نمونه واسه راه اندازی موتور با L298N به همراه PCB و شماتیک برات بفرستم، کاری که میخوای راه میفته؟

    دیدگاه


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

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

      نوشته اصلی توسط شاهرخ
      اول اینکه همین مطلب رو سرچ زدی ببینی چیزی گیرت میاد یا نه؟(هم انجمن هم گوگل و...)
      پیشنهادم هم اینه که یه برنامه نمونه واسه راه اندازی موتور با L298N به همراه PCB و شماتیک برات بفرستم، کاری که میخوای راه میفته؟
      بله سرچ کردم منتها تو سایت اکثر مطالب با avr بود که بنده ازش سر در نمیارم، گوگل هم چیز دندون گیری بهم نداد...
      واقعا ازتون متشکر میشم اگه این لطف رو در حق بنده بفرمائید :job:

      اضافه شده در تاریخ :
      سلام مجدد.
      دوستان خوشبختانه قضیه تا یه جاهاییش حل شد، چپگرد و راستگرد رو چرخید، یه pwm هم با دیوتی 50 درصد یا همون pwm متقارن براش ساختم و بهش دادم، و باز هم میچرخه، و میدونیم برای اینکه بشه سرعت موتور رو کنترل کرد باید نسبت high به low رو تو pwm ای که ساختیم ، کم و زیاد کرد، منتها میخوام بدونم برای اینکه بتونم کنترل سرعتش رو در دست بگیرم، مقدار زمان high رو باید چجوری و بر چه اساسی بدست بیارم؟
      موتورم 200 rpm و گشتاورش 1 kg.cm هست.

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

      دیدگاه


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

        نوشته اصلی توسط pama
        برای اینکه بتونم کنترل سرعتش رو در دست بگیرم، مقدار زمان high رو باید چجوری و بر چه اساسی بدست بیارم؟
        موتورم 200 rpm و گشتاورش 1 kg.cm هست.
        سلام عزیز
        یعنی میخوای بدونی در یک سرعت خاص، نسبت PWM چقدر باشه؟؟
        سنسور سرعت هم داری؟؟
        :nerd:
        من نبودم آنکه از من در خیالت ساختی ...
        پس تو هم چون دیگران چندان مرا نشناختی

        دیدگاه


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

          نوشته اصلی توسط _shokrii_
          سلام عزیز
          یعنی میخوای بدونی در یک سرعت خاص، نسبت PWM چقدر باشه؟؟
          سنسور سرعت هم داری؟؟
          :nerd:
          سلام دوست من.
          بله، میخوام بدونم تو سرعتهای مختلف دیوتی سایکلمون باید چقدر باشه؟
          یعنی تجربه ای که دوستان داشتند به چه صورت هست؟
          یا در کل زمان high بودن رو بر اساس چه معیاری باید لحاظ کنیم؟
          متشکرم از لطفتون.

          اضافه شده در تاریخ :
          و یه موضوع دیگه!
          چرا من دیوتی سایکل رو با هر درصدی به موتور میدم، تو همه ی حالتها موتور با یه سرعت میچرخه و با کم و زیاد شدن Thigh سرعت موتور تغییر نمیکنه؟؟؟!!!
          زندگی برگ بودن در مسیر باد نیست
          امتحان ریشه هاست
          ریشه هم هرگز اسیر باد نیست
          زندگی چون پیچک است
          انتهایش میرسد پیش خدا!

          دیدگاه


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

            سلام. :nerd: اگه خیلی ساده به قضیه نگاه کنیم؛اینطور میشه که باPWM برابر255 حداکثر سرعت رو داریم وبا PWM مثلا10، 0.1 سرعت نامی.ولی واسه سرعت های پایین این درست نیست و بستگی به شرایطی داره.مثلا یه برنامه ی تست بنویسین که PWM ی که به موتور اعمال شده،دونه دونه زیاد کنه.خواهید دید که تو مقادیر اولیه موتور عملا حرکتی نمیکنه و فقط از موتور صدای سوت شنیده میشه تا جایی که موتور یواش یواش شروع میکنه به کار کردن که اون مقدار PWM ی که موتور توی اون مقدار شروع کرد به چرخیدن ، وابسته به موتور هست.یادمه با یه موتور300rpm و12ولت حدود 70-80 جواب گرفته بودم(منظورم70 یا 80 از 255 هست) حالا اگه باری به موتور وصل باشه باز این عدد عوض میشه. واگه برعکس این کار رو انجام بدی یعنیPWM رو از 255 شروع کنی به کاهش دادن اون عددی که موتور به ازای اون از حرکت می ایسته با عدد قبلی متفاوت هست.بهتره واسه اینکه دقیقتر جواب بگیری باشفت انکودر دور موتور رو اندازه بگیری و به ازای PWM اعمالی؛ اون دور رو یا نشون بدی یا تو EEPROM ذخیره کنی و بعدا با پروگرمر بخونی...
            حالا یه موضوع دیگه! ممکنه کد و شماتیک مدار رو بزاری ببینم چرا با تغییر دیوتی سایکل سرعت موتور ثابته؟!! مگه دست خودشه! :twisted: راستی PWM رو نرم افزاری تولید میکنی یا از سخت افزارش استفاده میکنی؟

            دیدگاه


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

              در تکمیل توضیحات جناب شاهرخ
              شما میتونی به جای عدد 0 تا 255 (دیوتی سایکل) یک متغیر بذاری :agree:
              بعد با توجه به مقدار اون متغیر دیوتی سایکل ایجاد میشه

              مثلا میتونی مقدار اون متغیر را با پتانسیومتر از A/D بگیری(با توجه به مقدار پتانسیومتر سرعت تغیر میکنه)
              یا تو برنامه دیوتی سایکل را مثلا هر 10 ثانیه 50 تا کم کن
              و کلا هر جوری دوست داری مقدار اون متغیر رو کم و زیاد کن تا سرعت موتور تغیر کنه
              اگه سرعت موتور تغیر نمیکنه یک جای کار میلنگه :mrgreen:

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

              دیدگاه


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

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

                (راستی اون دیود هرزگرد های موتور رو یادت نره که میکرو را ریست میکنه )
                من یکبار همون دیود ها را نگذاشته بودم حسابی رفتم سر کار
                سر همون رباته واسه تست موتور اومدم یه برنامه ساده نوشتم فقط واسه چرخش به یک سمت؛درست کار کرد.بعد افکار خبیث اومد سراغم!! گفتم اگه تو حداکثر سرعت، یهو چپ گرد رو راست گرد کنم چی میشه؟ موتور چه حالی میشه؟ اومدم برنامه رو نوشتم(فقط واسه یه موتور)،غافل از اینکه دیود ها رو یادم رفته بزارم..... :cry2: هنوز اون L298 رو دارم که فقط نصفش سالمه و واسه بعضی از تست ها ازش استفاده میکنم!! :mrgreen:

                دیدگاه


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

                  نوشته اصلی توسط شاهرخ
                  سلام. :nerd: اگه خیلی ساده به قضیه نگاه کنیم؛اینطور میشه که باPWM برابر255 حداکثر سرعت رو داریم وبا PWM مثلا10، 0.1 سرعت نامی.ولی واسه سرعت های پایین این درست نیست و بستگی به شرایطی داره.مثلا یه برنامه ی تست بنویسین که PWM ی که به موتور اعمال شده،دونه دونه زیاد کنه.خواهید دید که تو مقادیر اولیه موتور عملا حرکتی نمیکنه و فقط از موتور صدای سوت شنیده میشه تا جایی که موتور یواش یواش شروع میکنه به کار کردن که اون مقدار PWM ی که موتور توی اون مقدار شروع کرد به چرخیدن ، وابسته به موتور هست.یادمه با یه موتور300rpm و12ولت حدود 70-80 جواب گرفته بودم(منظورم70 یا 80 از 255 هست) حالا اگه باری به موتور وصل باشه باز این عدد عوض میشه. واگه برعکس این کار رو انجام بدی یعنیPWM رو از 255 شروع کنی به کاهش دادن اون عددی که موتور به ازای اون از حرکت می ایسته با عدد قبلی متفاوت هست.بهتره واسه اینکه دقیقتر جواب بگیری باشفت انکودر دور موتور رو اندازه بگیری و به ازای PWM اعمالی؛ اون دور رو یا نشون بدی یا تو EEPROM ذخیره کنی و بعدا با پروگرمر بخونی...
                  سلام از بنده است جناب شاهرخ.
                  متشکرم از پاسختون.
                  تا اینجا رو ok.

                  نوشته اصلی توسط شاهرخ
                  حالا یه موضوع دیگه! ممکنه کد و شماتیک مدار رو بزاری ببینم چرا با تغییر دیوتی سایکل سرعت موتور ثابته؟!! مگه دست خودشه! :twisted: راستی PWM رو نرم افزاری تولید میکنی یا از سخت افزارش استفاده میکنی؟
                  شماتیک که متاسفانه فعلا ندارم ولی عین دیتا شیت بستم، بین out درایور و 2 تا پایه ی موتور هم دیدوهای 1n4007 رو گذاشتم.
                  کد رو چشم.
                  ولی ظاهرا یه سوتی عظمی دادم!
                  چون شنیده بودم pwm رو به enable ندیم و بدیمش به یکی از پایه های input درایور، برای همین من 2 تا پایه از میکرو گرفتم، (یکیش pwm و یکیش هم واسه جهت چرخش) که دادمشون به 5 و 7 l298، اشتباه کردم درسته؟
                  یکی هم اینکه فرکانس pwm رو 1 کیلو هرتز دادم!

                  چرا میگن نباید pwm به ENA یا ENB داد؟


                  اضافه شده در تاریخ :
                  این اولیشه که pwm متقارن باهاش ساختم، با سرریز تایمر 1

                  کد:
                  @ DEVICE PIC16F877A ,WDT_OFF ,LVP_OFF ,PROTECT_OFF ,PWRT_ON ,BOD_OFF
                  
                  A var word
                  TRISD = %10111111
                  T1CON = 0
                  A = $ffff
                  A = A - 490
                  start:
                    high portd.0
                    TMR1H = A.BYTE1
                    TMR1L = A.BYTE0
                    PIR1.0 = 0
                    T1CON.0 = 1
                      
                   IF PIR1.0 = 1 THEN 
                    T1CON.0 = 0
                    TOGGLE PORTD.1
                   endif 
                    
                     GOTO START
                  END
                  این هم با سرریز تایمر 2 pwm با duty 70% ساختم

                  کد:
                  @ DEVICE PIC16F877A ,WDT_OFF ,BOD_OFF ,LVP_OFF ,PWRT_ON ,PROTECT_OFF
                  TRISD.1 = 0
                  PR2 = 100
                  start:
                  
                   low PORTD.0
                   
                    PORTD.1 = 1
                    TMR2 = 0
                    T2CON = %00110100
                    PIR1.1 = 0
                  
                  if PIR1.1 = 1 THEN 
                    TMR2 = 0 
                    PORTD.1 = 0
                    T2CON = %00010100
                    PIR1.1 = 0
                  endif
                  
                  IF PIR1.1 = 1 THEN 
                    GOTO start
                  endif  
                  end
                  خیلی اشباه دارم؟؟!!
                  زندگی برگ بودن در مسیر باد نیست
                  امتحان ریشه هاست
                  ریشه هم هرگز اسیر باد نیست
                  زندگی چون پیچک است
                  انتهایش میرسد پیش خدا!

                  دیدگاه


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

                    نوشته اصلی توسط pama
                    سلام از بنده است جناب شاهرخ.
                    متشکرم از پاسختون.
                    تا اینجا رو ok.
                    خواهش میکنم.فعلا که کاری انجام ندادم برادر من... :smile:

                    نوشته اصلی توسط pama
                    ولی ظاهرا یه سوتی عظیم دادم!
                    چون شنیده بودم pwm رو به enable ندیم و بدیمش به یکی از پایه های input درایور، برای همین من 2 تا پایه از میکرو گرفتم، (یکیش pwm و یکیش هم واسه جهت چرخش) که دادمشون به 5 و 7 l298، اشتباه کردم درسته؟
                    یکی هم اینکه فرکانس pwm رو 1 کیلو هرتز دادم!

                    چرا میگن نباید pwm به ENA یا ENB داد؟
                    ببخشید PWM رو کی گفته نباید بدیم به EN ؟ پس به کجا وصلش کنیم؟؟!!

                    ENA و ENB به PWM1 & PWM2
                    IN1,IN2... کنترل جهت چرخش و ترمز
                    (دیتاشیت L298 رو مجدا نگاه کن)

                    و اما کد....
                    مگه تو کامپایلر PIC Basic دستور تولید PWM نیست که اینقدر خودتون رو اذیت کردین؟!!! دستور تولیدPWM نرم افزاری تو اون کدی که فرستاده بودم هست. یه دستور دیگه هم داره فکر کنم HPWM هست؛ که خودش سخت افزاری PWM رو تولید میکنه(جسارتا جهت یاداوری از پایه های CCP1 , CCP2 خروجی رو میگیرین)

                    دیدگاه


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

                      نوشته اصلی توسط شاهرخ
                      ببخشید PWM رو کی گفته نباید بدیم به EN ؟ پس به کجا وصلش کنیم؟؟!!
                      ENA و ENB به PWM1 & PWM2
                      IN1,IN2... کنترل جهت چرخش و ترمز
                      (دیتاشیت L298 رو مجدا نگاه کن)
                      نمیدونم چرا این فکرو کردم ولی یه چند جا تو نت خونده بودم، به قول شما دیتا شیت هم فرمایش شما رو تائید میکنه...
                      پس از 2 تا پین میکرو بره به in1 و in2 برای پچ و راستگرد شدن، از یه پین دیگه میکرو pwm بره به ENA درایور ، شرمنده ولی متوجه منظورتون از ENA و ENB به PWM1 & PWM2 نشدم، یعنی مگه غیر از این هست که pwm به یکی از enable ها میره؟ پس تکلیف اون یکی چی میشه؟
                      واقعا معذرت میخوام :redface:
                      راستی فرکانس pwm که در نظر گرفتم زیاد نیست؟
                      من گرفتم 1khz....

                      نوشته اصلی توسط شاهرخ
                      و اما کد....
                      مگه تو کامپایلر PIC Basic دستور تولید PWM نیست که اینقدر خودتون رو اذیت کردین؟!!! دستور تولیدPWM نرم افزاری تو اون کدی که فرستاده بودم هست. یه دستور دیگه هم داره فکر کنم HPWM هست؛ که خودش سخت افزاری PWM رو تولید میکنه(جسارتا جهت یاداوری از پایه های CCP1 , CCP2 خروجی رو میگیرین)
                      چرا درست میفرمائید شما، منتها این دستورات pic basic pro هر دفعه یه مشککلی دارن، برای همین گفتم حالا که تایمرها هستن و مطمئن ترن از اونها استفاده کنم.

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

                      دیدگاه


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

                        خب هر L298 قابلیت کنترل دوتا موتور رو داره منظورم از PWM1 -pwm2 اون بود.فرکانس رو حدود 10 کیلو هرتز تنظیم کنین.

                        اکیدا توصیه میکنم که از ماژول pwm میکرو استفاده کنین.دستورش هم به این شکل هست:

                        کد:
                        DEFINE CCP1_REG PORTC 'Hpwm 1 pin port
                        DEFINE CCP1_BIT2   'Hpwm 1 pin bit
                        DEFINE CCP2_REG PORTC 'Hpwm 2 pin port
                        DEFINE CCP2_BIT 1   'Hpwm 2 pin bit
                               DEFINE HPWM1_TIMER 1
                               DEFINE HPWM2_TIMER 1
                        .
                        .
                        .
                        hpwm 2, 64, 10000
                        با این کد pwm به میزان 25% (64 از 255) با فرکانس 10 کیلوهرتز رو پایه16(همون CCP2 یا PortC.1) میکرو 16f877a تولید میشه.این که خیلی ساده تر و دقیقتر هست! :nice:

                        دیدگاه


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

                          نوشته اصلی توسط شاهرخ
                          خب هر L298 قابلیت کنترل دوتا موتور رو داره منظورم از PWM1 -pwm2 اون بود.فرکانس رو حدود 10 کیلو هرتز تنظیم کنین.
                          ok.
                          بسیار متشکرم از لطفتون جناب شاهرخ.
                          میدونم خیلی دارم گیج میزنم، منتها مگه نه اینکه برای چپ و راستگرد شدن موتور باید پایه ی 6 درایور یا همون EnA رو بدیم به 5 ولت، بعد in1 و in2 یا 5 و 7 درایور رو بدیم به 2 تا پین میکرو تا با high و low کردن این 2 تا پین، چپ و راستگرد بشه موتورمون؟!
                          در نتیجه اگه بخوایم pwm رو هم بدیم، نباید یه فکری به حال EnA بکنیم؟ یا اینکه نه مشکلی نیست و این پایه ی درایور رو بدیم به pwm و اون 2 تای دیگه رو هم مثل قبل بدیم به میکرو؟

                          نوشته اصلی توسط شاهرخ
                          اکیدا توصیه میکنم که از ماژول pwm میکرو استفاده کنین.دستورش هم به این شکل هست:

                          کد:
                          DEFINE CCP1_REG PORTC 'Hpwm 1 pin port
                          DEFINE CCP1_BIT2   'Hpwm 1 pin bit
                          DEFINE CCP2_REG PORTC 'Hpwm 2 pin port
                          DEFINE CCP2_BIT 1   'Hpwm 2 pin bit
                                 DEFINE HPWM1_TIMER 1
                                 DEFINE HPWM2_TIMER 1
                          .
                          .
                          .
                          hpwm 2, 64, 10000
                          با این کد pwm به میزان 25% (64 از 255) با فرکانس 10 کیلوهرتز رو پایه16(همون CCP2 یا PortC.1) میکرو 16f877a تولید میشه.این که خیلی ساده تر و دقیقتر هست! :nice:
                          ok.
                          بسیار متشکرم از لطفتون جناب شاهرخ.
                          چشم.

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


                          اضافه شده در تاریخ :
                          نوشته اصلی توسط _shokrii_
                          در تکمیل توضیحات جناب شاهرخ
                          شما میتونی به جای عدد 0 تا 255 (دیوتی سایکل) یک متغیر بذاری :agree:
                          بعد با توجه به مقدار اون متغیر دیوتی سایکل ایجاد میشه

                          مثلا میتونی مقدار اون متغیر را با پتانسیومتر از A/D بگیری(با توجه به مقدار پتانسیومتر سرعت تغیر میکنه)
                          یا تو برنامه دیوتی سایکل را مثلا هر 10 ثانیه 50 تا کم کن
                          و کلا هر جوری دوست داری مقدار اون متغیر رو کم و زیاد کن تا سرعت موتور تغیر کنه


                          متشکرم جناب shokrii، فکر خیلی خوبیه.

                          نوشته اصلی توسط _shokrii_
                          (راستی اون دیود هرزگرد های موتور رو یادت نره که میکرو را ریست میکنه )
                          من یکبار همون دیود ها را نگذاشته بودم حسابی رفتم سر کار
                          نوشته اصلی توسط _shokrii_
                          گذاشتمشون.

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

                          دیدگاه


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



                            تمامی اسامی مشابه که توی کادرهای زرد رنگ نوشته شده( همون Port تو نرم افزار آلتیوم) به هم وصل هستن.
                            RM=Right motor
                            LM=Left motor

                            پایه هایی که به پورت D وصلن واسه کنترل جهت چرخش هست.پایه های 16 و 17 میکرو هم که خروجی pwm هست و وصله به En ها...

                            سوالی بود در خدمتم....

                            دیدگاه


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

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

                              جناب شاهرخ اول از همه معذرت میخوام از تاخیرم در پاسخ.
                              متاسفانه تمام دیروز اینترنت از دسترسم خارج شده بود.

                              راجع به شماتیکی که لطف کردید باید عرض کنم که بنده دقیقا عین فرمایش شما عمل کردم، با یک تفاوت اساسی که سوالمم همینه...
                              اونم اینکه پایه 6 درایور یا همون enable رو به 5 ولت وصل کردم!!!
                              بعد که این پایه رو از 5 ولت جدا میکنم و به pwm میدم باعث میشه اصلا موتور حرکت نکنه.

                              مگه نه اینکه پایه 6 پایه فعال سازی موتور هست و باید به 5 ولت بره؟!
                              وبعد که از 5 ولت جداش میکنیم و به pwm میدیم در واقع داریم با pwm هم ولتاژ به موتورموون اعمال میکنیم، درست عرض میکنم؟!
                              پس چرا موتور وایمیسته؟

                              و یک سوال اساسی دیگه!
                              البته معذرت میخوام از این همه سوال و درد سر :redface:

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

                              متشکرم از لطف همه.

                              اضافه شده در تاریخ :
                              باز هم سلام.
                              دوستان طبق فرمایش جناب شاهرخ برنامه رو با HPWM نوشتم، پایه ها رو هم دقیقا عین شماتیک ایشون گذاشتم، یعنی 2 تا پایه ی میکرو الان شده واسه چپگرد و راستگرد و رفته به 5 و 7 درایور، که تو برنامه این 2 تا پین رو واسه چپگرد و راستگرد high و low کردم، پین RC.2 هم اومده به enable ، که در اصل pwm رو میفرسته به موتور، تا اینجا مشکلی ندارم؟!
                              منتها یه مشکلی، نمیدونم چرا موتور وقتی میخواد حرکت کنه، سوت میکشه! و خیلی سخت حرکت میکنه؟؟!!
                              فرکانس رو هم هر چی کم و زیاد میکنم حل نمیشه!!!

                              کد:
                              @ DEVICE PIC16F877A ,WDT_OFF ,BOD_OFF ,PWRT_ON ,LVP_OFF ,PROTECT_OFF
                              
                              DEFINE CCP1_REG PORTC
                              DEFINE CCP1_BIT 2
                              TRISD = 0
                              
                              START:
                              
                               low portd.1
                               high portd.0
                               
                                HPWM 1, 127, 200
                                PAUSE 5
                                GOTO START
                              END
                              زندگی برگ بودن در مسیر باد نیست
                              امتحان ریشه هاست
                              ریشه هم هرگز اسیر باد نیست
                              زندگی چون پیچک است
                              انتهایش میرسد پیش خدا!

                              دیدگاه

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