⚙️ Generate RC servo signal on a selected pins with ESP32 device and Arduino framework.
Language:
C++
Created:
06.07.2017
Updated:
20.10.2023
Stars:
138
Visit on GitHub
Generate RC servo signal on a selected pins with ESP32 device and Arduino framework.
Base on servo library for stm32f4 (d2a4a47).
The interface is similar to Arduino/Servo: https://www.arduino.cc/en/Reference/Servo
But the function attach()
is different:
bool attach(
int pin,
int channel = CHANNEL_NOT_ATTACHED,
int minAngle = DEFAULT_MIN_ANGLE,
int maxAngle = DEFAULT_MAX_ANGLE,
int minPulseWidthUs = DEFAULT_MIN_PULSE_WIDTH_US,
int maxPulseWidthUs = DEFAULT_MAX_PULSE_WIDTH_US,
int frequency = DEFAULT_FREQUENCY
);
More information in source code documentation.
Example: 04-SimpleServoAngles
There are also a ServoFloat and ServoDouble variant available. Use one of these when working in radians.
Example: : 05-SimpleServoRadians
According testings, the frequency for ESP32 S2/S3/C3 has to be set at least to 200 Hz. Here is an example, how to set just frequency:
Servo servo1;
const int servoPin = 4;
const int frequency = 200; // Hz
servo1.attach(
servoPin,
Servo::CHANNEL_NOT_ATTACHED,
Servo::DEFAULT_MIN_ANGLE,
Servo::DEFAULT_MAX_ANGLE,
Servo::DEFAULT_MIN_PULSE_WIDTH_US,
Servo::DEFAULT_MAX_PULSE_WIDTH_US,
frequency
);
For more information look at the PR25
This library is also available at the PlatformIO as ServoESP32.
This library is available in Arduino IDE Library Manager as ServoESP32
.
There was an issue with building this library in Arduino IDE 1.8.10. But this issue should be fixed in Arduino IDE 1.8.11.