查看: 654|回复: 5

[未解决] Arduino使用编码器控制步进电机转速和方向问题

[复制链接]
  • TA的每日心情
    奋斗
    2019-3-14 02:21
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2019-1-12 12:11 | 显示全部楼层 |阅读模式
    本帖最后由 passiflora 于 2019-1-12 12:16 编辑

    尝试用Arduino控制步进电机,换了42步进电机(盛龙SL42STH34-1504A)和之前买的57步进电机(VEXTA C9829-9112K),电源使用的是24VAC,编码器型号是SH2034D,细分设置为默认设置(1),电流按照电机的额定电流设置成1.2A,驱动板为Arduino UNO R3,预期实现目标:正向转1圈(200脉冲),反向转3圈(600脉冲)的循环,当前问题:电机只转很小的角度,并且不接受方向位的控制,只朝一个方向转,但是比例是对的,第二次角度是第一次的3倍左右。经示波器检测Arduino所发出的脉冲信号均正常。代码如下:

    kittenblock中小学创客名师推荐的图形化编程软件

    
    #define STEPPIN 9
    #define DIRPIN 8
    //方向位为8,脉冲位为9
    
    void setup() {
      pinMode(STEPPIN, OUTPUT);
      pinMode(DIRPIN, OUTPUT);
      Serial.begin(9600);
    }
    
    void loop() {
      // Enables the motor to move in a particular direction
      Serial.println("Forward Begins");
      digitalWrite(DIRPIN, HIGH);
      // 正向转1圈(200脉冲)
      for (int x = 0; x < 200; x ++) {
        digitalWrite(STEPPIN, HIGH);
        delayMicroseconds(500);
        digitalWrite(STEPPIN, LOW);
        delayMicroseconds(500);
      }
      Serial.println("Forward Ends");
      delay(1000); // Delay for one second
    
      // Changes the rotation direction or rotates in opposite direction
      Serial.println("Backward Begins");
      digitalWrite(DIRPIN, LOW);
      // 反向转3圈(600脉冲)
      for (int x = 0; x < 600; x ++) {
        digitalWrite(STEPPIN, HIGH);
        delayMicroseconds(500);
        digitalWrite(STEPPIN, LOW);
        delayMicroseconds(500);
      }
      Serial.println("Backward Ends");
      delay(2000); //Delay for two seconds
    }
    


    请教论坛里的各位大大,这是怎么回事,该如何解决?
  • TA的每日心情
    奋斗
    2019-3-22 22:34
  • 签到天数: 73 天

    [LV.6]常住居民II

    发表于 2019-1-12 13:19 来自手机 | 显示全部楼层
    接线图有没有???或者照片,能清楚看到接线的!还有就是步进电机的说明文档,驱动的说明文档,你这个感觉还是接线的问题
  • TA的每日心情
    奋斗
    2019-3-22 22:34
  • 签到天数: 73 天

    [LV.6]常住居民II

    发表于 2019-1-12 13:20 来自手机 | 显示全部楼层
    使用的是共阳的接线方法还是共阴的接线方法啊?
  • TA的每日心情
    开心
    2018-9-20 15:06
  • 签到天数: 279 天

    [LV.8]以坛为家I

    发表于 2019-1-12 13:48 | 显示全部楼层
    估计是DIR的接线问题,共阴或共阳~
    打赏一点,努力一点
  • TA的每日心情
    奋斗
    2019-3-14 02:21
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-1-12 22:51 | 显示全部楼层
    共阳和共阴我都试过了,一个结果,然后接线的话电机那边就是红接B+,蓝接B-,黑接A+,绿接A-
  • TA的每日心情
    奋斗
    2019-3-14 02:21
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-1-13 15:53 | 显示全部楼层
    已部分解决,是因为没注意到拨位设定里面ON=0,OFF=1,然后就是需要改成单脉冲,之后一切正常,不过目前还有一个问题就是57电机如果使用1细分的话就震动不转,但是其他细分档位却正常工作。
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    BLE胸带+GPS墨水屏运动心率表
    BLE胸带+GPS墨水屏运动心
    参赛项目: BLE胸带+GPS墨水屏运动心率表 参赛组员: 沧海笑1122 项目简介: 我喜欢
    基于树莓派的水滴摄影控制器(更新中)
    基于树莓派的水滴摄影控制
    【项目名称】基于树莓派的水滴摄影控制器(更新中) 状态:已完成 资料正在整理更
    如何实现避障小车和机械臂的组合
    如何实现避障小车和机械臂
    学校有科创杯比赛,想出了一个题目,但是一直无法实现,想请教大神指点指点 想达成的
    arduino nano 上传出错保这个错怎么办呀
    arduino nano 上传出错保
    基于Esp8266的点阵时钟
    基于Esp8266的点阵时钟
    芯片是ESP8266 12F 配合点阵单元板(64*32,单色),实现自动对时,天气预报,农历,
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表