使用Arduino控制马达的旋转和停止、转向

今日头条

1115人已加入

描述

马达是一种机电产品,可用来驱动各种设备,例如无人机和汽车。将马达连接到电源,就会产生旋转运动,用来推动螺旋桨旋转,以及滑杆的移动和上升等动作。这些动作可由Arduino来控制。

与控制LED一样,可接通和关断电源让马达旋转或停止,把电源方向反接可让马达反向旋转,也可调整电流改变转速。如果与其他传感器结合,还可以赋予马达更多复杂的动作,例如当障碍物接近时让马达停止运行,在逐渐减速时停止在期望的目标位置,在遇到障碍物时回头向另一个方向移动等。


项目BOM


由于马达运行需要大电流,用控制LED闪烁的方法是无法让马达运行的,因为Arduino的数字输出引脚最多只能承受20mA的电流。

 

Arduino


本项目使用的RE-280RA DC马达的驱动电流在1A以上,需要连接一个马达驱动器。马达驱动器可通过外部信号导通和关断马达运行电路,控制马达的旋转和停止、转向。

 

Arduino

马达驱动器配有两个控制引脚,一个设置为High时正转,另一个设置为High时反转。这使得马达驱动器可以控制马达的正转、反转和停止。

 

项目制作


所有BOM物料准备好后,按照电路图进行连接。

首先,将马达连接到马达驱动器的引脚2和4,将电池连接到马达驱动器的引脚5和3实现电池供电。

 

Arduino马达驱动器引脚分布

注意,在马达工作期间可能会产生噪声,需要将电容器连接到马达的两个引脚来降低噪声。
由于项目中马达的供电电压在4.5V以内,使用9V电池可能会损坏马达,需在马达驱动器的引脚1处指定输出至马达的最大电压。本次我们为马达提供3.3V的电压,将Arduino 3.3V电源连接到引脚1并指定最大电压值。马达旋转可以通过马达驱动器的引脚7和9来控制。这意味着,需要分别连接到Arduino的引脚5和6,通过Arduino的输出对其进行控制。

 

Arduino用Arduino控制大电流马达

完成连接后,马达的旋转可以通过Arduino引脚5和6的输出来控制。旋转、停止和旋转方向都可以通过将这两个引脚设置为High或Low来控制。

要正转时,使引脚5输出High,使引脚6输出Low。具体方法是在程序的第10行设置引脚5输出High,在第11行设置引脚6输出Low。

如果要反转,则需要使引脚5输出Low,使引脚6输出High。具体方法是在程序的第10行设置引脚5输出Low,在第11行设置引脚6输出High。

如果要使马达停止运转,则需要让引脚5和6都输出Low。如果引脚5和6都输出High,则会启动制动器,可以让马达在比两个引脚都置Low时更短的时间内停止运转。

如果希望改变马达的转速,可使用PWM控制转速。通过在短时间内切换High和Low,马达在旋转和停止之间交替切换,转速实际上比正常速度慢。High的时间越长,转速越快;反之High的时间越短,转速越慢。

 

ArduinoBA6956AN马达驱动器控制逻辑


具体方法是,通过PWM输出控制想要转向的引脚,并使另一个引脚始终保持在Low状态。正转时,用PWM输出控制引脚5,并使引脚6保持在Low状态。反转时,用PWM输出控制引脚6,并使引脚5保持在Low状态。

程序上,在第10行将引脚5输出的PWM比率设置为一半(最大为255),在第11行使引脚6保持在Low状态。当改变第10行的数字时,速度也会随之改变。但是,如果High小于某个特定的比率,马达将不会旋转。

如果减小该值马达不旋转,就请尝试指定更高的值,可以通过逐渐增加或减少引脚5输出的值来逐渐改变速度。这样,马达转速将从停止状态逐渐提高,当达到最大值时,速度将会逐渐降低并最终停止运转。

本文为翻译稿,相关代码可从deviceplus网站免费下载。

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分