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
提交
取消