透過可變電阻控制Servo旋轉的速度
// 使用可變電阻控制 Servo 的旋轉角度
// by Michal Rinott <http://people.interaction-ivrea.it/m.rinott>
// 引用 Servo Library
#include <Servo.h>
// 建立一個 Servo 物件
Servo myservo;
int pos = 0; // 变量pos用来存储舵机位置
// 可變電阻接在 Analog pin 0
int potpin = 0;
// 儲存旋轉角度的變數
int val;
void setup()
{
myservo.attach(9); // Servo 接在 pin 9
Serial.begin(9600);//设置波特率为9600
}
void loop()
{
val = analogRead(potpin);
//Serial.println(val);//显示val 变量// 讀取可變電阻(數值介於 0 到 1023)
val = val*0.0097751;
//Serial.println(val);//显示val 变量
//val = map(val, 0, 1023, 0, 179); // 把 0 - 1023 的數值按比例縮放為 0 - 180 的數值
//myservo.write(val);
if(val == 0){
val =1;
// 設定 Servo 旋轉角度
}
for(pos = 0; pos < 180; pos += val){ // 舵机从0°转到180°,每次增加1°
myservo.write(pos);
Serial.println(pos);// 给舵机写入角度
delay(100); // 延时15ms让舵机转到指定位置
}
for(pos = 180; pos>=1; pos-= val) { // 舵机从180°回到0°,每次减小1°
myservo.write(pos); // 写角度到舵机
Serial.println(pos);// 给舵机写入角度
delay(100); // 延时15ms让舵机转到指定位置
}
delay(15); // 等待 Servo 旋轉指定的位置
}