直流电机的启动与停止程序,大家有什么思路吗?
时间:10-02
整理:3721RD
点击:
采用占空比可调pwm波控制正反转的电机,初始转动设定30%占空比,怎么让我在按下启动按键时让这个占空比从0开始上升到30%,并且松开按键停止时先减速再停止?现在的程序是一按按键直接以30%占空比启动,停止一样瞬间停。这样减速电机(250W轮椅电机)齿轮磨损很厉害并且卡得齿轮声音很大,特别是高速时。
大家有什么思路的说一下吧,我去试试,谢谢。
这就是我的pwm啦,里边push_val_left就是占空比,15Khzpwm波应该是这样的吧,0~11调速等级。怎么加一个判断,我是要按按键,电机启动时让占空比慢慢上,这块能做到。就是不懂停的时候慢慢降下来。因为电机一接收到{IN1=0,IN2=0}这个信号就立马停了的
大家有什么思路的说一下吧,我去试试,谢谢。
你这个要求不高吧~这是一般得加上编码器,测量转速,然后控制启动的加速度和速度,在加上pid进行闭环控制。没有的话,就让pwm的占空比逐步增大,逐步减小。也是可以的
暂时没有测速。怎么让按按键时逐步增大,松开按键逐步减小。
按下按键时占空比逐步增加可以,我弄了个占空比自加到设定值的程序,但是松开按键的不懂写,因为一松开按键就是跳停转函数了,跟pwm波无关,直接就停了,这个过程应该是松开按键电机还在慢慢减速转动才对。
也许可以在pwm产生函数中加个增速减速判断 也就是俩函数 1的时候是增速函数 0的时候是减速函数
- /******************************************************************/
- /* 右电机调速 */
- 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}这个信号就立马停了的
用个定时器,定时去控加减PWM占空比。
最近也在准备这个,看看人家怎么回答的
这个比较好办。可以借鉴呼吸灯的程序段即可。若觉得好清采纳,谢谢!
我去找找
老师也是这么说的,就是那时听了一脸懵逼不懂怎么写
可以使用这继电器吧。
应该在起步和停止处做加减速算法。典型的梯形曲线比较好实现~