GitHub - RoboticsBrno/ServoESP32: ⚙️ Generate RC servo signal on a selected pins with ESP32 device and Arduino framework. (original) (raw)
ServoESP32 
Generate RC servo signal on a selected pins with ESP32 device and Arduino framework.
Base on servo library for stm32f4 (d2a4a47).
Interface
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
IMPORTANT INFO
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
PlatformIO
This library is also available at the PlatformIO as ServoESP32.
Arduino IDE
This library is available in Arduino IDE Library Manager as ServoESP32
.
Known issues
Problem with build in Arduino IDE 1.8.10
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.