arduino

Servo

Introduction#

A Servo is a an enclosed system containing a motor and some supporting circuitry. The shaft of a servo can be rotated to a fixed angle within an arc using a control signal. If the control signal is maintained, then the servo will maintain its angle. Servos can easily be controlled with the Arduino Servo.h library.

Syntax#

  • #include <Servo.h> // Include the Servo library
  • Servo.attach(pin) // Attach to the servo on pin. Returns a Servo object
  • Servo.write(degrees) // Degrees to move to (0 - 180)
  • Servo.read() // Gets the current rotation of the servo

Moving the servo back and forth

#include <Servo.h>

Servo srv;

void setup() {
  srv.attach(9); // Attach to the servo on pin 9  

}

To use a servo, you need to call attach() function first. It starts generating a PWM signal controlling a servo on a specified pin. On boards other than Arduino Mega, use of Servo library disables analogWrite() (PWM) functionality on pins 9 and 10, whether or not there is a Servo on those pins.

void loop() {
  Servo.write(90); // Move the servo to 90 degrees
  delay(1000); // Wait for it to move to it's new position
  Servo.write(0); // Move the servo to 0 degrees
  delay(1000); // Wait for it to move to it's new position
}

Note that you are not guaranteed that the servo reached the desired position, nor you can check it from the program.


This modified text is an extract of the original Stack Overflow Documentation created by the contributors and released under CC BY-SA 3.0 This website is not affiliated with Stack Overflow