ESP32 系開發板與 Arduino 系開發板對於伺服馬達在程式撰寫上有所差異,ESP32 系開發板會稍微麻煩一些,但只要有程式庫,一切都會變簡單。
下載程式庫
Step1 在 Arduino IDE 裡點擊下拉功能表 [工具] > [管理程式庫...]。
Step2 在文書欄位內鍵入「ESP32Servo」,然後安裝 ESP32Servo 程式庫。
上傳程式
打開範例程式「Sweep.ino」或開啟程式「ESP32CAM_Servo.ino」並上傳。
ESP32CAM_Servo.ino
//ESP32CAM_Servo.ino by Robot Wolf Group
#include <ESP32Servo.h>
Servo myservo1, myservo2;
#define servoPin1 2 //Angle 90
#define servoPin2 13 //Sweep
void setup() {
// Allow allocation of all timers
ESP32PWM::allocateTimer(0);
ESP32PWM::allocateTimer(1);
ESP32PWM::allocateTimer(2);
ESP32PWM::allocateTimer(3);
// using default min/max of 1000us and 2000us
// different servos may require different min/max settings
myservo1.setPeriodHertz(50); // standard 50 hz servo
myservo1.attach(servoPin1, 1000, 2000); // attaches the servo to the servo object
myservo1.write(90);
// for an accurate 0 to 180 sweep
myservo2.setPeriodHertz(50);
myservo2.attach(servoPin2, 1000, 2000);
}
void loop() {
for (int pos = 0; pos <= 180; pos += 5) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
myservo2.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
for (int pos = 180; pos >= 0; pos -= 5) { // goes from 180 degrees to 0 degrees
myservo2.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
}
電路接線
GPIO2 可以將伺服馬達設定為 90 度,
GPIO13 可以檢查伺服馬達是否正常轉動。
依照您的需求,將伺服馬達 S 端分別連接 GPIO2 或 GPIO13,然後伺服馬達 V 和 G 端接外部電源 5V 和 Gnd。
不要忘了,也需要從 ESP32-CAM 開發板的 Gnd 拉一條線連到外部電源的 Gnd。
上述如果拉線困難,可以使用麵包板。
採購資訊
ESP32-CAM 雙軸人體偵測器(豪華版)套件 http://pizgchen.blogspot.com/2021/04/esp32-cam.html
沒有留言:
張貼留言