(SKU:DRI0021)Veyron 直流有刷电机驱动器

来自DFRobot Product Wiki
跳转至: 导航搜索
Veyron.jpg

目录

概述

Veyron 威龙系列电机驱动器是DFRobot推出的新一代智能电机驱动器,产品线涵盖直流有刷电机驱动器、直流无刷电机驱动器及步进电机驱动器。其中Veyron 2x25A为直流有刷电机驱动器,拥有智能的接口方式:包含模拟电压(Analog)、脉宽信号(PPM)及UART接口,完善的保护功能:欠电压、过电压、过电流、过热、短路、电压反接等保护功能,简易的操作方式:一键接口选择、开/闭环自动识别、PID参数自整定等功能,极大程度简化了用户的操作。

这里,您将了解到:

  • 直流减速电机在UART模式下工作
  • 直流减速电机在Analog模式下工作
  • 直流减速电机在PPM模式下工作

此产品说明仅为使用简明手册。具体产品更多使用说明,请点击

UART模式

1 准备

  1. 6-36V 外接直流电源 x 1
  2. Romeo V2 多合一Arduino兼容控制器 x 1点击购买’如果使用其他不带serial1串口的控制器,如Uno等,连线相同,但需将程序中的Serial1修改为Serial。'
  3. 12V 直流减速电机146rpm 带编码器 x 1点击购买
  4. Veyron 威龙 双路25A直流有刷电机驱动器 x 1点击购买
  5. 螺丝刀 x 1
  6. 跳线、杜邦线 若干
  7. USB线 x 1 点击购买

2 接线

按照下图接好电路。

Veyron 2x12A 2x123p.jpg

3 程序准备

请前往Github点击前往下载所需程序,将下载好的文件解压缩,并放在Arduino IDE库文件夹下。如图所示:

Veyron 2x12A 43125 Loop.png
Veyron 2x12A 43125putlibrary.png


然后打开/重启 Arduino IDE 即可找到所需文件。

Veyron 251233A PPM Loop.jpg

4 进入UART模式

将USB连接到电脑,并连接外部电源。倘若您手头的驱动器是全新的驱动器,上电过程中,将看到如下现象:三个指示灯Set、UART、Error同时亮2s后,指示灯Set与Error熄灭, 说明当前模式为UART模式。此前三个灯同时亮时,Error指示灯是为了指明当前的指示状态为波特率指示状态,非接口模式指示。波特率与指示灯状态的关系如下表所示:


Set Analog PPM UART Error BaudRate(bps)
1200
2400
4800
9600
14400
19200
28800
38400
57600
115200

5 检测串口是否连接

打开样例程序 "C_CheckSerial",并选好控制板对应型号,这里是"Leonardo",再选中串口号。

Veyron C CheckSerial.jpg
Veyron Leonardo Loop.jpg

上传之后打开串口窗口,如果电路连接正确,将会看到“BDC Connection Good!”,否则请检查电路连接。

Veyro23145151.jpg

6 上传样例程序 "A_Configuration"

7 上传样例程序 "B_RunMotor"

电机将会“正转2S - 停止2S - 反转2S - 停止2S”,重复执行。

Analog模式

Analog模式驱动电机是最简单,步骤最少的一种工作模式。只需切换到Analog工作模式下,连接驱动器和电机即可。而且,即使没有外界电压信号输入的情况下,电机也可运转(信号管脚浮空,默认置高),如果接上外界电压输入,即可控制电机转速。

如果你需要提前设置驱动器参数的话,可按照以下步骤进行操作。

1 准备

  1. 6-36V 外接直流电源 x 1
  2. Bluno Nano主控板 x 1点击购买其他型号的控制器也可以,只要带有普通串口通信口即可(Tx/Rx)。
  3. 12V 直流减速电机146rpm 带编码器 x 1点击购买
  4. Veyron 威龙 双路25A直流有刷电机驱动器 x 1点击购买
  5. 面包板 x 1点击购买
  6. 电位器(200KΩ) x 1
  7. 螺丝刀 (单子、十字)x 1
  8. 跳线、杜邦线 若干
  9. USB线 x 1 点击购买

2 接线

按照下图接好电路。

Veyron 2x12A 2x123p.jpg

3 SET模式自整定PID参数

通过螺丝刀或其他工具按Veyron上的KEY键将工作模式由UART调节到SET模式。然后驱动器将会自动对电机进行PID参数整定。

Veyron 2x25A drivertoset.jpg

