سلام به همگی
من میخوام یه موتور با L298 , و میکرو ARM راه اندازی کنم
با PWM کار میکنم
ما موج رو به پایه ENABLE درایور میدیم بعد با دو پایه خروجی از میکرو جهت موتور رو کنترل میکنیم
شبیه ساز KEIL هم موج رو شبیه سازی میکنه
ولی در عمل انگار دو پایه که برای کنترل جهت موتور استفاده میکنیم هم سطح هستند و موتور نمیچرخد
توی موتور یه صداهایی هم میاد ولی انگار قدرت چرخش موتور رو نداره
اینم کد
مشکل چیه ؟
راستی من میخوام با یه PWM دو جهت رو کنترل کنم
مدار درایور هم کاملا درسته
ممنون
من میخوام یه موتور با L298 , و میکرو ARM راه اندازی کنم
با PWM کار میکنم
ما موج رو به پایه ENABLE درایور میدیم بعد با دو پایه خروجی از میکرو جهت موتور رو کنترل میکنیم
شبیه ساز KEIL هم موج رو شبیه سازی میکنه
ولی در عمل انگار دو پایه که برای کنترل جهت موتور استفاده میکنیم هم سطح هستند و موتور نمیچرخد
توی موتور یه صداهایی هم میاد ولی انگار قدرت چرخش موتور رو نداره
اینم کد
کد:
#include <at91sam7x256.h> #include <delay.h> #define MCK 47923200 #define X 256 #define frequency 480 #define PWM_CPRD (MCK/(2*X*frequency)) #define Duty_Cycle 0.1 #define PWM_CDTY ((1-Duty_Cycle)*PWM_CPRD) int main(){ *AT91C_PMC_PCER = (1<<10|1<<3); *AT91C_PIOB_PER = (1<<0|1<<1); *AT91C_PIOB_OER = (1<<0|1<<1); *AT91C_PIOB_PDR = 1<<19; *AT91C_PIOB_ASR = 1<<19; *AT91C_PWMC_CH0_CMR = 0X108; *AT91C_PWMC_CH0_CPRDR = PWM_CPRD; *AT91C_PWMC_CH0_CDTYR = PWM_CDTY; *AT91C_PWMC_ENA =1<<0; *AT91C_PIOB_SODR=(1<<0); *AT91C_PIOB_CODR=(1<<1); while(1){ } }
راستی من میخوام با یه PWM دو جهت رو کنترل کنم
مدار درایور هم کاملا درسته
ممنون
دیدگاه