2019-07-15 11:16发布
776830702 发表于 2017-4-19 16:36 你这个要求不高吧~这是一般得加上编码器,测量转速,然后控制启动的加速度和速度,在加上pid进行闭环控制。没有的话,就让pwm的占空比逐步增大,逐步减小。也是可以的
1030402679 发表于 2017-4-19 18:08 也许可以在pwm产生函数中加个增速减速判断 也就是俩函数 1的时候是增速函数 0的时候是减速函数
最多设置5个标签!
按下按键时占空比逐步增加可以,我弄了个占空比自加到设定值的程序,但是松开按键的不懂写,因为一松开按键就是跳停转函数了,跟pwm波无关,直接就停了,这个过程应该是松开按键电机还在慢慢减速转动才对。
- /******************************************************************/
- /* 右电机调速 */
- void pwm_out_right_moto(void)
- {
- if(Right_moto_stop)
- {
- if(pwm_val_right<=push_val_right)
- {
- Right_moto_pwm=1;
- }
- else
- {
- Right_moto_pwm=0;
- }
- if(pwm_val_right>11)
- pwm_val_right=0;
- }
- else
- {
- Right_moto_pwm=0;
- }
- }
- /********************************************************/
- /***************************************************/
- ///*TIMER1中断服务子函数产生PWM信号*/
- void timer1()interrupt 3
- {
- TH1 = 0x0FF;
- TL1 = 0x0FA;
- pwm_val_left++;
- pwm_val_right++;
- pwm_out_left_moto();
- pwm_out_right_moto();
- }
复制代码这就是我的pwm啦,里边push_val_left就是占空比,15Khzpwm波应该是这样的吧,0~11调速等级。怎么加一个判断,我是要按按键,电机启动时让占空比慢慢上,这块能做到。就是不懂停的时候慢慢降下来。因为电机一接收到{IN1=0,IN2=0}这个信号就立马停了的
一周热门 更多>