菜鸟分享一下我们的直流电机PWM调速方案,高手请绕道。
方案纯粹是我们自己臆想出来的,后来经过试验,效果比较满意。
众所周知,PWM是通过改变占空比来改变改变电机两端的电压,从而改变电机的转速的。 以L298N电机驱动芯片为核心的驱动板一共有IN1,IN2,IN3,IN4这四个输入口,有OUT1,OUT2,OUT3,OUT4这四个输出口。
假如我们用51的话,可以用两个内部定时器来模拟输出PWM(就是用定时器定时,让一个pwm周期内输出多长时间的高电平,输出多长时间的低电平)这样也可以实现PWM调速。但是很多新手在实际编程的时候就会遇到问题。他们遇到这样的困境: 他们 把OUT1,OUT2接的电机1,把OUT3,OUT4接的电机2. 然后再让OUT1,OUT3负责输出PWM进行调速, OUT2,OUT4接GND,这样虽然可以实现前进的调速,但是后退呢? 小车必须能退能进才算是真正的智能呀!
O(∩_∩)O~,其实我们只要脑袋一转弯就能想到: 我们OUT1,OUT3进行的PWM是基于GND进行的,也就是 0的电平参考点。假如我们把这个通过IO口赋值,改变成1,那么我们就可以使占空比为负,这样就能实现反转了。
现在我们改用STC12C5A60S2,这是一块集成了两路PCA的芯片。个人非常喜欢。说简答一些,就是可以在后台输出PWM,哈哈,是不是很强大呢。而且输出的频率和占空比可以轻松调节。关于怎么使用就要去读手册了。读过手册后你就知道,通过这两路的PWM后台输出,加上电平参考点的不断变化,就能实现小车的轻松前进后退。 |