//------------------------------------------------ //author:Victor Chen //web :www.vic8051.com //參考資料:Arduino實作入門與應用 ----台灣/松崗 //------------------------------------------------ //ar20 以PWM信號推動伺服機轉動 #include //引用伺服機程式庫 Servo servo1 ; //宣告伺服機物件 int led = 13; // 設定LED腳位 int k1 = 7; //設定按鍵腳位 int LM=5; //設定伺服機腳位 void setup()//初始化設定 { pinMode(led, OUTPUT); pinMode(k1, INPUT); digitalWrite(k1, HIGH); Serial.begin(9600); } /*----------------------------------*/ void rot(byte d) //伺服機轉動某角度 { servo1.attach(LM); servo1.write(d); delay(1000); servo1.detach(); } //------------------------------------------ void loop()//主程式迴圈 { char c; int k1c; Serial.println("servo test : "); Serial.println("1--0 deg test"); Serial.println("2--90 deg test"); Serial.println("3--180 deg test"); while(1) //無窮迴圈 { if (Serial.available() > 0) //有串列介面指令進入 { c= Serial.read();//讀取串列介面指令 if(c=='1') rot(0); //伺服機轉動0度 if(c=='2') rot(90); //伺服機轉動90度 if(c=='3') rot(180); //伺服機轉動180度 } k1c=digitalRead(k1); //掃描是否有按鍵 if(k1c==0) //有按鍵 { rot(180); delay(1500); //伺服機轉動180度 rot( 90); delay(1500); //伺服機轉動90度 rot( 0); delay(1500); //伺服機轉動0度 } } }