Servo Motor Control with Potentiometer

Control the position of a RC (hobby) servo motor with your Arduino and a potentiometer.

Hardware Required 

Arduino or Genuino Board
Servo Motor
10k ohm potentiometer
hook-up wires
mini breadboard

Recommended site to buy the required hardware:


Servo motors have three wires: power, ground, and signal. The power wire is typically red, and should be connected to the 5V pin on the Arduino or Genuino board. The ground wire is typically black or brown and should be connected to a ground pin on the board. The signal pin is typically yellow or orange and should be connected to pin 9 on the board.

The potentiometer should be wired so that its two outer pins are connected to power (+5V) and ground, and its middle pin is connected to analog input 0 on the board.


*** I recommend! You not connect directly the servo motor to arduino. I suggest you use external power to the servo.

SG90 Mini RC servo motors can be used. This can damage the Arduino MG996 instant high torque.

MG996 Stall Torque: 9.4kg / cm (4.8V) - 11 kg / cm (6.0V) and Operating voltage: 4.8 ~ 6.6v.

I wanted to tell in this tutorial; connections, code generation and motor control. So I did not give more details about the engine.

Get the Code:
#include <Servo.h>  // add servo library

Servo myservo;  // create servo object to control a servo

int potpin = 0;  // analog pin used to connect the potentiometer
int val;    // variable to read the value from the analog pin

void setup() {
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object

void loop() {
  val = analogRead(potpin);            // reads the value of the potentiometer (value between 0 and 1023)
  val = map(val, 0, 1023, 0, 180);     // scale it to use it with the servo (value between 0 and 180)
  myservo.write(val);                  // sets the servo position according to the scaled value
  delay(15);                           // waits for the servo to get there