【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利用中断控制电机正反转示例

STM32串口控制步进电机(原创)

利用ESP32驱动控制步进电机驱动器:MS2806

机器人控制器编程实践指导书旧版-实践三 直流电机(执行器)

ESP32 Web Server (WebSocket) 实现多控件多引脚调节(PWM)

机器人控制器编程实践指导书旧版-实践四 步进电机(执行器)