0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

步进电机和限位开关的加速度

454398 来源:wv 2019-10-23 10:13 次阅读

步骤1:使用的资源

今天我们将使用以下组件列表进行组装:

•直径8mm,间距2mm的梯形主轴

•直径8mm间距8mm的梯形主轴

•8x2主轴的法兰螺母

•8x8主轴的法兰螺母

•8毫米直径主轴的轴承

•10mm直径圆柱线性导轨

•10mm导轨的圆柱滚子轴承

•10mm圆柱导轨的支架

•NEMA 17电机

•轴联轴器

Arduino Mega

•驱动程序DRV8825

•4x4矩阵键盘

•显示诺基亚5110

•各种各样塑料零件

•螺栓和螺母

•木底座

•外部电源12V

红外传感器

第2步:演示

我们今天的大会非常简单类似于带有主轴和步进电机的Arduino Uno视频

我需要更改什么?这次,我选择了Arduino Mega来使用路线终点开关,您可以在项目的右侧看到该路线终点开关,因为行程终点开关用于最快的主轴中。每个菜单都在ATmega中该程序的源代码中进行了说明。在视频中的演示中,我们使引擎移动了5厘米,以显示加速和减速情况。然后,它返回15厘米并触摸行程开关的终点,从而停止发动机。

步骤3:航向开关的终点

它是做什么用的?限位开关是通过停止发动机运动来限制路线的机械元件。它们用于机器组装中以保护机械性能。在CNC机床中,键还用作参考点,例如,将坐标轴归零。市场上有几种类型的键,其中包括:按钮,红外传感器,电容传感器等。

在我们的组装件中,我们使用红外传感器,如上图所示。

步骤4:示例代码

在arduino上有一个源代码,其中显示了Setup(设置)以及如何在行程开关和加速结束时移动步进电机。这是lib StepMotor,它是我制作的一个库,可以操纵8825、4988和TB6600驱动程序,并允许您播放更大的引擎,例如Nema 23或34。

然后,我们配置驱动器引脚,每毫米及周围的步距以及微速。我还以最大和最小速度配置节气门运动,并激活发动机动力输出端口。最后,限位开关销被激活。

#include

DRV8825 d1;

void setup() {

//Configuracao dos pinos do driver

d1.pinConfig(2,3,4,5,6,7,8,9);

//configuracao de passos por milimetro

d1.stepPerMm(100);

//configuracao de passos por volta

d1.stepPerRound(200);

//configuracao de micropasso

d1.stepConfig(1);

//configuracao do movimento (aceleracao, velocidade maxima, velocidade minima)

// tempos em uSegundos

// Aceleração é o decremento de tempo a cada novo passo

d1.motionConfig(20,1500,5000);

//reseta o driver

d1.reset();

//ativa as portas saídas de potencia do motor

d1.enable(HIGH);

//Pinos das chaves de fim de curso e se ativam em nivel alto ou baixo

// d1.endstopConfig(min,max,HIGH ou LOW);

d1.endstopConfig(10,11,HIGH);

}

下面是发动机代码示例。

void loop() {

//move o motor 100mm em direcao crescente

d1.motorMoveTo(100, HIGH);

//aguarda 1 segundo

delay(1000);

//move o motor 100mm em direcao decrescente

d1.motorMoveTo(100, LOW);

//aguarda 1 segundo

delay(1000);

}

步骤5:课程切换结束

代码:在我们的代码中,我们将采取行动

bool DRV8825::canGo(bool direction)

{

if(LVL) // se: as chaves de fim de curso ativam em nível alto

{

if(direction && !digitalRead(EMAX)) //se: move positivamente E o fim de curso máximo NÃO está ativado

return true;

if(!direction && !digitalRead(EMIN)) //se: NÃO move positivamente E o fim de curso mínimo NÃO está ativado

return true;

}

else //senão: as chaves de fim de curso ativam em nível baixo

{

if(direction && digitalRead(EMAX)) //se: move positivamente E o fim de curso máximo está ativado

return true;

if(!direction && digitalRead(EMIN)) //se: NÃO move positivamente E o fim de curso mínimo está ativado

return true;

}

return false;

}

步骤6:加速

