Arduino Self Balancing Robot




Introduction: Arduino Self Balancing Robot

About: Mechanical engineer, Entrepreneur, Maker, robotic systems expert and founder of Robimek and RobiBot

In this project I will describe the construction of robots standing in equilibrium with Arduino.We explained in our previous version of the android controlled project. In this project we will move to our control. Let's go let's get to our building project.

Step 1: Materials:

  • Arduino Uno or Mega
  • L298 Motor Driver Card
  • 3 Piece potentiometer
  • You can cut plexiglass plate for mechanical or rigid plastic containers.
  • 4 pieces of screw rods in length of about 20 cm
  • 24-Piece Nut
  • 2 pieces 6V DC motors at 250 rpm (from which together with the wheels)
  • Lipo battery

Step 2: The Mechanics:

20 × 8 cm three plexiglass plate final.You can cut in different sizes. Cut diameter of the screw rod through the hole until after the corner of each sheet's open. Each plate so that the rod between two nuts and bolts Let's mounting screws. Let us consider each other to be equal to the gap between the plates. The engine then our way to the bottom right and left sides of the plate will be located right in the center of iron wire tied to my silikonlayal. Such mechanical parts.

Step 3: Electronic Section:

We use the engine running in a synchronous motor drive with its own library.In this way, also it happens to be that minimize errors in the work of the engine with full data system.

We’re putting the plus side of the battery to the motor LiPo 12V power input on the drive. We’re putting the minus end of the GND input.

In addition to the circuit attribute to 3 units 0.1 analog potentiometer year and 2 pins.Here the task of potentiometer kPa, manually adjusting the values of kd and will allow us to find the optimal balance point of the robot.Mpu6050 gyro sensor mounted on the bottom plate horizontally let.

Step 4: Library:

Libraries let’s get out of here

Step 5: Arduino Code:

Step 6: Video:

We complete install the software and necessary connections.Let loose in an upright position after running our robot.If you have trouble in stopping the robot’s balance with the potentiometer ‘kPa’, ‘on’ and ‘kd’ We’re changing value

More information :



  • Metalworking Contest

    Metalworking Contest
  • Fix It! Contest

    Fix It! Contest
  • Water Contest

    Water Contest

16 Discussions

ijust upload the code in my arduino uno and i got erro of compiling , it said that is missing the I2Cdev.h library. Do you have with you?

1 reply

Tell me one thing sir
Why you connect potentiometer?
What is the value of 3 potentiometers? ?

Getting erro while compiling with ardiuno uno

AnveshA1 this code

LinuxasLt this connect diagram on project or look at this orginal project

so how do you start it? i connected and uploaded

can you please send me the code to

double originalSetpoint = 174.29;
in the code is it possible to tell me how did you got this value ?

thanks for your quick answer.
I have another problem sketch gives me an error on line 143

SelfBalancing_MPU.ino.ino.ino: In function 'void loop ()':
SelfBalancing_MPU.ino.ino: 143: error: 'currentMillis' was not declared in this scope
SelfBalancing_MPU.ino.ino: 146: error: 'currentMillis' was not declared in this scope
'currentMillis' was not declared in this scope
Can you help me. Thank you.