查看: 2063|回复: 10

[未解决] arduino控制步进电机驱动器,电机不停

[复制链接]
  • TA的每日心情
    开心
    2019-11-4 13:37
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2019-10-20 23:36 | 显示全部楼层 |阅读模式
    用arduino 控制步进电机驱动器,共阳接线,程序如下,但电机转起来不停,请高手指点,谢谢!

    int vcc = 2;
    int pls = 3;
    int dir = 4;
    int ena = 5;
    void setup() {
      // put your setup code here, to run once:
           pinMode(vcc,OUTPUT);//
            pinMode(pls,OUTPUT); // Step  
           pinMode(dir,OUTPUT); // Dir
           pinMode(ena,OUTPUT);
           Serial.begin(9600);//设置波特率为9600
    }
    void loop() {
      // put your main code here, to run repeatedly:
         digitalWrite(vcc,HIGH); //
         digitalWrite(dir,HIGH); // Set dir high  
         digitalWrite(ena,HIGH);//set ena high
        for(int i = 0; i <= 100; i++) // Loop 1600 times  
        {         
          digitalWrite(3,HIGH); // set pls high
            delay(10); // Wait   ms
            digitalWrite(3,LOW); // set pls low
            delay(10); // Wait  ms   
        }
        digitalWrite(vcc,LOW);
       }
  • TA的每日心情
    开心
    2020-7-5 05:15
  • 签到天数: 609 天

    [LV.9]以坛为家II

    发表于 2019-10-23 03:40 | 显示全部楼层
    程序没有让步进电机让停止的控制怎么会停呢void loop()总在循环啊
  • TA的每日心情
    开心
    2019-11-4 13:37
  • 签到天数: 5 天

    [LV.2]偶尔看看I

     楼主| 发表于 2019-10-23 13:48 | 显示全部楼层
    lwq1947 发表于 2019-10-23 03:40
    程序没有让步进电机让停止的控制怎么会停呢void loop()总在循环啊

    能否指导一下,怎么修改程序?谢谢!
  • TA的每日心情
    开心
    2020-7-5 05:15
  • 签到天数: 609 天

    [LV.9]以坛为家II

    发表于 2019-10-23 17:04 | 显示全部楼层
    请问你要停止的条件要求,是用按钮还是时间长短控制.
  • TA的每日心情
    开心
    2019-11-4 13:37
  • 签到天数: 5 天

    [LV.2]偶尔看看I

     楼主| 发表于 2019-10-23 19:32 | 显示全部楼层
    用时间长短控制,运转60s让电机停止。
  • TA的每日心情

    2019-10-28 18:14
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    发表于 2019-10-23 19:59 | 显示全部楼层
    添加一个变量用来表示电机的启动和停止(也可以用bool),用if来判断,起初变量默认为true,执行电机代码,当60S到达后变量变为false,停止执行电机代码。
  • TA的每日心情
    开心
    2020-7-5 05:15
  • 签到天数: 609 天

    [LV.9]以坛为家II

    发表于 2019-10-24 11:48 | 显示全部楼层
    最简单的方法是用下面的程序,arduino通电后步进电机会转60秒.若按下arduino的复位键步进电机又会转60秒.
    int vcc = 2;
    int pls = 3;
    int dir = 4;
    int ena = 5;
    int i=1;           //新加的
    void setup() {
      // put your setup code here, to run once:
           pinMode(vcc,OUTPUT);//
            pinMode(pls,OUTPUT); // Step  
           pinMode(dir,OUTPUT); // Dir
           pinMode(ena,OUTPUT);
           Serial.begin(9600);//设置波特率为9600
    }
    void loop() {
        if(i<3000){
         digitalWrite(vcc,HIGH); //
         digitalWrite(dir,HIGH); // Set dir high  
         digitalWrite(ena,HIGH);//set ena high
        for(i = 1; i <=3000; i++) // Loop 3000 times  
        {         
          digitalWrite(3,HIGH); // set pls high
            delay(10); // Wait   ms
            digitalWrite(3,LOW); // set pls low
            delay(10); // Wait  ms   
        }
       }
       else digitalWrite(vcc,LOW);
      }
  • TA的每日心情
    开心
    2019-11-4 13:37
  • 签到天数: 5 天

    [LV.2]偶尔看看I

     楼主| 发表于 2019-10-26 09:07 | 显示全部楼层
    谢谢lwq1947 老师耐心指导,问题已解决:

    该用户从未签到

    发表于 2019-11-28 15:54 | 显示全部楼层
    lwq1947 发表于 2019-10-23 17:04
    请问你要停止的条件要求,是用按钮还是时间长短控制.

    如果用按钮控制呢?按键的0和1控制呢?
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    5分钟带你快速了解新一代开发板:M5STACK
    5分钟带你快速了解新一代
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    创客火首发无人机编队套装,开启不一样的人工智能教育
    创客火首发无人机编队套装
    2017年国务院发布《新一代人工智能发展规划》,提出要广泛开展人工智能科普活动,在中
    用 PyQt GUI 界面下的旋钮控制舵机角度
    用 PyQt GUI 界面下的旋钮
    新人报道, 我想用 PyQt 下的 Dial 旋钮模块来控制舵机的角度。如果一切正常,这个 G
    blinker连接树莓派失败
    blinker连接树莓派失败
    错误原因如下图,想问一下大家这个该怎么解决?
    Python3接入Blinker失败
    Python3接入Blinker失败
    运行示例程序,只把auth换成真实的auth,就出现报错。 大佬们看一下这个是啥情况
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表