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--;
}
}
http://v.youku.com/v_show/id_XMTQwNjgwMzAwMA==.html?sharefrom=iphone
视频挂了。。。 高手 怎么用51单片机呢
页:
[1]