66 lines
1.9 KiB
C++
66 lines
1.9 KiB
C++
#ifndef _SEESAW_SERVO_H
|
|
#define _SEESAW_SERVO_H
|
|
|
|
#include "Adafruit_seesaw.h"
|
|
|
|
/**************************************************************************/
|
|
/*!
|
|
@brief Class that stores state and functions for seesaw servo interface
|
|
*/
|
|
/**************************************************************************/
|
|
class seesaw_Servo {
|
|
|
|
public:
|
|
/**************************************************************************/
|
|
/*!
|
|
@brief class constructor
|
|
@param ss the seesaw object to use
|
|
*/
|
|
/**************************************************************************/
|
|
seesaw_Servo(Adafruit_seesaw *ss) {
|
|
_ss = ss;
|
|
_attached = false;
|
|
}
|
|
|
|
~seesaw_Servo() {}
|
|
bool begin(uint8_t addr = SEESAW_ADDRESS, int8_t flow = -1);
|
|
|
|
uint8_t attach(int pin);
|
|
uint8_t attach(int pin, int min, int max);
|
|
|
|
/**************************************************************************/
|
|
/*!
|
|
@brief set attached to false
|
|
*/
|
|
/**************************************************************************/
|
|
void detach() { _attached = false; }
|
|
void write(int value);
|
|
void writeMicroseconds(int value);
|
|
int read();
|
|
|
|
/**************************************************************************/
|
|
/*!
|
|
@brief get current value in microseconds
|
|
@returns current pulse width in microseconds for this servo
|
|
*/
|
|
/**************************************************************************/
|
|
int readMicroseconds() { return _sval / 3.2768; }
|
|
|
|
/**************************************************************************/
|
|
/*!
|
|
@brief check if the servo is attached yet
|
|
@returns true if this servo is attached, otherwise false
|
|
*/
|
|
/**************************************************************************/
|
|
bool attached() { return _attached; }
|
|
|
|
private:
|
|
Adafruit_seesaw *_ss;
|
|
bool _attached;
|
|
uint16_t _sval;
|
|
uint8_t _pin;
|
|
uint16_t min;
|
|
uint16_t max;
|
|
};
|
|
|
|
#endif |