如何驱动直流有刷电机
作者:机器谱
Arduino |
因此,普通的直流有刷电机只有两个用于通电的接头(或者两根线),如果电源合适,只要将其中一个接头接上电源正极,另一个接上电源负极,电机就能转起来,反过来接就能反向转。在单片机上,则表现为一个接头接上合适电压的VCC针脚,另一个接GND,然后给VCC针脚供电,电机就能转起来。但是如果想要在不改变接线的情况控制电机的转动方向,甚至控制转动的速度,则需要用到直流电机驱动芯片。
2.电子硬件
在这个示例中,我们采用了以下硬件来驱动直流有刷电机,请大家参考:
Bigfish2.1扩展板上安装有两个直流电机驱动芯片,因此可以提供两组独立的直流电机控制接口。
本文所用电机的图片及参数如下:
1.工作原理
直流有刷电机是制作机器人底盘驱动轮的常见部件,也常用于驱动齿轮组、曲柄摇杆、曲柄滑块等传动机构。直流有刷电机是利用电磁感应工作的,通过电刷给线圈(转子)通电,使线圈能够在两片磁铁(定子)之间旋转。电流方向相反时,线圈转动的方向也会反过来。
这种直流电机在机器人DIY项目中很常见,也叫TT马达,它的内部包含一个直流有刷电机(在右侧黑色位置),左侧方块位置是一个减速箱。
将电机接在直流电机接口上,如下图是接在Bigfish2.1扩展板的(D9,D10)直流电机接口上。
3.编程实现
3.1 数字量(点击查看:MotorDigital.ino)
一种常见的方法是用数字量进行控制,用到的函数是digitalwrite( , ),通过这个函数,将一组直流针脚中的一个针脚电平置高,另一个置低,相当于一个接正极,一个接负极,直流电机就转起来了。
假设我们要实现这样一个效果:直流电机正转2秒→停2秒→反转2秒→刹车2秒。其代码如下:
主控板 | Basra(兼容Arduino Uno) |
扩展板 | Bigfish2.1 |
电池 | 7.4V锂电池 |
工作电压 | 电流(空载) | 转速(空载)每分钟 | 扭力 | 减速比 |
4.5v | <130ma | 70~113rpm | 0.5kgf·cm | 1:87 |
序号 | 内容 |
1 | 直流电机3D文件 |
2 | 例程源代码 |
直流有刷电机的类型也有很多,按所适用的电压一般分为6V、12V、24V等不同级别。即使在同一级别中,电机的尺寸、功率、扭力、转速也各有不同,甚至外形也有很大差别,搭配不同的减速箱后更是千差万别,但是他们的驱动原理都是一样的。
4.资料下载
3.2 模拟量
还有一个方法是用模拟量进行控制,用到的函数是analogwrite( , ),通过设置针脚的电压参数(范围是0~255之间),0相当于“低”,255相当于“高”,可以取它们之间的数值,从而改变直流电机的速度。
实现效果1:最高速度转2秒→慢速反转2秒。代码如下(点击查看:MotorAnalog.ino)
实现效果2:静止→缓慢加速至最高速度→缓慢减速至停。代码如下(点击查看:MotorAnalogBreath.ino)
【整体打包】-【U001】如何驱动直流有刷电机-Arduino-资料附件.rar | 910.96KB | 下载53次 | 下载 |
|