【发布时间】:2017-08-29 03:27:44
【问题描述】:
我想用 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 算法”,但我不知道如何使用脉冲来实现这个算法。
【问题讨论】:
-
sry 你的电机有多少步?
-
1.8 度步距角
标签: arduino geometry bresenham motordriver stepper