[Arduino] button control RC servo

這裡分享一個可以透過開關來啟動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);
   }
}

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *