☛ 功能說明
利用 Arduino UNO 開發板控制固定角度型伺服馬達 ( 舵機 ) 在 0 ~ 180° 來迴轉動。 伺服馬達電源可以接在 Arduino UNO 開發板的 +5V 端,但如果伺服馬達所需的電源高於 Arduino UNO 開發板 +5V 輸出電流時,則必須外接電源,且輸出電源必須得大於伺服馬達的工作電流,伺服馬達才能正常工作。
☛ 使用材料
Arduino UNO R3 開發板 × 1、SG-90 伺服馬達 × 1。
☛ 電路圖及麵包板接線圖
☛ 程式碼
#include<Servo.h> //使用 Servo.h 函式庫 Servo myServo; //建立 myServo 資料形態的物件 int angle; //固定型伺服馬達轉動角度 viod setup() { myServo.attach(2); //數位接腳 2 連接至伺服馬達信號線 } void loop() { for(angle=0;angle<=180;angle++) //由 0° 逆時針轉動至 180° { myServo.write(angle); //設定轉動角度 delay(15); //延遲 15ms 來控制轉動速度 } for(angle=180;angle>=0;angle--) //由 180° 順時針轉動至 0° { myServo.write(angle); //設定轉動角度 delay(15); //延遲 15ms 來控制轉動速度 } }
☛ 練習
⑴ 設計 Arduino 程式,控制固定型伺服馬達在 45°到 135° 之間來回擺動。
#include<Servo.h> //使用 Servo.h 函式庫 Servo myServo; //建立 myServo 資料形態的物件 int angle; //固定型伺服馬達轉動角度 void setup() { myServo.attach(2); //數位接腳 2 連接至伺服馬達信號線 } void loop() { for(angle=45;angle<=135;angle++) //由 45° 逆時針轉動至 135° { myServo.write(angle); //設定轉動角度 delay(15); //延遲 15ms 來控制轉動速度 } for(angle=135;angle>=45;angle--) //由 135° 順時針轉動至 45° { myServo.write(angle); //設定轉動角度 delay(15); //延遲 15ms 來控制轉動速度 } }
⑵ 設計 Arduino 程式,控制固定型伺服馬達在 45°到 135° 之間來回擺動,每 20ms 移動 5°。
#include<Servo.h> //使用 Servo.h 函式庫 Servo myServo; //建立 myServo 資料形態的物件 int angle; //固定型伺服馬達轉動角度 void setup() { myServo.attach(2); //數位接腳 2 連接至伺服馬達信號線 } void loop() { for(angle=45;angle<=135;angle+=5) //由 45° 逆時針轉動至 135°,每次遞增 5° { myServo.write(angle); //設定轉動角度 delay(20); //延遲 20ms 來控制轉動速度 } for(angle=135;angle>=45;angle-=5) //由 135° 順時針轉動至 45°,每次遞減 5° { myServo.write(angle); //設定轉動角度 delay(20); //延遲 20ms 來控制轉動速度 } }