【ESP32】通过串口控制直流电机
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【ESP32】通过串口控制直流电机相关的知识,希望对你有一定的参考价值。
参考技术A ESP32通过硬串口通信程序案例如下:HardwareSerial Myserial(1); // D5 - 接TXD, D18 - 接RXD
char Speed_Off[8] = 0x80,0x06,0x00,0x40,0x00,0x00,0x96,0x0F; // 电机驱动板的 停止命令
char Speed_Align[8]= 0x80,0x06,0x00,0x40,0x03,0xe7,0xd6,0xb5; // 电机驱动板的正转命令
char Speed_Open[8] = 0x80,0x06,0x00,0x40,0xfc,0x19,0x16,0xc5; // 电机驱动板的反转命令
void Align()
for(int i =0;i<8;i++)
Myserial.write(Speed_Align[i]); // 通过ESP32串口发送电机正转数据
void Open()
for(int i =0;i<8;i++)
Myserial.write(Speed_Open[i]); // 通过ESP32串口发送电机反转命令
void MotorOff()
for(int i =0;i<8;i++)
Myserial.write(Speed_Off[i]); // // 通过ESP32串口发送电机停止命令
void Delay_one()
for(int i =0;i <6;i++)
delay(1000);
void Delay_Two()
for(int i =0;i <12;i++)
delay(1000);
void setup()
// put your setup code here, to run once:
Myserial.begin(9600,SERIAL_8E1,5,18); // 配置串口参数
void loop()
//Myserial.println("Hello world!");
delay(2000);
Align();
delay(2000);
MotorOff();
Delay_one();
Open();
delay(2000);
MotorOff();
Delay_Two();
利用ESP32驱动控制步进电机驱动器:MS2806
简 介: 对于步进电机MS-2806进行初步测试,但在配置PUL,DIR的作用下,步进电机没有运动。初步估计可能改驱动器已经损坏。
关键词
: MS2806,步进电机
§00 背 景
为了进一步测试心肺复苏机器人的动作以及相关参数,调试手边具有的步进电机控制器。下面对于相关的部件进行初步测试。
§01 MS-2806
一、步进电机驱动器
在 山社步进电机驱动器MD-2806V MD-2545 MD-2778 MSST5-S MA-2208 给出了对应的参数说明。
1、概述
MD-2803/MD-2806
系列驱动器是自主研发的高性价比细分步进电机驱动器,特别适合于大批量低成本用途,同时具有许多极富价值的优越功能,驱动任何6A
相电流以下的两相或四相的中小型混合式步进电机。此驱动器采用日本原装进口电子原器件,比市面上大多数低成本驱动器的电机噪声和电机发热均有明显改善,还具有其它许多理想特点,例如:单电源供电、光隔离输入、细分精度可选等。步距角细分功能可使电机运转平滑,振动减少,噪声降低,粗度提高。细分精度可由用户轻易设定,最高可达64
细分(12800
步/
圈)
。为了与某些PLC
兼容,此驱动器提供了双脉冲的备用功能,用户只需改变驱动器内的跳线器,即可让驱动器接受CW
正向脉冲和CCW
反向脉冲。驱动器上的八位拨码开关组(SW1-SW8),
可用来设置动态电流(三位八档),细分选择(SW6-SW8)
。和市面上的大多数直流低压驱动器相比,极具竞争力和吸引力。
▲ 图1.1.1 步进电机外观以及对应参数设置
2、特点
- 静止时自动低功耗运行,锁机电流可调
- ·单电源输入,电压范围:DC24V~80V
- ·输出电流峰值可达3.0A(ASD830T/F) / 6.0A(ASD860T/F)
- ·最新电流控制技术电机发热极低
- ·电流设定方便,八档可选
- ·细分精度50倍、64倍细分可选
- ·具有过压、短路等保护功能
- · 脉冲/方向或CW/CCW
- ·高可靠性:采用多层板和表面贴封,功率器件留有足够余量.
- ·先进可靠的多重保护:过压保护、过流保护(峰值超过6A)、过热保护(温度超过70℃停止工作,下降到50℃恢复工作)、错相保护.
- ·微型化大功率、安装方便;精致小巧的外形尺寸(1066531mm)
3、接口端子功能定义
▲ 图1.1.2 接口端子功能
▲ 图1.1.3 电流与细分设置
二、初步上电测试
1、上电测试
-
测试条件:
-
电源电压
:+24V
负载
:连接小型步进电机
SW6,7,8
:OFF,OFF,OFF
直流电源输出电流:0.8A。小型直流电机被锁定。
▲ 图1.2.1 外接+24V电源进行上电测试
三、ESP32测试模块
利用 ESP32转接模块 产生PUL、DIR信号。
1、输出PWM
from machine import Pin,PWM
import time
led = Pin(5, Pin.OUT)
pwm = PWM(Pin(2))
pwm.freq(1000)
pwm.duty(512)
dir = Pin(17, Pin.OUT)
print("Test PWM.")
while True:
led.on()
dir.on()
time.sleep_ms(100)
led.off()
dir.off()
time.sleep_ms(100)
使用 GPIO2作为PWM输出,TXD2(GPIO17)作为控制DIR。
▲ 图1.3.1 管脚功能配置
▲ 图1.3.2 PIn2,PIn17的输出波形
2、ULN2003接口
由于ESP32的输出端口的电压只有3.3V,使用ULN2003作为接口电路。
▲ 图1.3.3 使用ULN2003作为接口芯片
四、测试步进电机
驱动测试小型步进电机,但没有输出。
结论:应该是该驱动器可能损坏。
※ 测试总结 ※
对于步进电机MS-2806进行初步测试,但在配置PUL,DIR的作用下,步进电机没有运动。初步估计可能改驱动器已经损坏。
将驱动器更换为DM542之后,测试步进电机可以正常运行。
▲ 图2.1 替换DM542进行测试
■ 相关文献链接:
● 相关图表链接:
以上是关于【ESP32】通过串口控制直流电机的主要内容,如果未能解决你的问题,请参考以下文章
MicroPython ESP32利用中断控制电机正反转示例