dbo 发表于 2012-11-26 16:58:10

参考迷你强的中断教程以后 步进电机还是会动

本帖最后由 dbo 于 2012-11-26 16:59 编辑

线路也跟迷你强接的一模一样 按钮处也加了上拉电阻   当按钮按下时 步进电机还是转 只是转的极慢而已 板子用的是arduino duemilanove 中断教程的地址:http://www.geek-workshop.com/thread-1983-1-1.html
int pbIn = 0;                  // 定义中断引脚为0,也就是D2引脚
int ledOut = A0;                // 定义输出指示灯引脚
volatile int state = LOW;      // 定义默认输入状态
#define DIR_PIN_Y 4
#define STEP_PIN_Y 5

void setup()
{               
pinMode(DIR_PIN_Y, OUTPUT);
pinMode(STEP_PIN_Y, OUTPUT);
// 置ledOut引脚为输出状态
pinMode(ledOut, OUTPUT);

// 监视中断输入引脚的变化
attachInterrupt(pbIn, stateChange, LOW);
}

void loop()                     
{
// 模拟长时间运行的进程或复杂的任务。
for (int i = 0; i < 100; i++)
{rotateDeg_Y(i,1);
delay(2000);}
}

void stateChange()
{
state = HIGH;
digitalWrite(ledOut, state);
}

void rotateDeg_Y(float deg, float speed){
//rotate a specific number of degrees (negitive for reverse movement)
//speed is any number from .01 -> 1 with 1 being fastest - Slower is stronger
int dir = (deg > 0)? LOW:HIGH;
digitalWrite(DIR_PIN_Y,dir);

unsigned int steps = abs(deg)/(0.003125);
float usDelay = (1/speed) * 80;
for(int i=0; i < steps; i++){
    digitalWrite(STEP_PIN_Y, HIGH);
    delayMicroseconds(usDelay);
    digitalWrite(STEP_PIN_Y, LOW);
    delayMicroseconds(usDelay);
}
}
页: [1]
查看完整版本: 参考迷你强的中断教程以后 步进电机还是会动