现在我的代码是如下这样,请教达人修改转得慢些的方式?

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度。收到‘/’停止。
但这个速度太快了

海绵宝宝撒
浏览 130回答 2
2回答

料青山看我应如是

用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

myservo1.attach(9, min, max ) ;替换servo1.attach(9);经测试,min是最小速度(默认是544);max是最大速度默认是2400;你想降低速度可以修改min和max的值。比如10,20就很明显的降下来了!
打开App,查看更多内容
随时随地看视频慕课网APP