Getting Started With Arduino - Servo Motor
Intro: Getting Started With Arduino - Servo Motor
In this tutorial we are going to learn how to control a servo motor. This is a really useful device that allows us to move lots of different things in the real world using an Arduino.
We are going to build a simple example project that uses a dial potentiometer (a turning knob) to control the position of a servo motor.
STEP 1: Wire Up Your Arduino
The first job is to connect three wires to your arduino:
- A blue wire into analog pin A0
- A black wire into one of the GND (ground) pins
- A red wire into the 5v pin
STEP 2: Connect Your Potentiometer
Next we connect the wires to a dial potentiometer (here we use a 10k potentiometer, but most other types will also work). Connect the black wire to the first pin, the blue to the second and the red to the third (as show in the photo).
STEP 3: Connect Your Servo Motor
The next job is to connect your servo motor. There are two common types of servo:
- White/Red/Black wired servo
- Orange/Red/Brown wired servo
If your servo has White/Red/Black wires, then connect it as follows (see photo above):
- White wire connects to digital pin 11 on the arduino
- Black wire connects to potentiometer GND pin
- Red wire connects to potentiometer 5v pin
If your servo has Orange/Red/Brown wires, then connect it as follows:
- Orange wire connects to digital pin 11 on the arduino
- Brown wire connects to potentiometer GND pin
- Red wire connects to potentiometer 5v pin
STEP 4: Write Your Code
The next step is to write some code to control the servo motor.
Download the ServoPot.ino file and open it up in the Arduino application.
You can tinker with it if you like, or just use it as it is.
STEP 5: Enjoy
If everything worked, you should be able to upload your code onto the arduino and control the position of the servo motor using the potentiometer.
If you enjoyed this instructable, check out our other tutorials
If you love this kind of stuff, check out our degree
15 Comments
sunlitho 7 years ago
Didn't work. Just an error.
Digital Art and Technology 7 years ago
probably something was wrong
PaulSAntony 7 years ago
can i use 1k pot
Digital Art and Technology 7 years ago
sure, should work fine
Lawrence.schmitz 7 years ago
Great, simple to follow instructible, thank you.
Leoncio Soler 8 years ago
Everything worked just fine. Didn't know there was a servo library.
Belfastman1958 8 years ago
When I downloaded the sketch code it wouldn't compile, saying that there was a semicolon - " ; " - missing in line 11.
I typed this in and the sketch compiled ok.
Digital Art and Technology 8 years ago
Thanks for reporting the problem - have replaced the file with a fixed version
PingC1 8 years ago
https://www.youtube.com/watch?v=6VHdXKLiXk8..
fzumrk 8 years ago
I think you meant to say "servo" and not "LEDs" in step 4.
Digital Art and Technology 8 years ago
oops - yes, you are right. have fixed it
thanks !
ibenkos 8 years ago
braytonlarson 8 years ago
Gelfling6 8 years ago
One side note.. Despite what the example included with the Arduino IDE says, you can actually control more than 8 servos.. Digital outputs 2 through 13, and assigning Outputs 19 through 23 (Analogue pins 0 to 5 can be reassigned as Digital outputs through these numbers) are ALL capable of servo.Write(). BUT!!!!!!!... Recommend using an external power source for them. (Never drive more than 3 servos off the on-board +5V regulator, or it will 'brown-out' (overload, and shut-down), causing the ATMega to reset).. I always use a 7805 regulator external from the Arduino, but can still be in parallel with the voltage going into the vIN plug. (but, not drawn from the vIN pin! I already had to re-bridge the trace on a Duemilinova that got shorted by accident, and burned the trace.)
Gelfling6 8 years ago
minor correction, 19 through 24.. (Sorry, skipped the A5)