Introduction: Control 1 Servo Motor Using 1 Potentiometer (Humanoid Robot EP 01)

About: Hi, I'm Eunchan Park from S.Korea. I have 3 missions Making Happy Things, Sharing How To Make Happy Things, Copying Happy Things Maker for the world's Happiness In order to pursue my mission, I have a big goal…

This is the first step for making a motion capturing robot. The robot’s name is Choom, which means “dancing” in Korean.

Step 1: Goal

If you follow these Instructables, you will be able to control one motor by using one sensor. If you follow all these tutorials, you will be able to make a motion capturing robot set.

Step 2: Motion Capturing!

Have you seen this robot? I build and shared all of them. This is a kind of motion capturing. These robots are a simple example.

Step 3: Motion Capturing for a Humanoid Robot

I thought that it could be nice if I make a humanoid robot in this way.

The right picture is a humanoid that I build 4 years ago. You can download all of the design files as well.

Anyway, in order to control this kind of robot, you need to make a motion set that takes a lot of time and energy like a stop motion animation.

If it is controlled by using motion capturing, it will be easy and fun to play with it.

Step 4: Final Goal for the Project

The final goal for this project is to make two kinds of robots.

One robot will be a leader robot that has sensors on the body. The robot doesn’t have any motors.

The only role for the mater robot is reading all the angles of its joints, and sending the values to the follower robots.

Other robots will be follower robots that have motors. They are going to move based on the leader robot

Step 5: Following Steps

To make robots, we need to understand the overall system.

  1. We will test only one servo by using one potentiometer, which will be easy. In the stage, we don’t need any other board but the Arduino.
  2. use 8 sensors for 8 motors with some extra boards.
  3. send its data through wireless communication.
  4. Use 20 motors and 20 potentiometers for the humanoid robot.

If you are worried about the source code, circuit, or 3d files, don’t worry. I will share everything.

Step 6: Part List

These parts are the parts that we will use. It can be changed to some extent.

Step 7: Overall Principal of This Episode

This is the basic overall principal in this episode. How can we get an angle from a joint of the body? A straightforward way is to put a potentiometer on the joint. As the joint rotates, the potentiometer rotates as well.

The Arduino reads the analog value of the potentiometer and sends the signal to the servo motor.

Step 8: Schematic

This schematic shows how to connect with each component. The most essential thing in the schematic is the direction. The board can be damaged if you put the cable in the wrong direction.

Step 9: Making the Circuit

I used the Dupont cables. I slightly cut the end of the terminal so that it could be tight. Plug the cables like this video, and glue it

Step 10: Code

Here is the source code we will upload

  • copy the source code and paste your Arduino IDE
  • upload the code
  • include Servo.h which is a library
  • make a servo instance,
  • attache it pin number 9.
  • read Analog 0 value
  • map the range from 10 bit analog value to 180 degree
  • write the pwm value to the servo.

Step 11: Test (1)

It seems good, but it needs calibration. The potentiometer has a wider range than the servo.

Step 12: Code Modification (Angle Calibration)

To fix this problem, I added some code for check the analog value

Step 13: Getting Values From the Arduino

Now that I can read the analog value, I will check the value when the potentiometer points 180 degrees. The value is around 843; on the other hand, 0 degree of the potentiometer is about 113.

Step 14: Final Code

Code URL:

I put the number on the source code line 13.

It means the limit value of the potentiometer is from 113 to 842.

And map the range of the analog value to angle, which is from 0 to 180.

For example, when the potentiometer value is 113, the angle is 0 degree.

Step 15: Final Test

I uploaded the code and tested it. It looks good.

Now that we knew how to handle one joint, we can make this up to 8 joints and 8 motors by using Arduino Nano.

Next tutorial, we will control more than 8 motors with extra board which will be awesome.

Step 16: Video Instruction and Part List

Make it Move Contest

Participated in the
Make it Move Contest