Arduino 如何让步进电机罗盘通过360度
你好,我正在为飞行模拟器制作一个湿罗盘。我目前有一个步进电机与模拟器运行良好,但在360度到0度交叉点时,步进电机会进行360度全反转以进入位置 我的问题。。。任何人都可以帮助我创建代码,使从360到0的线性交叉在两个方向上工作 模拟器提供360度的浮点值,如172.13。我的步进机每转一圈有4076步。您将在下面的代码中看到数学。我正在使用AccelStepper库Arduino 如何让步进电机罗盘通过360度,arduino,Arduino,你好,我正在为飞行模拟器制作一个湿罗盘。我目前有一个步进电机与模拟器运行良好,但在360度到0度交叉点时,步进电机会进行360度全反转以进入位置 我的问题。。。任何人都可以帮助我创建代码,使从360到0的线性交叉在两个方向上工作 模拟器提供360度的浮点值,如172.13。我的步进机每转一圈有4076步。您将在下面的代码中看到数学。我正在使用AccelStepper库 void ProgOut(byte id, float val) { switch (1) { case 1: if (v
void ProgOut(byte id, float val) {
switch (1) {
case 1:
if (val)
{ stepper1.moveTo(val * 11.3222222); }
stepper1.run();
break; }}
我试过这样的方法:
void ProgOut(byte id, float val) {
switch (1) {
case 1:
if ( stepper1.distanceToGo () >= 4064){
stepper1.moveTo(4076);
stepper1.setCurrentPosition(0);
}
else if (val)
{
stepper1.moveTo(val * 11.3222222);
}
stepper1.run();
break; }}
提前感谢您的帮助如果您已经了解了步进电机的分辨率,只需执行一项简单的转换任务:
const float resolution = xx.xx; // put your step resolution here
int step_degree(float desired_degree){
return (desired_degree/resolution);}
这可以通过调用
stepper.step(step_degree(40)); //rotate 40 degree.
因此,在你的情况下,如果你想让它从360度平滑过渡到0度,只需通过一个大于360度的角度