Arduino中手写脉冲控制步进电机-1

目录

一、硬件介绍

1、型号

(1)步进电机

(2)驱动器

2、接线图

3、电机旋转圈速和位置

(1)电机旋转一圈对应脉冲数设置

(2)电机旋转速度设置

二、功能代码和测试

1、代码

2、测试效果

(1)转速1

(2)转速2


一、硬件介绍

1、型号

(1)步进电机

(2)驱动器

2、接线图

采用共阳极极限方式。

3、电机旋转圈速和位置

(1)电机旋转一圈对应脉冲数设置

如果所示拨码开关S1、S2、S3对应脉冲数设置。S1设置ON、S2和S3设置OFF,对应800。电机转一圈脉冲:800*2=1600。

(2)电机旋转速度设置

修改脉冲周期时间,即可改变旋转速度。具体见程序。

二、功能代码和测试

控制器上电以后,电机正转一圈、等待一秒,反转一圈、等待一秒。如此一直循环运行。

1、代码


#define Puls  7       //脉冲位为引脚7
#define Dir   6       //方向位为引脚6(高电平正转、低电平反转)
#define Ena   10      //使能位为引脚10。(低电平电机禁止运动,高电平电机有效)
#define bushu 1600    //脉冲步数  1600个脉冲转一圈()

const int pulsTime=1000;    //脉冲高低电平时间(延时大转速降低)

void setup() 
{
  //
  Serial.begin(9600);
  //
  pinMode(Puls, OUTPUT);
  pinMode(Dir, OUTPUT);
  pinMode(Ena, OUTPUT);
  //
  digitalWrite(Ena, HIGH);
  
}

void loop() 
{
  //正转
  //使电机向特定方向运动
  Serial.println("Forward Begins");
  digitalWrite(Dir, HIGH);//方向引脚高电位,正转
  // 正向转(bushu脉冲)
  for (int x = 0; x < bushu; x ++) {
    digitalWrite(Puls, HIGH);
    delayMicroseconds(pulsTime);       //500微秒延时,即0.5毫秒
    digitalWrite(Puls, LOW);
    delayMicroseconds(pulsTime);
  }
  Serial.println("Forward Ends");
  delay(1000); // Delay for one second

  //逆转 
  //使电机向反方向运动
  Serial.println("Backward Begins");
  digitalWrite(Dir, LOW);//方向引脚低电位,逆转
  // 反向转(bushu脉冲)
  for (int x = 0; x < bushu; x ++) {
    digitalWrite(Puls, HIGH);
    delayMicroseconds(pulsTime);
    digitalWrite(Puls, LOW);
    delayMicroseconds(pulsTime);
  }
  Serial.println("Backward Ends");
  delay(1000); //Delay for two seconds
}



2、测试效果

串口接收到反馈的运行状态

(1)转速1

const int pulsTime=500;

0.5ms脉冲电机速度

(2)转速2

const int pulsTime=250;

0.25ms脉冲电机转速

  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Arduino作为一款开源的计算机硬件和软件平台,由于其开放性和易用性深受广大电子爱好者的青睐。其步进电机控制是一项非常重要的应用之一。下面我们就来探讨一下如何编写一个arduino步进电机控制程序。 首先,我们需要确定步进电机的驱动方式,大多数情况下使用的是A4988型驱动器。在此基础上,我们需要编写程序实现步进电机的正反转和步进数控制等功能。 1. 引用必要的库文件。 在开头的引用部分,需要引用一些必要的库文件,包括Arduino.h和arduino_stepper.h等,使程序可以顺利运行。 2. 设置步进电机驱动器的引脚。 使用digitalWrite()函数可以控制步进电机驱动器的引脚状态。这些引脚包括step、dir等,通过设置这些引脚的电平和跳变实现步进电机的正反转和步进数控制等功能。 3. 配置步进电机驱动器的参数。 使用Stepper()函数可以配置步进电机驱动器的参数,包括步进角度、每步时间等。根据具体的电机参数设置这些参数,以保证步进电机的正常工作。 4. 编写步进电机控制函数。 在控制步进电机的函数,可以使用stepper.setSpeed()函数控制步进电机的转速。同时,通过控制dir引脚的电平实现步进电机的正反转。在调试过程,需要不断地修改参数,以实现越来越精准的转动控制。 在编写好程序后,可以将其上传至arduino板子进行测试。需要注意的是,步进电机的驱动方式不同,可能对应的引脚和控制参数也不同,因此需要按照具体的情况进行修改。 总的来说,arduino步进电机控制程序的编写需要具备一定的电子基础和程序设计技能,掌握相关的库函数和参数设置技巧,才能实现一个高效、稳定的控制程序。在实践过程,还需要耐心调试和修改,才能得到满意的结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Big_潘大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值