山社电机: SAMSR -外部接口测试

Posted 卓晴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了山社电机: SAMSR -外部接口测试相关的知识,希望对你有一定的参考价值。

简 介: 利用DM542对于桁架驱动步进电机SAMSR驱动,完成动态力学特性测试。利用ESP32的中断输出步进电机驱动信号,并对机械位置极限开关进行检测。在脉冲细分设置SW5,6,7,8 设置为OFF,ON,ON,ON的时候,机械全程行进脉冲量为10000.

关键词 步进电机桁架

步进电机
文章目录
应用背景
步进电机接口
运行测试
运行框架
增加限位开关
时钟中断输出脉冲
行进脉冲数量
总 结

 

§01 进电机


1.1 应用背景

  在一台模拟体外向外侧挤压模型机械上,有一台山社电机(SAMSR)及其驱动。在 利用ESP32驱动控制步进电机驱动器:MS2806 对配套的步进电机驱动器进行了初步的测试,但无法驱动电机运行。后来更换为DM542进行测试,反过来验证原来的驱动出现了问题。

▲ 图1.1.1 实验机械框架

  为了更好地驱动该实验框架,对于这台步进电机的接口进行测试。

1.2 步进电机接口

  该步进电机具有两个接口:

  • 步进电机A,B相功率接口;
  • 角度传感器接口;

1.2.1 A,B相线圈接口

  电机线圈接口有四根电线,它们分别是:

  • A相: 红,蓝
  • B向: 绿,黑

▲ 图1.2.1 A,B线圈接口

1.2.2 角度传感器

  根据MS2806驱动器外壳上的标示,可以看到电机的驱动器的角度传感器输出包括六条线。

▲ 图1.2.2 步进电机驱动器的外观

  六条线包括:红、黑,蓝、蓝白、橙、橙白。

  根据 定制日本信浓60闭环步进电机高精度编码器闭环伺服电机驱动器控制套装 山社MS-2806驱动器 中对于山社步进电机角度传感器给出了接口的定义。

▲ 图1.2.3 传感器接口

(1)接口定义

▲ 图1.2.4 步进电机功能定义

(2)信号测量

  • 工作电源:红、黑:+3.3V ~ 5V;

  可以通过示波器查看到:A+,A-之间是反相关系; A+,B+之间相差90°关系。

  下面是测量A+,B+,在手动旋转步进电机情况下的信号波形。

▲ 图1.2.5 测量A,B相的信号

1.3 运行测试

1.3.1 基本测试

  通过输入数字,完成步进电机运行控制。

  • 输入数字为正:滑轨打开,挤压往上;
  • 输入数字为负:滑轨闭合,挤压往下;

(1)测试程序

from machine                import Pin,PWM
import time

led = Pin(5, Pin.OUT)
pulse = Pin(2, Pin.OUT)
dir = Pin(17, Pin.OUT)

pulse.on()
dir.on()

while True:
    keys = input('Input:')
    print(keys)

    if keys.replace('-', '').isdigit():
        number = int(keys)
        print(number)

        if number > 0:
            led.on()
            dir.on()
        else:
            led.off()
            dir.off()
            number = -number

        if number > 0:
            for i in range(number):
                time.sleep_ms(1)
                pulse.off()
                pulse.on()

    time.sleep_ms(10)

(2)运行结果

▲ 图1.3.1 机械框架在运动

 

§02 行框架


2.1 增加限位开关

  为了保证框架在电机驱动下的运行安全,需要在移动端增加位置限位开关。另外一个方向上的极限,可以通过最大行进步数来保证。

2.1.1 限位开关

  使用一个微触动开关的1,2之间的触点来感知框架运动的极限位置。

▲ 图2.1.1 限位开关

  将1,2管脚引出,送入到控制板的IO口。使用胶水将开关固定在运动桁架的一段。

▲ 图2.1.2 限位开关固定位置

2.1.2 ESP32输入端口

  实验控制平台使用的是 ESP32-S模块转接板设计与实现 ,将限位开关接入PIN16管脚。

▲ 图2.1.3 实验所使用的ESP32电路板

2.2 时钟中断输出脉冲

  利用ESP32的定时器中断来输出脉冲并检测限位开关。

2.2.1 时钟中断输出脉冲

from machine                import Pin,PWM,Timer
import time

led = Pin(5, Pin.OUT)
pulse = Pin(2, Pin.OUT)
dir = Pin(17, Pin.OUT)
limit = Pin(16, Pin.IN)
pulse.on()
dir.on()

STEP_MOTOR_NUMBER = 0
TimerCount = 0
def timerISR(t):
    global STEP_MOTOR_NUMBER
    global pulse,dir,limit,led,TimerCount

    TimerCount += 1
    if TimerCount >= 100:
        TimerCount = 0
        if led.value() > 0:
            led.off()
        else: led.on()

    if STEP_MOTOR_NUMBER == 0: return

    if STEP_MOTOR_NUMBER > 0:
        dir.on()
        if limit.value() == 0:
            STEP_MOTOR_NUMBER = 0
            return;

        STEP_MOTOR_NUMBER -= 1
        pulse.off()
        pulse.on()
    elif STEP_MOTOR_NUMBER < 0:
        dir.off()
        pulse.off()
        pulse.on()
        STEP_MOTOR_NUMBER += 1

tim0 = Timer(0)
tim0.init(period=1, mode=Timer.PERIODIC, callback = timerISR)

while True:
    keys = input('Input:')

    if keys.replace('-', '').isdigit():
        number = int(keys)
        print(STEP_MOTOR_NUMBER)
        print(number)

        STEP_MOTOR_NUMBER = number

    time.sleep_ms(200)

2.2.2 测试效果

  下面是在定时器中断输出脉冲波形控制下桁架运行情况。

▲ 图2.2.1 步进电机往返运动

  测量得到的输出控制信号。

▲ 图2.2.2 输出控制信号波形

2.3 行进脉冲数量

  按照现在SW5,6,7,8:设置为:0FF,ON,ON,ON,步进电机行进10000,完成机械最大行程。

 

  结 ※


  用DM542对于桁架驱动步进电机SAMSR驱动,完成动态力学特性测试。利用ESP32的中断输出步进电机驱动信号,并对机械位置极限开关进行检测。在脉冲细分设置SW5,6,7,8 设置为OFF,ON,ON,ON的时候,机械全程行进脉冲量为10000.


■ 相关文献链接:

● 相关图表链接:

from machine                import Pin,PWM,Timer
import time

led = Pin(5, Pin.OUT)
pulse = Pin(2, Pin.OUT)
dir = Pin(17, Pin.OUT)
limit = Pin(16, Pin.IN)
pulse.on()
dir.on()

STEP_MOTOR_NUMBER = 0
TimerCount = 0
def timerISR(t):
    global STEP_MOTOR_NUMBER
    global pulse,dir,limit,led,TimerCount

    TimerCount += 1
    if TimerCount >= 100:
        TimerCount = 0
        if led.value() > 0:
            led.off()
        else: led.on()

    if STEP_MOTOR_NUMBER == 0: return

    if STEP_MOTOR_NUMBER > 0:
        dir.on()
        if limit.value() == 0:
            STEP_MOTOR_NUMBER = 0
            return;

        STEP_MOTOR_NUMBER -= 1
        pulse.off()
        pulse.on()
    elif STEP_MOTOR_NUMBER < 0:
        dir.off()
        pulse.off()
        pulse.on()
        STEP_MOTOR_NUMBER += 1

tim0 = Timer(0)
tim0.init(period=1, mode=Timer.PERIODIC, callback = timerISR)

while True:
    keys = input('Input:')

    if keys.replace('-', '').isdigit():
        number = int(keys)
        print(STEP_MOTOR_NUMBER)
        print(number)

        STEP_MOTOR_NUMBER = number

    time.sleep_ms(200)

以上是关于山社电机: SAMSR -外部接口测试的主要内容,如果未能解决你的问题,请参考以下文章

DDM电机和DD电机的区别?

有刷电机及无刷直流电机(BLDC)

有刷电机及无刷直流电机(BLDC)

电机选型都有哪些呢?

无刷电机怎么驱动?

电机YBX3200L1-2MF2请问是几级电机?