数字和模拟伺服与arduino的反应不同

时间:2014-11-20 00:20:41

标签: arduino

我有一些代码控制着一个旧的analoge伺服系统,一切正常。

但是当我得到一个新的数字伺服时,它不会保持位置,而是返回到0。

请帮助,需要什么?

以下是Sweep的基本代码:

#include <Servo.h> 
Servo myservo; 
int pos = 0;     

void setup() 
{ 
myservo.attach(A1);   
} 

void loop() 
{ 
for(pos = 0; pos <= 180; pos++)  // goes from 0 degrees to 180 degrees 
  {                                  // in steps of 1 degree 
    myservo.write(pos);              // tell servo to go to position in variable 'pos' 
    delay(15);                       // waits 15ms for the servo to reach the position 
  } 
 } 

2 个答案:

答案 0 :(得分:0)

在你的for循环之后:

while(1);

在循环的结束括号之前() 这将在该点停止程序,而不是继续运行每次声明pos = 0的for循环。

答案 1 :(得分:0)

我看到这个问题有点不合时宜。

但我发现还有另一种控制伺服的方法,那就是使用 writeMicroseconds 而不是myservo.write(90)。

myservo.writeMicroseconds(1500);  // 

http://arduino.cc/en/Reference/ServoWriteMicroseconds