if (Serial.available()){char val = Serial.read();if (val == 'i'){servo1.attach(9);servo1.write(165);}else if (val == 'j'){servo1.attach(9);servo1.write(10);}else if (val == '/'){servo1.detach();servo2.detach();例如串口收到‘i’,舵机立刻转到10度;串口收到‘j’,舵机转到165度。收到‘/’停止。但这个速度太快了
2 回答
料青山看我应如是
TA贡献1772条经验 获得超8个赞
用servo1.writeMicroseconds(1500);这种格式速度会慢些。
舵机从1000转到2000,1500相当于90°,而你用的10°和165°可以自己计算。
给你一个示例:
#include <Servo.h>
Servo myservo;
void setup()
{
myservo.attach(9);
myservo.writeMicroseconds(1500); // set servo to mid-point
}
void loop() {}
HUWWW
TA贡献1874条经验 获得超12个赞
myservo1.attach(9, min, max ) ;替换servo1.attach(9);
经测试,min是最小速度(默认是544);max是最大速度默认是2400;你想降低速度可以修改min和max的值。比如10,20就很明显的降下来了!
添加回答
举报
0/150
提交
取消