作者:生活更美好YE | 来源:互联网 | 2024-10-31 16:19
本研究基于TI公司的DRV8825步进电机驱动芯片,将其与现有的双轴稳定平台集成,开发出一种具备自动测量功能的新型平台。该平台通过精确控制步进电机,实现了高精度的定位和测量,适用于多种精密测量和自动化应用场景。关键词:DRV8825,步进电机,双轴稳定平台,自动测量,精密控制
简 介: 实验研究了基于TI公司的DRV8825不仅电机驱动芯片模块,并利用它与原来存在的X-Y的平台构建了一个可以自动测量的平台 。
关键词
: DRV8825,X-Y平台
■ DRV8825简介
这款基于TI公司的 DRV8825 步进电机驱动芯片模块是由 优信电子出品 的。(TB:¥5.9), 它可以用于 RepRap 3D打印机开源项目 中的 StepStick 。
由 DRV8825 数据手册可以知道该模块的基本应用数据:
1. 具有嘴大32细分步骤;
2. 工作电压可达45V;
3. 输出最大电流2.5A(24V工作电压的时候)
▲ 应用示意图以及32细分输出电流波形
01模块引脚说明
对照 DRV8825 数据手册中的管脚功能说明,分别确定模块管脚的功能,如下图所示:
工作模式设定如下表所示:
02驱动模块设计[^52893]
[^52893]:控制模块AD工程文件:AD\Tools\2020\DRV8825
1.电路设计[^52893]
2.MCU软件设计
**◎ 蓝牙串口(COM2)命令 **
if(strcmp("hello", (char *)STD_ARG[0]) &#61;&#61; 0)printf("%s is ready !\r\n", VERSION_STRING);else IFARG0("drvm1") {if(STD_NUM > 2) {sscanf(SDA(2), "%d", &nNumber);if(nNumber &#61;&#61; g_ucCommandFlag) return;g_ucCommandFlag &#61; nNumber;}sscanf(SDA(1), "%ld", &g_lnMotorStep1);if(g_lnMotorStep1 < 0) {g_lnMotorStep1 &#61; -g_lnMotorStep1;ON(DIR1_PIN);} else OFF(DIR1_PIN);if(VAL(DIR1_PIN)) { if(VAL(SW1_PIN) &#61;&#61; 0) {g_lnMotorStep1 &#61; 0;OFF(DIR1_PIN);}}} else IFARG0("drvm2") {if(STD_NUM > 2) {sscanf(SDA(2), "%d", &nNumber);if(nNumber &#61;&#61; g_ucCommandFlag) return;g_ucCommandFlag &#61; nNumber;}sscanf(SDA(1), "%ld", &g_lnMotorStep2);if(g_lnMotorStep2 < 0) {g_lnMotorStep2 &#61; -g_lnMotorStep2;ON(DIR2_PIN);} else OFF(DIR2_PIN);if(VAL(DIR2_PIN)) {if(VAL(SW2_PIN) &#61;&#61; 0) {g_lnMotorStep2 &#61; 0;OFF(DIR2_PIN);}}} else IFARG0("drvm12") {if(STD_NUM > 3) {sscanf(SDA(3), "%d", &nNumber);if(nNumber &#61;&#61; g_ucCommandFlag) return;g_ucCommandFlag &#61; nNumber;}sscanf(SDA(1), "%ld", &g_lnMotorStep1);if(g_lnMotorStep1 < 0) {g_lnMotorStep1 &#61; -g_lnMotorStep1;ON(DIR1_PIN);} else OFF(DIR1_PIN);if(VAL(DIR1_PIN)) {if(VAL(SW1_PIN) &#61;&#61; 0) {g_lnMotorStep1 &#61; 0;OFF(DIR1_PIN);}}sscanf(SDA(2), "%ld", &g_lnMotorStep2);if(g_lnMotorStep2 < 0) {g_lnMotorStep2 &#61; -g_lnMotorStep2;ON(DIR2_PIN);} else OFF(DIR2_PIN);if(VAL(DIR2_PIN)) {if(VAL(SW2_PIN) &#61;&#61; 0) {g_lnMotorStep2 &#61; 0;OFF(DIR2_PIN);}}} else IFARG0("drvorg") {ON(DIR1_PIN);ON(DIR2_PIN);g_lnMotorStep1 &#61; 500000;g_lnMotorStep2 &#61; 500000;if(VAL(DIR1_PIN)) {if(VAL(SW1_PIN) &#61;&#61; 0) {g_lnMotorStep1 &#61; 0;OFF(DIR1_PIN);}}if(VAL(DIR2_PIN)) {if(VAL(SW2_PIN) &#61;&#61; 0) {g_lnMotorStep2 &#61; 0;OFF(DIR2_PIN);}}}
}
命令示例&#xff1a;
当参数大于零时&#xff0c;平台原理步进电机&#xff1b;当参数小于0&#xff0c;平台移动到步进电机&#xff1b;
移动参数&#xff1a; N&#61; 200000&#xff0c;移动距离&#xff1a;6.6mm
因此&#xff0c;移动参数的参数&#xff1a;
Lstep&#61;6.6200000&#61;33nM&#61;0.033μML_{step} &#61; {{6.6} \over {200000}} &#61; 33nM &#61; 0.033\mu MLstep&#61;2000006.6&#61;33nM&#61;0.033μM
■ 相关文献链接: