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

关键词步进电机桁架

#mermaid-svg-gjkaRwcsCoTjmNV7 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-gjkaRwcsCoTjmNV7 .error-icon{fill:#552222;}#mermaid-svg-gjkaRwcsCoTjmNV7 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-gjkaRwcsCoTjmNV7 .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-gjkaRwcsCoTjmNV7 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-gjkaRwcsCoTjmNV7 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-gjkaRwcsCoTjmNV7 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-gjkaRwcsCoTjmNV7 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-gjkaRwcsCoTjmNV7 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-gjkaRwcsCoTjmNV7 .marker.cross{stroke:#333333;}#mermaid-svg-gjkaRwcsCoTjmNV7 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-gjkaRwcsCoTjmNV7 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-gjkaRwcsCoTjmNV7 .cluster-label text{fill:#333;}#mermaid-svg-gjkaRwcsCoTjmNV7 .cluster-label span{color:#333;}#mermaid-svg-gjkaRwcsCoTjmNV7 .label text,#mermaid-svg-gjkaRwcsCoTjmNV7 span{fill:#333;color:#333;}#mermaid-svg-gjkaRwcsCoTjmNV7 .node rect,#mermaid-svg-gjkaRwcsCoTjmNV7 .node circle,#mermaid-svg-gjkaRwcsCoTjmNV7 .node ellipse,#mermaid-svg-gjkaRwcsCoTjmNV7 .node polygon,#mermaid-svg-gjkaRwcsCoTjmNV7 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-gjkaRwcsCoTjmNV7 .node .label{text-align:center;}#mermaid-svg-gjkaRwcsCoTjmNV7 .node.clickable{cursor:pointer;}#mermaid-svg-gjkaRwcsCoTjmNV7 .arrowheadPath{fill:#333333;}#mermaid-svg-gjkaRwcsCoTjmNV7 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-gjkaRwcsCoTjmNV7 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-gjkaRwcsCoTjmNV7 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-gjkaRwcsCoTjmNV7 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-gjkaRwcsCoTjmNV7 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-gjkaRwcsCoTjmNV7 .cluster text{fill:#333;}#mermaid-svg-gjkaRwcsCoTjmNV7 .cluster span{color:#333;}#mermaid-svg-gjkaRwcsCoTjmNV7 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-gjkaRwcsCoTjmNV7 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}

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

§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 timeled = 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 = -numberif 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 timeled = 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_NUMBERglobal pulse,dir,limit,led,TimerCountTimerCount += 1if TimerCount >= 100:TimerCount = 0if led.value() > 0:led.off()else: led.on()if STEP_MOTOR_NUMBER == 0: returnif STEP_MOTOR_NUMBER > 0:dir.on()if limit.value() == 0:STEP_MOTOR_NUMBER = 0return;STEP_MOTOR_NUMBER -= 1pulse.off()pulse.on()elif STEP_MOTOR_NUMBER < 0:dir.off()pulse.off()pulse.on()STEP_MOTOR_NUMBER += 1tim0 = 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 = numbertime.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.


■ 相关文献链接:

  • 利用ESP32驱动控制步进电机驱动器:MS2806
  • 定制日本信浓60闭环步进电机高精度编码器闭环伺服电机驱动器控制套装 山社MS-2806驱动器
  • ESP32-S模块转接板设计与实现

● 相关图表链接:

  • 图1.1.1 实验机械框架
  • 图1.2.1 A,B线圈接口
  • 图1.2.2 步进电机驱动器的外观
  • 图1.2.3 传感器接口
  • 图1.2.4 步进电机功能定义
  • 图1.2.5 测量A,B相的信号
  • 图1.3.1 机械框架在运动
  • 图2.1.1 限位开关
  • 图2.1.2 限位开关固定位置
  • 图2.1.3 实验所使用的ESP32电路板
  • 图2.2.1 步进电机往返运动
  • 图2.2.2 输出控制信号波形
from machine                import Pin,PWM,Timer
import timeled = 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_NUMBERglobal pulse,dir,limit,led,TimerCountTimerCount += 1if TimerCount >= 100:TimerCount = 0if led.value() > 0:led.off()else: led.on()if STEP_MOTOR_NUMBER == 0: returnif STEP_MOTOR_NUMBER > 0:dir.on()if limit.value() == 0:STEP_MOTOR_NUMBER = 0return;STEP_MOTOR_NUMBER -= 1pulse.off()pulse.on()elif STEP_MOTOR_NUMBER < 0:dir.off()pulse.off()pulse.on()STEP_MOTOR_NUMBER += 1tim0 = 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 = numbertime.sleep_ms(200)

