這裡分享一個可以透過開關來啟動Servo的程式:
當我們將開關打開時,servo開始旋轉,若轉到底時,則會回到原位,在繼續轉;
若將開關關起時,servo會歸回原位
#include
Servo myservo;
int buttonpin = 2; //設定pin角
int servopin = 8;
int ledpin=13;
int pos = 0; //設定servo位置(0~180)
int buttonstate= 0; //設定開關狀態
void setup() //設定初始狀態
{
myservo.attach(servopin);
pinMode(buttonpin, INPUT);
}
void loop() //程式執行過程
{
buttonstate = digitalRead(buttonpin); //讀取開關狀態
if(buttonstate == HIGH) //假如開關開啟
{
pos++; //馬達位置+1
myservo.write(pos);
delay(15);
digitalWrite(ledpin, HIGH); //LED燈開啟
if(pos ==180) //假設servo位置已到底(180)
{
pos=0; //設定歸位 myservo.write(pos);
}
}
else //開關關閉
{
if(pos!=0) //servo位置不在原始位置
{
pos–; //servo位置-1
myservo.write(pos);
}
digitalWrite(ledpin, LOW); //LED燈關閉
delay(7);
}
}