单片机PWM问题!
我用L298做电机的驱动,但是我想要有调速功能,单片机本身没有PWM输出功能,只可以用定时器了,L298有IN1.IN2,IN3,IN4,就是说要有4路PWM,求助!==...
我用L298做电机的驱动,但是我想要有调速功能,单片机本身没有PWM输出功能,只可以用定时器了,L298有IN1.IN2,IN3,IN4,就是说要有4路PWM,求助!= =、(最好带程序,思路)谢谢大家!在百度里面看了好多,可以没有看懂!
我的L298是控制两个电机的正反转的! 展开
我的L298是控制两个电机的正反转的! 展开
5个回答
展开全部
先将问题简化。
1、控制两台电机与一台电机原理是一样的。
2、直流电机控制正反转通过改变直流电极性得以改变,当PWM的占空比高于50%时,输出正极性,低于50%时,输出负极性。
因此,关键还是产生单路可根据设置占空比输出的PWM信号。
产生PWM信号有两个关键,一是开关信号周期,也就是PWM信号的周期,二是一个周期内,高电平的占空比。
信号周期与占空比均与时间有关,用定时器是合理的方法。
现在要考虑定时器了,由于有两台电机要控制,因此,需要两个PWM输出,分别接L298的ENA和ENB。若每路PWM采用两个定时器,那么,两路输出需要4个定时器,一般单片机不支持。因此,只能共用一个定时器。
具体编程只提供思路:
采用一个定时器,假设PWM周期对应的计数值为N0,PWM1、PWM2的占空比分别为DT1、DT2,那么,其对应的计数值分别为N0*DT1、N0*DT2。
不断查询定时器,
1、当定时器计数值大于等于N0*DT1时,PWM1输出低电平
2、当定时器计数值大于等于N0*DT2时,PWM2输出低电平
3、当定时器计数值大于等于N0时,PWM1、PWM2输出高电平,定时器复位。
1、控制两台电机与一台电机原理是一样的。
2、直流电机控制正反转通过改变直流电极性得以改变,当PWM的占空比高于50%时,输出正极性,低于50%时,输出负极性。
因此,关键还是产生单路可根据设置占空比输出的PWM信号。
产生PWM信号有两个关键,一是开关信号周期,也就是PWM信号的周期,二是一个周期内,高电平的占空比。
信号周期与占空比均与时间有关,用定时器是合理的方法。
现在要考虑定时器了,由于有两台电机要控制,因此,需要两个PWM输出,分别接L298的ENA和ENB。若每路PWM采用两个定时器,那么,两路输出需要4个定时器,一般单片机不支持。因此,只能共用一个定时器。
具体编程只提供思路:
采用一个定时器,假设PWM周期对应的计数值为N0,PWM1、PWM2的占空比分别为DT1、DT2,那么,其对应的计数值分别为N0*DT1、N0*DT2。
不断查询定时器,
1、当定时器计数值大于等于N0*DT1时,PWM1输出低电平
2、当定时器计数值大于等于N0*DT2时,PWM2输出低电平
3、当定时器计数值大于等于N0时,PWM1、PWM2输出高电平,定时器复位。
意法半导体(中国)投资有限公司
2021-01-14 广告
2021-01-14 广告
1、不是的,STC单片机全面兼容MCS-51单片机,可以用一般的编程器编程,但ISP功能更方便实用。 2、实验板的串口就是ISP下载用的吧。 4、汇编语言不一定要在keil里学,一般的教程都可以学。keil只是一个编译程序。因为keil编译...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
高电平的占空比是100%的时候,如果是直流电机的话应该是全速运转,如果是步进电机的话则不会转,但会不会烧坏我也不清楚。还有就是PWM的控制方式是高低电平的占空比,也就是在一个周期内高电平持续多长时间低电平持续多长时间,应该不是电压的大与小。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个可以这样理解,当你把电机接在一个有开关的电源时,当开关按下去,电机转动,松手停止供电由于惯性还不能停下来,若你按键的频率足够高,不就是PWM了吗,我是这样理解的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我觉得还是换个单片机吧 你是用的51吗 建议换成12的 那个有PWM
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询