ESP32_New_ISR_Servo Library
Posted: Mon Aug 16, 2021 1:03 am
ESP32_New_ISR_Servo Library
How To Install Using Arduino Library Manager
This library enables you to use 1 Hardware Timer on an ESP32, ESP32_S2, ESP32_C3-based board to control up to 16 independent servo motors.
Currently Supported Boards
- ESP32 boards, such as ESP32_DEV, etc.
- ESP32S2-based boards, such as ESP32S2_DEV, ESP32_S2 Saola, etc.
- ESP32C3-based boards, such as ESP32C3_DEV, etc.
Initial Release v1.0.0
1. Basic 16 ISR-based servo controllers using 1 hardware timer for ESP32, ESP32_S2, ESP32_C3-based board.
2. Tested with Tested with ESP32 core v2.0.0-rc1+
Examples:
1. ESP32_New_ISR_MultiServos
2. ESP32_New_MultipleRandomServos
3. ESP32_New_MultipleServos
4. ISR_MultiServos
5. MultipleRandomServos
6. MultipleServos
Example ESP32_New_ISR_MultiServos on ESP32S2_DEV
The following is the sample terminal output when running example ESP32_New_ISR_MultiServos to demonstrate how to control multiple Servos using 1 hardware timer.
How To Install Using Arduino Library Manager
This library enables you to use 1 Hardware Timer on an ESP32, ESP32_S2, ESP32_C3-based board to control up to 16 independent servo motors.
Currently Supported Boards
- ESP32 boards, such as ESP32_DEV, etc.
- ESP32S2-based boards, such as ESP32S2_DEV, ESP32_S2 Saola, etc.
- ESP32C3-based boards, such as ESP32C3_DEV, etc.
Initial Release v1.0.0
1. Basic 16 ISR-based servo controllers using 1 hardware timer for ESP32, ESP32_S2, ESP32_C3-based board.
2. Tested with Tested with ESP32 core v2.0.0-rc1+
Examples:
1. ESP32_New_ISR_MultiServos
2. ESP32_New_MultipleRandomServos
3. ESP32_New_MultipleServos
4. ISR_MultiServos
5. MultipleRandomServos
6. MultipleServos
Example ESP32_New_ISR_MultiServos on ESP32S2_DEV
The following is the sample terminal output when running example ESP32_New_ISR_MultiServos to demonstrate how to control multiple Servos using 1 hardware timer.
Code: Select all
Starting ESP32_New_ISR_MultiServos on ESP32S2_DEV
ESP32_New_ISR_Servo v1.0.0
[ISR_SERVO] ESP32_S2_TimerInterrupt: _timerNo = 3 , _fre = 1000000
[ISR_SERVO] TIMER_BASE_CLK = 80000000 , TIMER_DIVIDER = 80
[ISR_SERVO] _timerIndex = 1 , _timerGroup = 1
[ISR_SERVO] _count = 0 - 10
[ISR_SERVO] timer_set_alarm_value = 10.00
[ISR_SERVO] Starting ITimer OK
Setup Servo1 OK
Setup Servo2 OK
Servo1 pos = 0, Servo2 pos = 180
Servo1 pos = 30, Servo2 pos = 150
Servo1 pos = 60, Servo2 pos = 120
Servo1 pos = 90, Servo2 pos = 90
Servo1 pos = 120, Servo2 pos = 60
Servo1 pos = 150, Servo2 pos = 30
Servo1 pos = 180, Servo2 pos = 0