valiantzhang200 发表于 2015-12-7 20:44:46

arduino 工业手轮控制工业步进电机(新人贴)

本帖最后由 迷你强 于 2015-12-8 13:30 编辑

本次试验用到的硬件,57步进电机,tb6560步进电机驱动,100线工业手轮
新人贴,希望大家喜欢

http://player.youku.com/player.php/sid/XMTQwNjgwMzAwMA==/v.swf


代码:

#include <AccelStepper.h>
#include <AFMotor.h>
#define ENCODER_A_PIN 2
#define ENCODER_B_PIN 3
long position;
AF_Stepper motor1(200, 1);
void forwardstep1() {
motor1.onestep(FORWARD, SINGLE);
}
void backwardstep1() {
motor1.onestep(BACKWARD, SINGLE);
}
AccelStepper stepper1(1,8,7);//dir和pul


void setup()
{
   pinMode(ENCODER_A_PIN, INPUT);
pinMode(ENCODER_B_PIN, INPUT);
attachInterrupt(0, read_quadrature, CHANGE);
    stepper1.setMaxSpeed(20000.0);//最大速度
    stepper1.setAcceleration(1000.0);//加速度
    stepper1.moveTo(position);
}

void loop()
{
    stepper1.setMaxSpeed(200000.0);
    stepper1.setAcceleration(200000.0);
    stepper1.moveTo(position*33);
    stepper1.run();

}
void read_quadrature(){
// found a low-to-high on channel A ENA脚下降沿中断触发
if (digitalRead(ENCODER_A_PIN) == LOW){   
    // check channel B to see which way 查询ENB的电平以确认是顺时针还是逆时针旋转
    if (digitalRead(ENCODER_B_PIN) == LOW)
      position++;
}
// found a high-to-low on channel A ENA脚上升沿中断触发
else{
    // check channel B to see which way 查询ENB的电平以确认是顺时针还是逆时针旋转
    if (digitalRead(ENCODER_B_PIN) == LOW)
      position--;
}
}

valiantzhang200 发表于 2015-12-7 20:48:24

http://v.youku.com/v_show/id_XMTQwNjgwMzAwMA==.html?sharefrom=iphone
视频挂了。。。

renhua18 发表于 2015-12-11 10:07:32

高手   怎么用51单片机呢
页: [1]
查看完整版本: arduino 工业手轮控制工业步进电机(新人贴)