#include <ESP32Servo.h>//需要安装ESP32Servo库
const int servoPin = 18;//控制舵机引脚
Servo servo;
void setup() {
servo.attach(servoPin, 500, 2500);//设置舵机关联引脚,并设置最大值和最小值
}
int pos = 0;//定义一个变量来存储舵机转动角度
void loop() {
for (pos = 0; pos < 180; pos += 1) {//让舵机从0度转动到180度
servo.write(pos);
delay(15);
}
for (pos = 180; pos > 0; pos -= 1) {//让舵机从180度转动到0度
servo.write(pos);
delay(15);
}
}
/*
#define SERVO_PIN 18 //控制舵机的PWM引脚
#define SERVO_CHN 0 //PWM通道
#define SERVO_FRQ 50 //PWM频率
#define SERVO_BIT 12 //PWM占空比控制精度
void servo_set_pin(int pin); //舵机引脚初始化函数
void servo_set_angle(int angle); //舵机角度设置函数
void setup() {
servo_set_pin(SERVO_PIN);
}
void loop() {
for (int i = 0; i < 180; i++) { //让舵机从0度转动到180度
servo_set_angle(i);
delay(10);
}
for (int i = 180; i > 0; i--) { //让舵机从180度转动到0度
servo_set_angle(i);
delay(10);
}
}
//舵机引脚初始化函数
void servo_set_pin(int pin) {
ledcSetup(SERVO_CHN, SERVO_FRQ, SERVO_BIT);
ledcAttachPin(pin, SERVO_CHN);
}
//舵机角度设置函数
void servo_set_angle(int angle) {
if (angle > 180 || angle < 0)
return;
long pwm_value = map(angle, 0, 180, 103, 512);
ledcWrite(SERVO_CHN, pwm_value);
}
*/