Stepper motor control


i bought following stepper motor , im running following code it. seems adjusting delaymicroseconds on lines 12/14 adjusts speed of stepper motor. proper way of adjusting speed of stepper motor?

how go making stepper motor rotate 1.60463 rpm? not sure how accurate can make stepper motor from calculations thats speed need need for.

also, distance on line 18 have set @ 1600 1 full rotation stepper motor. eye seems 1 full rotation. how know value input there accurate 1 full rotation?

thanks,

stepper motor

code: [select]
int distance = 0;  // record number of steps we've taken

void setup() {               
  pinmode(8, output);     
  pinmode(9, output);
  digitalwrite(8, low);
  digitalwrite(9, low);
}

void loop() {
  digitalwrite(9, high);
  delaymicroseconds(70); //70 minimal         
  digitalwrite(9, low);
  delaymicroseconds(70);  //70 minimal
  distance = distance + 1;   // record step
 
  // check see if @ end of our move
  if (distance == 32000)
  {
    // are! reverse direction (invert dir signal)
    if (digitalread(8) == low)
    {
      digitalwrite(8, high);
    }
    else
    {
      digitalwrite(8, low);
    }
    // reset our distance 0 since we're
    // starting new move
    distance = 0;
    // pause half second
    delay(500);
  }
}

the number of steps 1 rotation set motor mechanics need find figure in motor's data sheet. 200 steps per revolution , might half or quarter stepping it.

is right way? have interrupt called step routine driven off timer. can motor's speed accurate can set timer or delays.


Arduino Forum > Using Arduino > Project Guidance > Stepper motor control


arduino

Comments