MotorShiled电机驱动器 – 扩展板

该线路板是奇果派自研的一款电机驱动扩展解决方案,可以驱动4个直流电机或2个步进电机,并且额外提供8路全速PWM控制,可以控制8路舵机。

一、概述

该线路板是奇果派自研的一款电机驱动扩展解决方案,可以驱动4个直流电机或2个步进电机,并且额外提供8路全速PWM控制,可以控制8路舵机。

方案1:树莓派驱动板

方案2:Arduino电机驱动扩展板,配合驱动板扩展对多个电机和舵机的控制,本文将详细介绍该方案

二、接口说明

MotorShiled电机驱动器 - 扩展板

参数说明:

  • 每路2.5A(3.6A峰值)输出,可运行4.5-13.5V直流电机;
  • 可以驱动4个直流电机或2路步进电机;
  • 额外提供8路PWM输出,可以控制8路舵机;
  • 自带稳压电路,可提供稳定3V或5V电源;
  • 可自定义I2C地址,支持多个驱动器叠加级联;

电源说明:

  • 电源1:使用DC电源接口,输入电压范围为6至12V;
  • 电源2:使用电源线链接驱动板,从驱动板供电;

三、案例展示

MotorShiled电机驱动器 - 扩展板
MotorShiled电机驱动器 - 扩展板

注意:驱动板和扩展板之间使用i2c方式通讯,可以使用4根杜邦线连接两块板子的i2c接口

四、代码示例

米思奇图形化编程我们已经封装好了arduino和esp32插件,可直接使用,代码截图如下

MotorShiled电机驱动器 - 扩展板
/**
本示例简单实现开发板和扩展板对电机和舵机的控制*/
#include <Wire.h>
#include "PS2X_lib.h"
#include "Adafruit_MS_PWMServoDriver.h"
#include "QGPMaker_MotorShield.h"
PS2X ps2x;
QGPMaker_MotorShield AFMS = QGPMaker_MotorShield();//驱动板
//扩展板的默认i2c地址是50
QGPMaker_MotorShield AFMS50 = QGPMaker_MotorShield(0x50);
QGPMaker_MotorShield AFMS51 = QGPMaker_MotorShield(0x51);   //级联第二块扩展板
QGPMaker_MotorShield AFMS52 = QGPMaker_MotorShield(0x52);
QGPMaker_MotorShield AFMS53 = QGPMaker_MotorShield(0x53);
//四个驱动板电机
QGPMaker_DCMotor *DCMotor_1 = AFMS.getMotor(1);
QGPMaker_DCMotor *DCMotor_2 = AFMS.getMotor(2);
QGPMaker_DCMotor *DCMotor_3 = AFMS.getMotor(3);
QGPMaker_DCMotor *DCMotor_4 = AFMS.getMotor(4);
//4个扩展板电机
QGPMaker_DCMotor *DCMotor50_1 = AFMS50.getMotor(1);
QGPMaker_DCMotor *DCMotor50_2 = AFMS50.getMotor(2);
QGPMaker_DCMotor *DCMotor50_3 = AFMS50.getMotor(3);
QGPMaker_DCMotor *DCMotor50_4 = AFMS50.getMotor(4);
QGPMaker_Servo *Servo0 = AFMS.getServo(0);      //驱动板上第0号引脚舵机
QGPMaker_Servo *Servo50_0 = AFMS.getServo(0);   //扩展板上第0号引脚舵机

五、叠加级联

当驱动板+扩展板总共8个电机仍然不够用时,可以最多级联4个扩展板,总共可以控制20个电机40个舵机

MotorShiled电机驱动器 - 扩展板

多个驱动器级联需要为每个驱动器设置唯一的I2C地址,默认地址是0x50。地址范围从0x50~0x53总共4个地址。

如上图,焊接不同的跳线可以设置不同的地址。规则如下

Board 0: Address = 0x50 Offset = binary 0000 (默认全部为空)
Board 1: Address = 0x51 Offset = binary 0001 (只焊接A0)
Board 2: Address = 0x52 Offset = binary 0010 (只焊接A1)
Board 3: Address = 0x53 Offset = binary 0011 (同时焊接A0 & A1)

此时代码部分对i2c地址做出相应调整:

QGPMaker_MotorShield AFMS50 = QGPMaker_MotorShield(0x50); //(默认全部为空)
QGPMaker_MotorShield AFMS51 = QGPMaker_MotorShield(0x51); //(只焊接A0)
QGPMaker_MotorShield AFMS52 = QGPMaker_MotorShield(0x52); //(只焊接A1)
QGPMaker_MotorShield AFMS53 = QGPMaker_MotorShield(0x53); //(同时焊接A0 & A1)

六、原理图

MotorShiled电机驱动器 - 扩展板
树莓派驱动器V5.0版

原创文章,作者:奇果派,如若转载,请注明出处:https://www.7gp.cn/archives/1269

(2)
上一篇 2024年5月31日 下午5:16
下一篇 2024年11月5日 上午10:58

相关推荐