4 设定参数

  1. 上电之后,打开Arduino IDE,选好“版型”、“串口号”,打开串口并设定“波特率”为57600。
    Veyron 2x25A set1.jpg
  2. 发送“1,RCONFIG”,将会收到Veyron的参数信息,如果没有收到,请检查电路连接(可尝试改变TX/RX的接线顺序)
    Veyron 2x25A set2.jpg
  3. 发送“1,SER,13,1”,设定M1和M2的编码器线数分别为13和1;
  4. 发送“1,SGR,51.00,1.00”,设定M1和M2的减速比分别为51.00和1.00;
  5. 再次发送“1,RCONFIG”,确认修改的参数。

如果需要设置更多参数,请看本产品另外一份技术文档。点击前往

5 Analog 模式调试

用电位器连接一个0-5V的电压输出电路,将“电压控制信号线”连接至S1口。按照4中方法调到Analog 模式。电机将开始转动。调节电位器可改变转向和转速。具体如下: 0-2.5V:正转; 2.5V:停止; 2.5V-5V:反转;

PPM模式

PPM接口,非常重要的一个参数就是PPM极值,该极值的设定有两种方式:其一,是通过UART接口,发送指令予以设置;其二,是在Set设置模式下,当指示灯Status1与Status2闪烁过程中,使用模型遥控器控制的用户,将对应的摇杆在两个极限位置分别停留3s左右,驱动器将自动识别阈值,此过程中,若S1、S2均有正确的脉宽信号输入,驱动器将结合两路的信号,计算出可靠的极限值,若仅有一路有正确脉宽信号输入,则驱动器就使用该路信号作为最终的极限值依据。当然也可以通过单片机发送两个极限位置的脉宽信号,不过,不论采用哪种方法,PPM的极限值都不得超出500us-2500us范围。由于PPM接口,除了PPM极值外,其它配置参数均不可直接设置,欲设置相关参数,需先使用UART接口进行配置。所有的故障信息,需结合上文1.10 保护功能中的对照表查询故障源。此外,不论开环或闭环控制模式,PPM信号与电机转速的关系都符合下图的描述(注:信号低于最小极限值或高于最大极限值,驱动器将不予以响应)。

Veyron 2x12A PPM speed relationship.jpg

在本实验中, PPM 信号是有程序生成的, 你可以在下文中找到改程序。

注意:如果你需要修改相关参数,可以参照“Analog 模式”。

1 准备

  1. 6-36V 外接直流电源 x 1
  2. Bluno Nano主控板 x 1点击购买其他型号的控制器也可以,只要带有普通串口通信口即可(Tx/Rx)。
  3. 12V 直流减速电机146rpm 带编码器 x 1点击购买
  4. Veyron 威龙 双路25A直流有刷电机驱动器 x 1点击购买
  5. 螺丝刀 (单子、十字)
  6. 跳线、杜邦线 若干
  7. USB线 x 1 点击购买

2 接线

按照下图接好电路。

Veyron 2x12A PPM wire.jpg

3 SET模式下自动调整PID参数

Veyron上有一个按键叫KEY,通电之后,可以按此键切换工作模式。调节到SET模式下后,等待几秒,驱动器会自动调节PID参数。如果你想自己调整这些参数,你可以用相关指令在UART模式下进行设置。

Veyron 2x25A drivertoset.jpg

4 烧写程序,电机运转

Open , copy the code blow, then Upload it. (Note: Pin9 connected with S1). Press KEY to enter PPM mode. The motor will run in this way:
打开Arduino IDE,将文后的程序复制到编写器中,然后上传。(注意:) 正转 5 S ---停止 5 S---反转 5 S 。

之后将一直循环下去。


//Name: VEYRON 2x25A DC brush deceleration motor code in PPM Mode
//Version: v0.1;
//Author: Barry from DFrobot;
//modified by Leff
// This code can be used to control the brushless motor driver in the PPM Mode;
// Details in User manual;
// make sure the working mode on the driver are in PPM Mode;
#include <Servo.h>
Servo mymotor;
void setup()
{
mymotor.attach(9);
}
void loop()
{
mymotor.writeMicroseconds(2500); //motors rotating in clockwise direction with the highest speed;
delay(5000); //the motors running for 5 seconds.
mymotor.writeMicroseconds(1000); //motors stop;
delay(5000);
mymotor.writeMicroseconds(500); //motors rotating in counter-clockwise direction with the highest speed;
delay(5000);
}

个人工具
名字空间

变换
操作
导航
工具箱