我想用 2 个步进电机(42H48)和 2 个驱动器(TB6560)画一个圆。
硬件是这样的:
(y轴电机) | | ------ |--------(x轴电机) | |
现在,我只能控制这些电机来绘制钻石形状。
// 1
digitalWrite(xAxisMotorDirection, HIGH);
digitalWrite(yAxisMotorDirection , HIGH);
for(i=0; i<12000; i++)
{
digitalWrite( xAxisMotorPulse, HIGH);
digitalWrite( yAxisMotorPulse , HIGH);
delay(1);
digitalWrite( xAxisMotorPulse , LOW);
digitalWrite( yAxisMotorPulse , LOW);
delay(1);
}
// 2
digitalWrite(xAxisMotorDirection, HIGH);
digitalWrite(yAxisMotorDirection , LOW);
for(i=0; i<12000; i++)
{
digitalWrite( xAxisMotorPulse, HIGH);
digitalWrite( yAxisMotorPulse , HIGH);
delay(1);
digitalWrite( xAxisMotorPulse , LOW);
digitalWrite( yAxisMotorPulse , LOW);
delay(1);
}
// 3
digitalWrite(xAxisMotorDirection, LOW);
digitalWrite(yAxisMotorDirection , LOW);
for(i=0; i<12000; i++)
{
digitalWrite( xAxisMotorPulse, HIGH);
digitalWrite( yAxisMotorPulse , HIGH);
delay(1);
digitalWrite( xAxisMotorPulse , LOW);
digitalWrite( yAxisMotorPulse , LOW);
delay(1);
}
// 4
digitalWrite(xAxisMotorDirection, LOW);
digitalWrite(yAxisMotorDirection , HIGH);
for(i=0; i<12000; i++)
{
digitalWrite( xAxisMotorPulse, HIGH);
digitalWrite( yAxisMotorPulse , HIGH);
delay(1);
digitalWrite( xAxisMotorPulse , LOW);
digitalWrite( yAxisMotorPulse , LOW);
delay(1);
}
使用脉冲画圆的任何好方法?
我用谷歌搜索了“bresenham 算法”,但我不知道如何使用脉冲来实现这个算法。