极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12668|回复: 6

求大家帮忙看一段easydriver步进控制的程序

[复制链接]
发表于 2013-10-14 18:23:05 | 显示全部楼层 |阅读模式
需要功能:当按键BUTTON_ZERO 6  为按下时,步进电机运行,直到零点开关为1,


怎么我写的程序有问题吗?怎么多不执行。。





#define DIR_PIN 3      //定义脚2为方向控制,名称为DIR_PIN
#define STEP_PIN 5     //定义脚3为步进控制,名称为STEP_PIN

#define BUTTON_ZERO 6  //定义脚6为回零按钮信号,名称为ZERO_PIN 9
#define ZERO_PIN 9     //定义脚5为零点信号,名称为ZERO_PIN 9


void setup() {
  pinMode(DIR_PIN,OUTPUT);
  pinMode(STEP_PIN,OUTPUT);
  pinMode(BUTTON_ZERO,INPUT);
  pinMode(ZERO_PIN,INPUT);
}

void loop(){


  if(BUTTON_ZERO==HIGH)
  {
  do{
    zero(0.5);
      }
      while(ZERO_PIN==HIGH);
}

}

void zero(float speed)  //速度为0.01到1的任意数,最快速度为1
{
    digitalWrite(DIR_PIN,1);   //
   
    float usDelay = (1/speed) * 70;    //(定义等待时间为(1/speed) * 70实数)
   
    digitalWrite(STEP_PIN, HIGH);
   
    delayMicroseconds(usDelay);

    digitalWrite(STEP_PIN, LOW);
    delayMicroseconds(usDelay);
   
}
回复

使用道具 举报

 楼主| 发表于 2013-10-14 18:23:50 | 显示全部楼层
void loop()
{
      zero(0.5);   
}

如果执行和一段电机是运行的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-10-14 18:44:32 | 显示全部楼层
为毛这个程序也没有加速度呀???



#define DIR_PIN 3      //定义脚2为方向控制,名称为DIR_PIN
#define STEP_PIN 5     //定义脚3为步进控制,名称为STEP_PIN

#define BUTTON_ZERO 6  //定义脚6为回零按钮信号,名称为ZERO_PIN 9
#define ZERO_PIN 9     //定义脚5为零点信号,名称为ZERO_PIN 9

int speed=0;
void setup() {
  pinMode(DIR_PIN,OUTPUT);
  pinMode(STEP_PIN,OUTPUT);
  pinMode(BUTTON_ZERO,INPUT);
  pinMode(ZERO_PIN,INPUT);
}

void loop()
{

zero(0.01,0.5);

}

void zero(float speedMIN,float speedMAX)  //速度为0.01到1的任意数,最快速度为1
{
    digitalWrite(DIR_PIN,1);   //
   
    speed=speedMIN+0.01;
   
   if(speed>=speedMAX)
   {
   speed=speedMAX;
   }
    float usDelay = (1/speed) * 70;    //(定义等待时间为(1/speed) * 70实数)
   
    digitalWrite(STEP_PIN, HIGH);
   
    delayMicroseconds(usDelay);

    digitalWrite(STEP_PIN, LOW);
    delayMicroseconds(usDelay);
   
}

回复 支持 反对

使用道具 举报

发表于 2013-10-14 23:47:27 | 显示全部楼层
想要加速度一般都用库。。。或者自己写加速度。。。对于低速的雕刻机来说。。。加速度不重要。。。保证每一个脉冲都被执行了不丢步才重要。。。
关于这段程序。。。同学你的开关加上拉电阻了么……
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-10-15 09:48:42 | 显示全部楼层
没有加呀,省事。不过估计加了也没有毛用吧。不可能给了5V不是5V吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-10-16 09:16:20 | 显示全部楼层
有人帮我解答一下吗?》谢谢。
回复 支持 反对

使用道具 举报

发表于 2014-12-21 15:57:33 | 显示全部楼层
void setup() {
  pinMode(DIR_PIN,OUTPUT);
  pinMode(STEP_PIN,OUTPUT);
  pinMode(BUTTON_ZERO,INPUT);
  pinMode(ZERO_PIN,INPUT);
}
没有串口通信速率,你的程序编译不过吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-16 17:52 , Processed in 0.042464 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表