
Driving a Servo Motor — SIK Circuit 8
Control a servo motor to sweep through positions. Learn about the Servo library, include directives, and how to precisely control motor position from 0 to 180 degrees.
Leiðbeiningar
Parts & Introduction
Parts & Introduction
A servo motor can be precisely positioned between 0 and 180 degrees. Unlike a regular motor that just spins, servos hold their position — making them perfect for robotics, pan/tilt mechanisms, and control surfaces. This experiment introduces the Servo library.
Parts Needed
- 1x Arduino Uno + USB cable
- 1x Breadboard
- 1x Servo Motor (with 3-pin header)
- 8x Jumper Wires
The servo has three wires: Red (power), Black (ground), White (signal).
Hardware Hookup
Hardware Hookup
Wiring Instructions
- Connect 3 jumper wires to the servo's female 3-pin header for breadboarding.
- Connect the Red wire to 5V.
- Connect the Black wire to GND.
- Connect the White wire (signal) to Digital Pin 9.
Power Note: Servos draw significant current. If the servo twitches and the Arduino resets, use a wall adapter instead of USB power, or power the servo from a separate 5V supply.
Arduino Code
Arduino Code
Open the Arduino IDE and upload the following sketch to your Arduino board.
/*
SparkFun Inventor's Kit
Example sketch 08 — SINGLE SERVO
Sweep a servo back and forth through its full range of motion.
Hardware connections:
Servo RED wire (power) to 5V
Servo WHITE wire (signal) to digital pin 9
Servo BLACK wire (ground) to GND
This code is completely free for any use.
*/
#include <Servo.h>
Servo servo1;
void setup()
{
servo1.attach(9);
}
void loop()
{
int position;
// Quick moves to specific positions
servo1.write(90); // Go to 90 degrees
delay(1000);
servo1.write(180); // Go to 180 degrees
delay(1000);
servo1.write(0); // Go to 0 degrees
delay(1000);
// Slow sweep to 180 degrees (2-degree steps)
for(position = 0; position < 180; position += 2)
{
servo1.write(position);
delay(20);
}
// Slow sweep back to 0 degrees (1-degree steps)
for(position = 180; position >= 0; position -= 1)
{
servo1.write(position);
delay(20);
}
}Test & Experiment
Test & Experiment
What You Should See
The servo quickly moves to 90°, 180°, and 0° (1 second each), then slowly sweeps from 0° to 180° and back.
Troubleshooting
- Servo not moving: Even with colored wires, it's easy to plug a servo in backwards. Check connections.
- Twitching/resetting: The servo draws too much power from USB. Use a wall adapter or separate power supply.
Experiments to Try
- Add a potentiometer (from Circuit 2) to control servo position with a knob.
- Change the step size and delay to experiment with speed and smoothness.
- Build a simple pan/tilt mechanism with two servos.
Efni
- •SparkFun Inventor's Kit - V3.2 - 1 kitNOK 999.20
- •Arduino Uno R3 - 1 pieceStaðgengill
- •Breadboard - 1 pieceStaðgengill
- •Servo Motor - 1 pieceStaðgengill
- •Jumper Wires - 8 piecessNOK 39.20
Nauðsynleg verkfæri
- Computer with Arduino IDE
CC0 opinbert ríki
Þessi teikning er gefin út undir CC0. Þér er frjálst að afrita, breyta, dreifa og nota þetta verk í hvaða tilgangi sem er, án þess að biðja um leyfi.
Studdu smiðinn með því að kaupa vörur í gegnum teikningu hans þar sem hann fær þóknun smiða sem seljendur ákvarða, eða búðu til nýja endurskoðun á þessari teikningu og tengdu hana sem tengingu í þinni eigin teikningu til að deila tekjum.