#include <Servo.h>
Public Member Functions | |
Servo () | |
Construct a new Servo instance. More... | |
~Servo () | |
Destructor a Servo instance. More... | |
bool | attach (uint8_t pin, uint16_t min_pulse_width=SERVO_MIN_PULSE_WIDTH, uint16_t max_pulse_width=SERVO_MAX_PULSE_WIDTH, uint16_t min_angle=SERVO_MIN_ANGLE, uint16_t max_angle=SERVO_MAX_ANGLE) |
Associate this instance with a servomotor whose input is connected to pin. More... | |
bool | detach () |
Stop driving the servo pulse train. More... | |
void | write (uint16_t angle) |
Set the servomotor target angle. More... | |
void | writeMicroseconds (uint16_t pulse_width) |
Set the pulse width, in microseconds. More... | |
uint16_t | read () const |
bool | attached () const |
Check if this instance is attached to a servo. More... | |
uint8_t | attachedPin () const |
Get the pin this instance is attached to. More... | |
Class for interfacing with RC servomotors.
Servo::Servo | ( | ) |
Construct a new Servo instance.
The new instance will not be attached to any pin.
Servo::~Servo | ( | ) |
Destructor a Servo instance.
The instance will be detached if it is attached to any pin.
bool Servo::attach | ( | uint8_t | pin, |
uint16_t | min_pulse_width = SERVO_MIN_PULSE_WIDTH , |
||
uint16_t | max_pulse_width = SERVO_MAX_PULSE_WIDTH , |
||
uint16_t | min_angle = SERVO_MIN_ANGLE , |
||
uint16_t | max_angle = SERVO_MAX_ANGLE |
||
) |
Associate this instance with a servomotor whose input is connected to pin.
If this instance is already attached to a pin, it will be detached before being attached to the new pin. This function doesn't detach any interrupt attached with the pin's timer channel.
pin | Pin connected to the servo pulse wave input. This pin must be capable of PWM output. |
min_pulse_width | Minimum pulse width to write to pin, in microseconds. This will be associated with a min_angle degree angle. Defaults to SERVO_DEFAULT_MIN_PW = 544. |
max_pulse_width | Maximum pulse width to write to pin, in microseconds. This will be associated with a max_angle degree angle. Defaults to SERVO_DEFAULT_MAX_PW = 2400. |
min_angle | Target angle (in degrees) associated with min_pulse_width. Defaults to SERVO_DEFAULT_MIN_ANGLE = 0. |
max_angle | Target angle (in degrees) associated with max_pulse_width. Defaults to SERVO_DEFAULT_MAX_ANGLE = 180. |
@sideeffect May set pinMode(pin, PWM).
bool Servo::detach | ( | ) |
Stop driving the servo pulse train.
If not currently attached to a motor, this function has no effect.
void Servo::write | ( | uint16_t | angle | ) |
Set the servomotor target angle.
angle | Target angle, in degrees. If the target angle is outside the range specified at attach() time, it will be clamped to lie in that range. |
void Servo::writeMicroseconds | ( | uint16_t | pulse_width | ) |
Set the pulse width, in microseconds.
pulse_width | Pulse width to send to the servomotor, in microseconds. If outside of the range specified at attach() time, it is clamped to lie in that range. |
uint16_t Servo::read | ( | ) | const |
Get the servomotor's target angle, in degrees. This will lie inside the range specified at attach() time.
|
inline |
Check if this instance is attached to a servo.
|
inline |
Get the pin this instance is attached to.