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

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5197|回复: 1

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

[复制链接]
发表于 2020-3-1 13:30 | 显示全部楼层 |阅读模式
相信做小车一类的项目的朋友们一定绕不过一个问题,那就是电机的驱动。我们通常用的电机要求的电压比较高(相对于arduino主板而言),而且电阻较小,如果直接用arduino数字口的话不仅电压不够,还会有烧坏主板的可能。所以我们就需要其他的器件。
一 继电器
说到小电流控制大电流,一定会想到继电器,他有着耐用,便宜,接线方便的特点,但也有缺点,使它在小车项目上不适用。
一是因为他无法调速,要么开要么关。二是它是单向的。三是继电器本质上是一个小磁铁控制开还是关,所以既然是磁铁,就会影响小车的通讯。在遥控距离强大的航模遥控器面前
这个问题确实没什么,但在发射功率更小的遥控就会造成遥控距离不够的问题。四是体积大,质量大。所以这个东西驱动电机是不适合的。
微信图片_20200301115039.jpg
二 开关电源
例如mosfet这样的东西确实不会造成什么干扰,但同样有不能调速,单向等问题,所以也排除
微信图片_20200301115027.jpg
三 双向调速驱动板
终于轮到我们的主角了!
双路双向h桥pwm调速驱动板!!!
微信图片_20200301115034.jpg
听着名字是不是很吓人,但其实使用起来很容易
它支持双向,双路,pwm调速。最大电压输入达到了12v,2s电池毫无压力
微信图片_20200301115849.jpg 微信图片_20200301115853.jpg 微信图片_20200301115855.jpg
我们可以用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调速。
 楼主| 发表于 2020-3-1 13:58 | 显示全部楼层
如果有mega2560这样牛逼的主板后面那个方法就没必要用了,我就是直接买的mage2560,端口多,方便
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 11:55 , Processed in 0.083807 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表