Servo motor is widely used in robotics field and various RC hobbyist application such as robotics arm, radio controlled cars or plane etc. From the keyword, “Servo” means a device used to provide control to a desired operation through the uses of feedback. In other words, a servo motor is a motor which is closed loop controlled and what we need to do is to “tell” the servo motor to move to a position we want. Here, we will briefly explain how a RC servo motor works and illustrate a simple project to control a RC servo motor by using Arduino UNO.
How to control a RC servo motor?
A RC servo motor has three wires, which are Power, Ground and signal line. To move a servo motor, the thing come first of cause is the power supply (For most of the mini servo motor, the power supply is 4.8V - 6V). After supplying the power, the servo motor is ready to move. Before moving a servo motor, lets answer a couple of common asked questions:
- How many rotation/ degrees can a servo motor rotate?
- How to move the motor?
A RC servo motor cannot rotate more than ONE rotation. In fact, it can only rotate in a range of 0 to 180 degrees (About half of a rotation only). It is caused by the limit inside the servo motor. Please take note RC servo motor is designed to trigger some mechanism in RC helicopter or remote controlled car. In other words, it is not designed to rotate continuously without limits. Hence, if you are looking for small motors to trigger some small simple mechanism like door lock or switches, RC servo motor is definitely your choice. For the second question, in order to move a servo motor to a desired position, we used Pulse Width Modulation (PWM) pulses to the signal line. PWM pulse is a voltage pulse generated within a fixed period, says 20 milliseconds in our case. Inside the fixed period, we can set how long we want the signal to be “ON” and the remaining time within the period the signal shall be “OFF”. Most of the servo motor is operating in 20 milliseconds. Well, sometimes the operating period can be varies depending on the manufacturer. Anyway, we use the most common value, 20 milliseconds to move our servo motor, and it did works just fine. J
As mentioned earlier, the servo motor can only move in a range of 0 to 180 degrees. So, we need to understand what PWM pulses we need to send to the servo motor to control it to move to the position we want. The Table 1 summarizes the position of the servo motor and the pulses we need to send to the signal line.
Table 1 : Example of PWM pulses versus servo motor position
How RC servo motor works?