在一定的时间间隔内,通过高低脉冲控制电动机的步进。

为了使发动机不以最大速度直接启动,我们使用加速度。

加速会改变每一步的脉冲时间以改变发动机转速,然后逐渐增加到最大速度以加速,然后逐渐减小直到停止减速。

加速可以通过多种方式实现。

我们创建的代码示例了步进电机中加速度的使用。

步骤7:加速度-代码

简单的加速度代码示例。

在此代码中,脉冲时间在每一步都由用户选择的值减少,直到中途或连续l发动机达到最大速度,即设置的最短脉冲时间。

void DRV8825::motorMoveTo(double distance, bool direction) //(distância, direção, tempo da largura do pulso em microssegundos (metade do tempo em nível alto, metade em nível baixo))

{

digitalWrite(DIR, direction);

long accSpeed = SMIN;

long steps = distance*SPM;

long stepsToStop;

bool flag = true;

for(long i = 0; i 《 steps; i++){

if(i 《 (steps)/2){

if(accSpeed》SMAX){

if(canGo(direction)){

digitalWrite(STP, HIGH);

delayMicroseconds(accSpeed/2);

digitalWrite(STP, LOW);

delayMicroseconds(accSpeed/2);

}

else{

delayMicroseconds(accSpeed);

}

accSpeed = accSpeed - ACC;

}

这时,将存储电动机为达到该路径的最大速度而执行的脉冲量。

else

{

if(flag){

stepsToStop = i;

flag = false;

}

if(canGo(direction)){

digitalWrite(STP, HIGH);

delayMicroseconds(SMAX/2);

digitalWrite(STP, LOW);

delayMicroseconds(SMAX/2);

}

else{

delayMicroseconds(SMAX);

}

}

}

此数量将与达到行程结束之前用于发动机减速的量相同。

要使发动机减速,脉冲时间会增加

else

{

if(i 《 steps-stepsToStop){

if(canGo(direction)){

digitalWrite(STP, HIGH);

delayMicroseconds(SMAX/2);

digitalWrite(STP, LOW);

delayMicroseconds(SMAX/2);

}

else{

delayMicroseconds(SMAX);

}

}

else

{

if(canGo(direction)){

digitalWrite(STP, HIGH);

delayMicroseconds(accSpeed/2);

digitalWrite(STP, LOW);

delayMicroseconds(accSpeed/2);

}

else{

delayMicroseconds(accSpeed);

}

accSpeed = accSpeed + ACC;

}

}

}

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 步进电机
    +关注

    关注

    150

    文章

    3112

    浏览量

    147558
  • 限位开关
    +关注

    关注

    0

    文章

    46

    浏览量

    4804
收藏 人收藏

    评论

    相关推荐

    adxl345检测振动加速度信号,在加速度为0处,有±1g的跳动怎么解决?

    分别在800和400Hz采样率下,采集振动加速度信号,信号频率15.915Hz±1%,几乎每次在加速度为0的时候都会有±1g的数值跳动(在任何采样率和测量范围下都有这个问题),请问这该怎么解决? 器件不使用中断,全分辨率,±16g
    发表于 12-19 08:50

    MEMS加速度计的工作原理是什么

    MEMS加速度计的工作原理主要基于牛顿第二定律,即力等于质量乘以加速度。以下是对其工作原理的介绍: 一、核心部件与结构 MEMS加速度计的核心部件包括一个微小的质量块、弹性元件(如弹簧梁)以及检测器
    的头像 发表于 11-20 10:09 708次阅读

    什么是AEC-Q102的恒定加速度测试?

    恒定加速度测试是一种关键的实验性方法,用于评估电子元件在模拟高速动态条件下的性能。这种测试通过施加恒定的加速度来评估元件的结构强度和机械稳定性,旨在揭示那些在标准测试中可能未被发现的潜在缺陷。这对
    的头像 发表于 11-06 14:33 303次阅读
    什么是AEC-Q102的恒定<b class='flag-5'>加速度</b>测试?

    加速度传感器的应用

    加速度传感器是一种能够测量加速度的传感器。通常由质量块、阻尼器、弹性元件、敏感元件和适调电路等部分组成。传感器在加速过程中,通过对质量块所受惯性力的测量,利用牛顿第二定律获得加速度值。
    的头像 发表于 09-30 08:08 721次阅读
    <b class='flag-5'>加速度</b>传感器的应用

    物联网系统中加速度测试方案的实现_加速度传感器分析

    01 物联网系统中为什么要使用加速度传感器 在物联网系统中,使用加速度传感器的原因主要基于加速度传感器所具备的功能特性及其在物联网应用中的重要作用。以下是对这一问题的详细解析: 加速度
    的头像 发表于 09-26 14:19 560次阅读
    物联网系统中<b class='flag-5'>加速度</b>测试方案的实现_<b class='flag-5'>加速度</b>传感器分析

    EPSON工业级加速度计选型

    爱普生加速度计(Accelerometers)是一种工业级三轴输出压电式加速度传感器,采用具有专利技术的双音叉式石英传感器元件和Quarts光刻技术,通过压电效应来计算出诸如此类的内容物体运动的方向
    的头像 发表于 09-19 15:31 309次阅读
    EPSON工业级<b class='flag-5'>加速度</b>计选型

    步进电机伺服控制系统的作用

    控制系统的主要作用是实现对电机的精确控制,包括位置、速度加速度的控制。具体来说,它可以实现以下几个方面的作用: 1.1 精确控制位置 步进电机
    的头像 发表于 09-04 09:46 683次阅读

    e2studio开发三轴加速度计LIS2DW12(2)----基于中断信号获取加速度数据

    本文将介绍实时获取和处理加速度数据。程序的核心流程包括初始化硬件接口、配置加速度计的参数,以及通过轮询检查中断信号来不断读取加速度数据。
    的头像 发表于 08-09 15:43 536次阅读
    e2studio开发三轴<b class='flag-5'>加速度</b>计LIS2DW12(2)----基于中断信号获取<b class='flag-5'>加速度</b>数据

    步进电机控制器怎么调速度

    引言 步进电机是一种将电脉冲信号转换为角位移的电机,具有控制精度高、响应速度快、结构简单等优点。在自动化设备、机器人、数控机床等领域得到了广泛应用。
    的头像 发表于 06-12 09:17 2116次阅读

    e2studio开发三轴加速度计LIS2DW12(2)----基于中断信号获取加速度数据

    本文将介绍实时获取和处理加速度数据。程序的核心流程包括初始化硬件接口、配置加速度计的参数,以及通过轮询检查中断信号来不断读取加速度数据。
    的头像 发表于 05-17 14:42 861次阅读
    e2studio开发三轴<b class='flag-5'>加速度</b>计LIS2DW12(2)----基于中断信号获取<b class='flag-5'>加速度</b>数据

    LIS2DE12加速度传感器能否保存数据一次获取?当读取xyz轴加速度时获得的是当前实时加速度吗?

    LIS2DE12加速度传感器能否保存数据一次获取,当读取xyz轴加速度时获得的是当前实时加速度吗?
    发表于 04-02 06:53

    加速度传感器的基本力学模型是什么

    加速度传感器的基本力学模型是一个受力物体的运动学和动力学模型的组合。本文将从以下几个方面介绍加速度传感器的基本力学模型。 一、运动学模型 加速度传感器的运动学模型主要描述传感器在空间中的位置、
    的头像 发表于 01-17 11:08 1450次阅读

    加速度传感器常用的有哪两种

    加速度传感器常用的有两种,一种是基于压电效应的压电式加速度传感器,另一种是基于微机电系统(MEMS)技术的微型加速度传感器。 压电式加速度传感器是利用压电晶体的压电效应来测量
    的头像 发表于 01-15 15:27 1052次阅读

    步进电机驱动器拨码开关怎么调

    步进电机驱动器是一种常见的电机驱动装置,可用于控制步进电机的转动。调整步进
    的头像 发表于 01-15 13:56 4157次阅读

    加速度传感器属于什么类型传感器

    加速度传感器属于惯性传感器类型的传感器。惯性传感器主要通过测量物体运动状态中的加速度速度和位移来实现物体的运动检测和测量。 引言 加速度传感器是一种常见的传感器,在很多领域中有着广泛
    的头像 发表于 01-12 11:12 966次阅读