diff options
Diffstat (limited to 'libraries/ESP32Servo/README.md')
| -rw-r--r-- | libraries/ESP32Servo/README.md | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/libraries/ESP32Servo/README.md b/libraries/ESP32Servo/README.md new file mode 100644 index 0000000..fdce8ba --- /dev/null +++ b/libraries/ESP32Servo/README.md @@ -0,0 +1,94 @@ +# Servo Library for ESP32 + +Specifically for the V3.0.0 of Arduino ESP32. All ADC's have been updated to work correctly with the new release + +https://github.com/espressif/arduino-esp32/releases + +This library attempts to faithfully replicate the semantics of the +Arduino Servo library (see http://www.arduino.cc/en/Reference/Servo) +for the ESP32, with two (optional) additions. The two new functions +expose the ability of the ESP32 PWM timers to vary timer width. +# Documentation by Doxygen + +[ESP32Servo Doxygen](https://madhephaestus.github.io/ESP32Servo/annotated.html) + +## License + +Copyright (c) 2017 John K. Bennett. All right reserved. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +## Library Description: +``` + Servo - Class for manipulating servo motors connected to ESP32 pins. + + int attach(pin ) - Attaches the given GPIO pin to the next free channel + (channels that have previously been detached are used first), + returns channel number or 0 if failure. All pin numbers are allowed, + but only pins 2,4,12-19,21-23,25-27,32-33 are recommended. + + int attach(pin, min, max ) - Attaches to a pin setting min and max + values in microseconds; enforced minimum min is 500, enforced max + is 2500. Other semantics are the same as attach(). + + void write () - Sets the servo angle in degrees; a value below 500 is + treated as a value in degrees (0 to 180). These limit are enforced, + i.e., values are constrained as follows: + Value Becomes + ----- ------- + < 0 0 + 0 - 180 value (treated as degrees) + 181 - 499 180 + 500 - (min-1) min + min-max (from attach or default) value (treated as microseconds) + (max+1) - 2500 max + + void writeMicroseconds() - Sets the servo pulse width in microseconds. + min and max are enforced (see above). + + int read() - Gets the last written servo pulse width as an angle between 0 and 180. + + int readMicroseconds() - Gets the last written servo pulse width in microseconds. + + bool attached() - Returns true if this servo instance is attached to a pin. + + void detach() - Stops an the attached servo, frees the attached pin, and frees + its channel for reuse. +``` + +### **New ESP32-specific functions** + +``` + setTimerWidth(value) - Sets the PWM timer width (must be 16-20) (ESP32 ONLY); + as a side effect, the pulse width is recomputed. + + int readTimerWidth() - Gets the PWM timer width (ESP32 ONLY) +``` + +### Useful Defaults: + +default min pulse width for attach(): 544us + +default max pulse width for attach(): 2400us + +default timer width 16 (if timer width is not set) + +default pulse width 1500us (servos are initialized with this value) + +MINIMUM pulse with: 500us + +MAXIMUM pulse with: 2500us + +MAXIMUM number of servos: 16 (this is the number of PWM channels in the ESP32) |
