Motor Control Shield

来自Waveshare Wiki
跳转至: 导航搜索
Motor-Control-Shield
{{{name2}}}
{{{name3}}}
功能简介
特性 L293D 电机控制板
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
接口 I/Os

说明

产品概述

本产品是基于 Arduino/ NUCLEO 的点击驱动扩展板,板载双桥驱动芯片 L293D,能够同时驱动四路直流电机或两路步进电机。
提供 Arduino 和 STM32 控制例程

产品特性

  • 可同时驱动四路直流电机或两路步进电机
  • 电机驱动电源可通过调休配置为 5V 或可调电源
o 使用 5V 电源驱动电机时,可同时驱动 4 路 5V 直流电机
o 使用可调电源驱动电机时,可同时驱动两路 1.25V-6.45V 直流电机
  • 采用双桥驱动芯片 L293D
o 该芯片可同时驱动两路直流电机或一路步进电机
o 4 路 H 桥,每路 H 桥输出电流为 600mA,峰值电流可达 1.2A
o 自带 ESD 保护

接口说明

引脚 功能
M1A 直流电机/步进电机控制脚
M1B
M2A
M2B
M3A
M3B
M4A
M4B
M1EN M1A, M1B 使能控制
M2EN M2A, M2B 使能控制
M3EN M3A, M3B 使能控制
M4EN M4A, M4B 使能控制

STM32使用教程

我们提供的例程是基于STM32F103RBT6,提供的连接方式是对应的STM32F103RBT6的引脚为例,如果有需要使用其他STM32,请按实际引脚连接

硬件连接

STM32F103RB连接引脚对应关系
Motor STM32 直流电机 步进电机
M1A PA10 直流电机 1 步进电机 1
M1B PB3
M2A PB5 直流电机 2
M2B PB4
M3A PA8 直流电机 3 步进电机 2
M3B PA9
M4A PA6 直流电机 4
M4B PA5
M1EN PB10 M1A, M1B 使能控制
M2EN PC7 M2A, M2B 使能控制
M3EN PB6 M3A, M3B 使能控制
M4EN PA7 M4A, M4B 使能控制

软件说明

例程是基于HAL库进行开发的。 请在资料里面下载程序,找到XNUCLEO-F103RB程序文件目录,打开Motor_Control_Shield_Code\XNUCLEO-F103RB

直流电机

  • 打开DC_Motor/MDK-ARM/DC_Motor.uvprojx文件

Motor DC 1.jpg

  • 编译下载即可

Motor DC 2.jpg

现象

四路直流电机同时旋转。

步进电机

  • 打开Stepper_Motor/MDK-ARM/Stepper_Motor.uvprojx文件

Motor Stepper 1.jpg

  • 编译下载即可

Motor Stepper 2.jpg

现象

两路步进电机依次旋转一周。

Arduino使用教程

本例程已经在Arduino uno上测试通过,直接按下表连接Arduino uno即可

硬件连接

STM32F103RB连接引脚对应关系
Motor Arduino 直流电机 步进电机
M1A D2 直流电机 1 步进电机 1
M1B D3
M2A D4 直流电机 2
M2B D5
M3A D7 直流电机 3 步进电机 2
M3B D8
M4A D12 直流电机 4
M4B D13
M1EN D6 M1A, M1B 使能控制
M2EN D9 M2A, M2B 使能控制
M3EN D10 M3A, M3B 使能控制
M4EN D11 M4A, M4B 使能控制

安装编译软件(Windows教程)

arduino IDE 安装教程

运行程序

在我们提供的资料里面下载程序,并解压,再进入Motor_Control_Shield_Code/Arduino目录下

直流电机

  • 对于直流电机而言:M1EN、M2EN、M3EN、M4EN 接至了 Arduino 的 D6、D9、D10、D11,

这些引脚具有 PWM 功能,因此控制 PWM 的占空比可以控制直流电机的转速。

  • analogWrite(uint8_t pin, int value)为写模拟引脚函数,对于参数 value 而言当设置为 0 时,输出

