其实还是用PWM控制,用一个引脚不停输出高低变换的电平,通过驱动电路,控制直流电机。当在一个周期内高电平持续时间变长,低电平时间短,那么相当于一个周期内输出的功率变大,则速度变快。否则变慢。如果控制多个,就用中断嘛,AVR有3个中断源,在中断中处理PWM。或者在主程序中用switch判别,控制多路。
速度控制就是看驱动电机的平均电压是多少。
所以用到PWM波形,用定时器产生PWM信号,改变寄存器的参数,改变PWM信号的占空比,占空比不同对应的平均电压不同。占空比越大,平均电压越大,速度越快。反之...
楼上说的是不全面滴!当PWM波的占空比为50%时输出地平均电压为零,电机不转但此时电机上是有电的。打个比方就相当于给电机1ms的正向电压,紧接着又加1ms的负向电压,电机正转一会反转一会,总体上是不动的。这个时间要非常小,否则电机就会一直抖动,而且力量不足。
当占空比小于50%时,电机反转,值越小速度越快,当然不会小于0。
当占空比大于50%时,电机正转,值越大速度越快,当然不会小于1。
当PWM波的占空比为50%时输出地平均电压为零,电机不转但此时电机上是有电的。打个比方就相当于给电机1ms的正向电压,紧接着又加1ms的负向电压,电机正转一会反转一会,总体上是不动的。这个时间要非常小,否则电机就会一直抖动,而且力量不足。
当占空比小于50%时,电机反转,值越小速度越快,不会小于0。
当占空比大于50%时,电机正转,值越大速度越快,不会小于1。