山社电机: SAMSR -外部接口测试相关推荐

  1. 基恩士KV8000系列PLC,控制松下总线伺服和山社总线步进电机,全套图纸,DWG格式,一整套图纸发给你

    基恩士KV8000系列PLC,控制松下总线伺服和山社总线步进电机,全套图纸,DWG格式,一整套图纸发给你 ID:8459665649584236工控_博士

  2. 运动桁架下压力信号采集与处理

    简 介: 本文对于桁架运动过程中对来自于压力传感器变换器输出的模拟信号进行采集,验证整个机械系统运动和信号采集处理方面的功能. 关键词: 运动桁架,压力传感器,ESP32 #mermaid-svg-P ...

  3. 信捷步进指令的使用_步进电机驱动器的模式

    步进电动机和步进电动机驱动器构成步进电机驱动系统.步进电动机驱动系统的性能,不但取决于步进电动机自身的性能,也取决于步进电动机驱动器的优劣.对步进电动机驱动器的研究几乎是与步进电动机的研究同步进行的. ...

  4. matlab步进电机半步控制器,步进电机驱动模式:整步、半步、细分

    步进电机驱动模式:整步.半步.细分 步进电机驱动器有三种基本的步进电机驱动模式:整步.半步.细分.其主要区别在于电机线圈电流的控制精度(即激磁方式). 1.整步驱动 在整步运行中,同一种步进电机既可配 ...

  5. 2022-2028年中国稀土永磁电机行业市场发展潜力及投资风险预测报告

    智研咨询发布的<2022-2028年中国稀土永磁电机行业市场发展潜力及投资风险预测报告>共十一章.首先介绍了稀土永磁电机行业市场发展环境.稀土永磁电机整体运行态势等,接着分析了稀土永磁电机 ...

  6. 关于接口测试,我们要测什么,怎么上手

    很多做接口测试的同学会遇到的问题,如何更好的做接口测试,以及接口测试我们要关注什么,为提高自己的测试效率,请看下方图(网上qiao来的): 接口测试质量评估标准: a) 业务功能覆盖是否完整 b) 业 ...

  7. 大华web对接文档_分分钟了解Web接口测试

    因为前后端架构分离技术的兴起,接口测试也越来越重要,最近一直想总结下,作为一个近三年的测试人员,接口这个词是耳濡目染的,而开发张口闭口也都是这个接口或那个接口怎么怎么样,自己遇到的bug也很多是接口问 ...

  8. 电机编码器调零步骤_BLDC电机换向方法解析

    无刷直流电机 无刷直流电机(或简称 BLDC电机)是一种采用直流电源并通过外部电机控制器控制实现电子换向的电机.不同于有刷电机,BLDC 电机依靠外部控制器来实现换向.简言之,换向就是切换电机各相中的 ...

  9. jmeter mysql驱动jar包_用 Jmeter 做 Web 接口测试

    最近总结了一下在接口测试方面的知识与心得,在这里与大家分享一下,如有说的不对的地方请多多指正. 接口测试概述 定义 API testing is a type of software testing ...

最新文章

  1. 第1章 Java语言概述
  2. 1129 Recommendation System (25 分)【难度: 一般 / 知识点: 滑动窗口】
  3. 如何利用百度ocr实现验证码自动识别
  4. matlab imfill孔洞填充
  5. 【题解】HAOI2007分割矩阵
  6. mysql5.7密码过期ERROR 1862 (HY000): Your password has expired. To log in you must change
  7. Python pow() 函数
  8. hexo博客出现“Cannot GET/xxxx”的错误
  9. leetcode求众数
  10. vue 自定义指令_vue 自定义指令
  11. 初学django框架
  12. Android核心分析之二十五Android GDI之共享缓冲区机制
  13. 多系统精密星历下载与分析
  14. 短视频搬运软件:抖音批量解析下载一个作者所有视频
  15. 清除Svchost.exe
  16. 蓝桥杯第十届c语言试题答案,[蓝桥杯][2019年第十届真题]空间跳跃 - C语言网
  17. 灰色预测残差修正 matlab,基于残差修正灰色预测模型的长期电力负荷预测方法与流程...
  18. Antd如何在label里增加icon图标
  19. 怎么远程控制linux,Linux远程控制
  20. R与指数分布(1) 概率密度函数

热门文章

  1. 山西流感就诊比持续上升 专家为民答疑解惑
  2. (1)虚拟机管理——在微软云Azure新门户创建虚拟机
  3. asp.net读取模版并写入文本文件
  4. PHP问题 —— PHP Parse error: syntax error, unexpected
  5. servlet httpClient 下载远程文件
  6. 使用Quartus建立第一个FPGA工程
  7. 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  8. 文件处理(如果文件存在则追加,不存在则生成多级文件夹以及txt目录)
  9. WinCE的C#编程,对float型进行四舍五入保留两位小数,小数进行四舍五入操作,Math.Round的应用案例。...
  10. css样式之background详解(格子效果)