低电平,设置为 255 时输出占空比为 100%的高电平。

  • 打开DC_Motor/DC_Motor.ino,选择Arduino型号跟端口好,再进行编译下载。

Motor-Control-Shield-3.jpg

  • 以一个直流电机为例:设置管脚为输出状态,然后配置初始状态,D12 管脚设置为低电

平,D13 设置为高电平(当然这两个管脚可以反过来,那么电机转动方向也将改变),D11 输 出高电平使能 L293 驱动芯片。

  • 在 loop()函数中设置 D11 的 PWM 占空比为 50%(value = 128 即 50%),也就间接的控制了电机转

动速度。

现象

四路直流电机同时旋转。

步进电机

  • 以 28BYJ-48 步进电机为例 : 该电机是一个五线四相八拍电机。
  • 因为使用的为 M1A、M1B、M2A、M2B 来模拟时序控制,因此需要控制 M1EN、M2EN 为高电

平使能 L293 芯片。

  • 查阅 28BYJ-48 相关资料可以发现如下这样的两个表格:
1 2 3 4 5 6 7 8
P1-红 VCC VCC VCC VCC VCC VCC VCC VCC
P2-橙 GND GND GND
P3-黄 GND GND GND
P4-粉 GND GND GND
P5-蓝 GND GND GND
供电电压 相数 相电阻Ω 步进角度 减速比 启动频率P.P.S 转矩g.cm 噪声dB 绝缘介电强度
5V 4 50±10% 5.625/64 1:64 ≥550 ≥200 ≤35 600VAC
  • 第一个表说明了电机的四相八拍是如何控制的:
  • 四相分别是 A,B,C,D,若要使 A 相导通则需要控制橙线接地,即控制 M1A 低电平。
  • 类似的控制其他几个引脚,如果把四个控制引脚看作成 4 位 bit 连续数据,那么用 8 个字节即可

表示这组逻辑的控制(橙线为最低位):

Char BeatCode[8] = { //Stepper motor eight eight beat code
 0x0E, 0x0C, 0x0D, 0x09, 0x0B, 0x03, 0x07, 0x06
};
  • 第二个表说明了控制的频率:
  • 可以看到步进电机的启动频率,步进电机在空载情况下能够正常启动的最高脉冲频率,如果脉

冲频率高于该值,电机就不能正常启动。给出的参数是≥550,单位是 P.P.S,即每秒脉冲数,
这里的意思就是说:电机保证在你每秒给出 550 个步进脉冲的情况下,可以正常启动。那么
换算成单节拍持续时间就是 1s/550=1.8ms,那么每个节拍的间隔大于该值即可转动,不过延时
越久,电机转动一步所用的时间将会变长。

  • 得到了上述信息即可以转动步进电机,但无法精确控制,28BYJ-48 是减速电机,其内部有四级

减速,减速比为 1:64,转子转 64 圈,最终输出轴才会转一圈,也就是需要 64*64=4096 个
节拍输出轴才转过一圈,如果每步 2ms,那么 2ms*4096=8192ms,需要 8 秒多才能够转一圈。
但是实际上硬件上的减速比不一定符合标称值,这里采取经验值:4076 个节拍,实际误差万分
之 0.56。

  • 打开Stepper_Motor/Stepper_Motor.ino选择Arduino型号跟端口好,再进行编译下载。

Motor-Control-Shield-2.jpg

现象

两路步进电机同时旋转。

FAQ



  • 因为可调稳压芯片使用的是AMS1117-ADJ,它的最大输出电流是800MA,对于一般的小功率电机,每个大概需要300MA的电流,功率达不到,此时可选择使用5V的电源供电。


IN1 为高电平, IN2为低电平,电机正转

IN1 为低电平, IN2为高电平,电机反转

PWM为电机速度控制

如果IN1和IN2同时为高电平或底电平,电机不转

正反转取决于电机的实际接法

技术支持


联系人:黄工
QQ:2850151199
EMAIL:2850151199@qq.com
电话:0755-83040712
微信:扫下方二维码添加
Service20-Weichat.png

说明:进行售后服务前,请准备好客户信息(定货单位、定货人等),以供验证