Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino 停止连续伺服_Arduino_Arduino Uno_Servo - Fatal编程技术网

Arduino 停止连续伺服

Arduino 停止连续伺服,arduino,arduino-uno,servo,Arduino,Arduino Uno,Servo,您知道如何在所需位置停止连续伺服吗 我试着这样编写代码(我在许多论坛上都能找到): 我的伺服确实向前移动了1s,然后停在我想要的位置,然后立即返回到它的一个位置(每次都是相同的位置)。我希望它保持在理想的位置。例如,我计算了一下,在150毫秒内,它以60度的角度移动,它应该停下来等待下一个信息 我还尝试使用此技巧分离伺服,如下所示: myservo.write(10); delay(120); myservo.detach(); delay(2000); 这是可行的,但它并没有我想要的那么精确

您知道如何在所需位置停止连续伺服吗

我试着这样编写代码(我在许多论坛上都能找到):

我的伺服确实向前移动了1s,然后停在我想要的位置,然后立即返回到它的一个位置(每次都是相同的位置)。我希望它保持在理想的位置。例如,我计算了一下,在150毫秒内,它以60度的角度移动,它应该停下来等待下一个信息

我还尝试使用此技巧分离伺服,如下所示:

myservo.write(10);
delay(120);
myservo.detach();
delay(2000);
这是可行的,但它并没有我想要的那么精确,而且我不能达到小于100度的角度

我用的是连续伺服

我很抱歉,如果我的问题已经有了答案,但我保证我通过无数的主题和论坛!
谢谢你的建议

你写的都是真的,但还是帮不了我。49到97之间的值使电机停止在某个特定位置。但位置的范围仍然很小。也许我会告诉你我的项目,让你明白。这是分拣机:第一个伺服应向右移动90度,并在此位置等待下一个信息。获得此信息后,它应再次移动90度而不返回。第二个伺服应该移动60,120,180。。。就这样一个,别再等下一步了。我所要做的就是在一定时间后将电机停在它所处的位置。这可能吗?没关系,我误解了这个问题。我认为问题在于伺服系统一直回到初始位置,而你的问题似乎是将其停在所需位置。我认为如果你想获得任何精度,你需要实现某种基于传感器的反馈系统。是的,这是一个问题。我希望我的伺服系统能像这样工作(源代码):函数myservo.write(90)在视频中的意思是“停下来,呆在原地”。在我的伺服系统中,同样的功能是“停止并返回初始位置”。但根据亚马逊的描述,停止是值
0
。。那不行?我不知道这个伺服是怎么工作的,所以你可能要检查它的数据表,但根据我的经验,你要做的不是伺服,而是步进机。伺服可以进行180°旋转(前后)或移除反馈,进行连续旋转(无定位)。如果你想制造一个连续旋转的电机,并稳定而精确地设置它的位置,那么用步进仪是完全正确的,你所写的一切都是正确的,但它仍然不能帮助我。49到97之间的值使电机停止在某个特定位置。但位置的范围仍然很小。也许我会告诉你我的项目,让你明白。这是分拣机:第一个伺服应向右移动90度,并在此位置等待下一个信息。获得此信息后,它应再次移动90度而不返回。第二个伺服应该移动60,120,180。。。就这样一个,别再等下一步了。我所要做的就是在一定时间后将电机停在它所处的位置。这可能吗?没关系,我误解了这个问题。我认为问题在于伺服系统一直回到初始位置,而你的问题似乎是将其停在所需位置。我认为如果你想获得任何精度,你需要实现某种基于传感器的反馈系统。是的,这是一个问题。我希望我的伺服系统能像这样工作(源代码):函数myservo.write(90)在视频中的意思是“停下来,呆在原地”。在我的伺服系统中,同样的功能是“停止并返回初始位置”。但根据亚马逊的描述,停止是值
0
。。那不行?我不知道这个伺服是怎么工作的,所以你可能要检查它的数据表,但根据我的经验,你要做的不是伺服,而是步进机。伺服可以进行180°旋转(前后)或移除反馈,进行连续旋转(无定位)。如果你想做一个连续旋转的电机,并设置其位置稳定,准确地去与步进机
myservo.write(10);
delay(120);
myservo.detach();
delay(2000);