For function going wrong?


i have made code have easy way (half)step stepper
the stepper 200 steps make full circle

if
code: [select]
stepf(200);it goes around 4 times.

when do
code: [select]
stepf(50);it perfect circle.

can help?


code: [select]
int steppin1 = 8;
int steppin2 = 9;
int steppin3 = 10;
int steppin4 = 11;
int val = 10;

void setup()
{
 pinmode(steppin1, output);
 pinmode(steppin2, output);
 pinmode(steppin3, output);
 pinmode(steppin4, output);
}

void stepf(int steps)
{
 for (int i=0; < steps; i++)
 {
 digitalwrite(steppin1, high);
 digitalwrite(steppin2, low);
 digitalwrite(steppin3, low);
 digitalwrite(steppin4, low);
 delay(val);
 digitalwrite(steppin1, high);
 digitalwrite(steppin2, low);
 digitalwrite(steppin3, high);
 digitalwrite(steppin4, low);
 delay(val);
 digitalwrite(steppin1, low);
 digitalwrite(steppin2, low);
 digitalwrite(steppin3, high);
 digitalwrite(steppin4, low);
 delay(val);
 digitalwrite(steppin1, low);
 digitalwrite(steppin2, high);
 digitalwrite(steppin3, high);
 digitalwrite(steppin4, low);
 delay(val);
 digitalwrite(steppin1, low);
 digitalwrite(steppin2, high);
 digitalwrite(steppin3, low);
 digitalwrite(steppin4, low);
 delay(val);
 digitalwrite(steppin1, low);
 digitalwrite(steppin2, high);
 digitalwrite(steppin3, low);
 digitalwrite(steppin4, high);
 delay(val);
 digitalwrite(steppin1, low);
 digitalwrite(steppin2, low);
 digitalwrite(steppin3, low);
 digitalwrite(steppin4, high);
 delay(val);
 digitalwrite(steppin1, high);
 digitalwrite(steppin2, low);
 digitalwrite(steppin3, low);
 digitalwrite(steppin4, high);
 delay(val);
 }
}

void stepb(int times)
{
 for (int i=0; < times; i++)
 {
  digitalwrite(steppin1, low);
 digitalwrite(steppin2, low);
 digitalwrite(steppin3, low);
 digitalwrite(steppin4, high);
 delay(val);
 digitalwrite(steppin1, low);
 digitalwrite(steppin2, high);
 digitalwrite(steppin3, low);
 digitalwrite(steppin4, high);
 delay(val);
 digitalwrite(steppin1, low);
 digitalwrite(steppin2, high);
 digitalwrite(steppin3, low);
 digitalwrite(steppin4, low);
 delay(val);
 digitalwrite(steppin1, low);
 digitalwrite(steppin2, high);
 digitalwrite(steppin3, high);
 digitalwrite(steppin4, low);
 delay(val);
 digitalwrite(steppin1, low);
 digitalwrite(steppin2, low);
 digitalwrite(steppin3, high);
 digitalwrite(steppin4, low);
 delay(val);
 digitalwrite(steppin1, high);
 digitalwrite(steppin2, low);
 digitalwrite(steppin3, high);
 digitalwrite(steppin4, low);
 delay(val);
 digitalwrite(steppin1, high);
 digitalwrite(steppin2, low);
 digitalwrite(steppin3, low);
 digitalwrite(steppin4, low);
 delay(val);
 digitalwrite(steppin1, high);
 digitalwrite(steppin2, low);
 digitalwrite(steppin3, low);
 digitalwrite(steppin4, high);
 delay(val);
 }
}

void loop()
{
 stepf(200);
 stepb(200);
}

it looks you're performing 8 steps per iteration of loop. if each half-step, 50 * 8 / 2 == 200; 50 times 8 half-steps 1 complete revolution of 200 steps.


Arduino Forum > Forum 2005-2010 (read only) > Software > Syntax & Programs > For function going wrong?


arduino

Comments

Popular posts from this blog

CAN'T INSTALL MAMBELFISH 1.5 FROM DIRECTORY - Joomla! Forum - community, help and support

error: expected initializer before 'void'

CPU load monitoring using GPIO and leds - Raspberry Pi Forums