Arduino控制步进电机只转动一圈-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 403|回复: 0

[未解决] Arduino控制步进电机只转动一圈

[复制链接]
发表于 2022-7-19 09:16 | 显示全部楼层 |阅读模式
我需要实现按下开关,即开关为HIGH时,步进电机旋转一圈然后停止。在按一下开关电机即为LOW 时,执行宁外一个操作。我用的时电源开关。
int x;  
  int buttonState;
  void  abc();
  static int D=0;
void setup()  
{   
  pinMode(14,OUTPUT); // 电机脉冲Step  
  pinMode(15,OUTPUT); // 电机旋转方向Dir  
  pinMode(16,INPUT);//开关状态
}  
void loop()  
{
abc();
}
void  abc()
{  
    buttonState=digitalRead(16); //读取开关状态
     if(buttonState==HIGH)
    {
       delay(50);
       if(buttonState==HIGH&&D==0)//为了当开关从LOW变为HIGH的时候 电机只旋转一次  所以加了一个变量D
        {  
          digitalWrite(15,HIGH);  //电机正转一圈  
            for(x = 0; x < 200; x++) // Loop 200 times  
            {  
            digitalWrite(14,HIGH); // Output high  
            delayMicroseconds(1000); // Wait 1/2 a ms  
            digitalWrite(14,LOW); // Output low  
            delayMicroseconds(1000); // Wait 1/2 a ms  
            D=1;
            }  
            delay(1000); // pause one second
        }
      }
     if(buttonState==LOW){//当开关为LOW的时候  D变为1 为下一次旋转做准备,加了按键防抖也没用
               D=0;
           
     }
  }//这个程序能正常的烧进板子,问题就是当电机启动时旋转一圈  然后就会时不时不固定的旋转的一圈,
//如果将if(buttonState==LOW){ D=0;}屏蔽 电机就只会旋转一圈  然后在怎么按开关就没反应了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-1 01:20 , Processed in 0.094671 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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