麦克纳姆轮具体教程——电机双向调速驱动-Arduino中文社区 - Powered by Discuz! Archiver

wzzzq 发表于 2020-3-1 13:30

麦克纳姆轮具体教程——电机双向调速驱动

相信做小车一类的项目的朋友们一定绕不过一个问题,那就是电机的驱动。我们通常用的电机要求的电压比较高(相对于arduino主板而言),而且电阻较小,如果直接用arduino数字口的话不仅电压不够,还会有烧坏主板的可能。所以我们就需要其他的器件。
一 继电器
说到小电流控制大电流,一定会想到继电器,他有着耐用,便宜,接线方便的特点,但也有缺点,使它在小车项目上不适用。
一是因为他无法调速,要么开要么关。二是它是单向的。三是继电器本质上是一个小磁铁控制开还是关,所以既然是磁铁,就会影响小车的通讯。在遥控距离强大的航模遥控器面前
这个问题确实没什么,但在发射功率更小的遥控就会造成遥控距离不够的问题。四是体积大,质量大。所以这个东西驱动电机是不适合的。

二 开关电源
例如mosfet这样的东西确实不会造成什么干扰,但同样有不能调速,单向等问题,所以也排除

三 双向调速驱动板
终于轮到我们的主角了!
双路双向h桥pwm调速驱动板!!!

听着名字是不是很吓人,但其实使用起来很容易
它支持双向,双路,pwm调速。最大电压输入达到了12v,2s电池毫无压力

我们可以用arduino的pwm函数实现调速
analogWrite(motorpin1,pwm);
digitalWrite(motoepin2,0);
pwm是0-255的数值。
“这样一个电机就需要两个pwm口,然而并不是所有数字口都支持pwm。于是我们有一种1个数字一个pwm的方案。
我们知道Arduino不管是UNO还是Nano,都只有6个PWM口(3、5、6、9、10、11),没法实现8个电机的调速,MEGA2560有8个以上的PWM口,但是体积过大,不适合该项目,我在引脚分配上做出了调整,使用4个PWM与4个数字口就可以实现4个电机的调速,我们知道PWM简而言之就是数字口的占空比,当一个引脚为低电平,一个输出PWM信号时,可以调节速度为0-255,255为最快。经过试验,一个引脚为高电平时,一个输出PWM信号时,调节速度也是0-255,区别就是255是停止,PWM输出0时为最快。这样,只需要在程序中调节PWM的参数与数字口的输出,就可以控制电机的速度与旋转方向了。”       出自csdn铁熊的一篇文章,如有侵权我就删掉
这样就实现了一个数字一个pwm调速。

wzzzq 发表于 2020-3-1 13:58

如果有mega2560这样牛逼的主板后面那个方法就没必要用了,我就是直接买的mage2560,端口多,方便
页: [1]
查看完整版本: 麦克纳姆轮具体教程——电机双向调速驱动