|
|
本帖最后由 迷你强 于 2015-12-8 13:30 编辑
本次试验用到的硬件,57步进电机,tb6560步进电机驱动,100线工业手轮
新人贴,希望大家喜欢
代码:
- #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--;
- }
- }
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|