Adafruit Library
ws_servo.h
Go to the documentation of this file.
1 
17 #ifndef WS_SERVO
18 #define WS_SERVO
19 
20 #include "Wippersnapper.h"
21 
22 #if defined(ARDUINO_ARCH_ESP32)
24 #else
25 #include <Servo.h>
26 #endif
27 
28 #ifdef ARDUINO_ARCH_RP2040
29 #define MAX_SERVO_NUM \
30  8
31 #else
33 #define MAX_SERVO_NUM 16
34 #endif
35 
36 #define MIN_SERVO_PULSE_WIDTH 500
37 #define ERR_SERVO_ATTACH 255
38 
39 #if defined(ARDUINO_ARCH_ESP32)
40 class ws_ledc_servo;
43  ws_ledc_servo *servoObj = nullptr;
44  uint8_t pin = 0;
45 };
46 #else
47 
48 struct servoComponent {
49  Servo *servoObj = nullptr;
50  uint8_t pin = 0;
51 };
52 #endif
53 
54 class Wippersnapper;
55 
56 /**************************************************************************/
60 /**************************************************************************/
61 class ws_servo {
62 public:
63  ws_servo(){};
64  ~ws_servo();
65  bool servo_attach(int pin, int minPulseWidth, int maxPulseWidth, int freq);
66  void servo_detach(int pin);
67  void servo_write(int pin, int value);
68  servoComponent *getServoComponent(uint8_t pin);
69 
70 private:
71  servoComponent _servos[MAX_SERVO_NUM];
72 };
74 extern Wippersnapper WS;
75 
76 #endif // WS_SERVO
Wippersnapper WS
Definition: Wippersnapper.cpp:36
High-level driver for servos for ESP32/ESP32-Sx/ESP32-Cx. This driver implements a subset of the func...
Definition: ws_ledc_servo.h:57
Class that provides storage and functions for the Adafruit IO Wippersnapper interface.
Definition: Wippersnapper.h:283
Interface for WipperSnapper servo control.
Definition: ws_servo.h:61
#define MAX_SERVO_NUM
Maximum number of servo objects.
Definition: ws_servo.h:33
Definition: ws_servo.h:42
ws_ledc_servo * servoObj
Servo object.
Definition: ws_servo.h:43
uint8_t pin
Servo&#39;s pin number.
Definition: ws_servo.h:44