Contents List
- Introduction.
- What Is a Servo Motor?
- How a Servo Motor Works?
- Types of Servo Motors.
- Servo Motor Specifications.
- Servo Motor Wires and Connections.
- Connecting a Servo Motor to Arduino.
- Servo Motor Control Signals and PWM.
- Programming a Servo Motor with Arduino.
- Controlling a Servo with a Potentiometer.
- Controlling Multiple Servo Motors.
- Servo Motor Power Supply and Current Requirements.
- Common Servo Motor Applications and Projects.
- Troubleshooting and Safety Tips.
- Frequently Asked Questions.
- Conclusion.
Time reading is 20min.
1. Introduction
A Servo Motor is an actuator designed to move an output shaft to a commanded position or, in some models, rotate continuously at a controlled speed. Hobby servo motors are widely used in robot arms, steering mechanisms, pan-and-tilt camera mounts, model aircraft, and small automation projects.

Unlike a basic DC motor, which generally rotates as long as power is applied, a standard positional servo contains a motor, a gearbox, a position sensor, and control electronics. These components work together to move the output shaft toward a requested position and maintain it against moderate disturbances.
Connecting and programming a servo is relatively straightforward, but reliable operation requires more than connecting three wires. You must understand the servo’s supply voltage, current requirements, control signal, mechanical travel limits, and the capabilities of the microcontroller.
In this guide, you will learn how servo motors work, how to connect them to Arduino, how to control their position using code and a potentiometer, and how to operate multiple servos safely. Practical examples are included for beginners, hobbyists, and engineers.
2. What Is a Servo Motor?
A Servo Motor is part of a control system that moves an output toward a commanded position, speed, or torque, depending on the type of servo and its controller.
In hobby electronics, the term usually refers to a compact RC servo with three wires: power, ground, and signal. The servo receives a control pulse and uses its internal electronics to position the output shaft.

Main Components of a Hobby Servo
A typical positional servo contains the following components:
- DC motor: Produces the rotational motion.
- Gearbox: Reduces motor speed and increases the torque available at the output shaft.
- Position sensor: Often a potentiometer that measures the output shaft’s position.
- Control circuit: Compares the requested position with the measured position and drives the motor to reduce the difference.
- Output shaft and horn: Transfer motion to the connected mechanism.
- Housing and bearings: Support and protect the internal components.
The integration of these components makes a hobby servo convenient for projects that require controlled movement without designing a separate motor-feedback circuit.
Servo Motor vs. Standard DC Motor
A standard brushed DC motor typically needs an external driver to control its speed and direction. It does not inherently know its shaft position.
A positional hobby servo includes a feedback mechanism and control electronics, allowing it to move toward a requested angle with relatively little external circuitry.
For example, an Arduino can command a positional servo to move to approximately 90 degrees using a servo library. With a standard DC motor, reaching and maintaining that position would normally require additional position sensing and control logic.
One important distinction: not every servo controls position. Continuous-rotation servos use similar control signals to command rotation speed and direction rather than a specific shaft angle.
3. How a Servo Motor Works?
A typical positional servo operates using a closed-loop control system. It receives a command, measures its current position, and drives its internal motor until the measured position approaches the requested one.

The Position-Control Process
The basic process is:
- The controller sends a command representing the desired position.
- The servo’s internal circuit interprets the command.
- The position sensor measures the output shaft’s actual position.
- The control circuit compares the requested and measured positions.
- The motor turns through the gearbox to reduce the position error.
- The servo adjusts its motor drive as needed to hold the target position.
This process repeats while the servo receives control commands. If an external force moves the output away from its target, the servo may draw additional current as it attempts to return to the commanded position.
What Is Position Feedback?
Position feedback tells the control circuit where the output shaft is located. In many conventional hobby servos, a potentiometer is mechanically connected to the output gear.
As the shaft moves, the potentiometer’s electrical value changes. The control circuit uses this value to estimate the position and adjust motor operation.
More advanced servos may use different sensing methods or additional internal electronics.
What Happens When a Servo Reaches Its Target?
When the servo reaches its commanded position, the control circuit reduces the drive required to correct the remaining position error. If a load tries to move the shaft, the servo may apply more torque to resist that movement.
This holding action requires current, particularly when the load is substantial. A servo can therefore consume significant power even when it is not visibly moving.
If the mechanism physically prevents the servo from reaching its target, the servo may continue applying force, increasing current and heat. Avoid prolonged operation against mechanical stops.
4. Types of Servo Motors
Servo motors are available in different designs for different motion-control requirements. Choosing the correct type is essential because positional and continuous-rotation servos do not respond to commands in the same way.

Positional Servo
A positional servo moves its output shaft to a commanded angle within its permitted mechanical range.
Common examples include micro servos such as the SG90 and larger hobby servos used for robot arms and steering systems.
Many hobby positional servos offer approximately 180 degrees of travel, but the actual range varies by model. Some provide less travel, while specialized servos may offer a wider range.
Typical applications: Robot arms, steering, camera mounts, pan-and-tilt systems, and small mechanisms.
Continuous-Rotation Servo
A continuous-rotation servo is modified or designed to rotate continuously in either direction. Its control signal generally determines rotation direction and speed rather than absolute position.
For a common interface, a command near the neutral value stops rotation, while commands on either side of neutral request rotation in opposite directions. The exact neutral point and speed response depend on the model and may require calibration.
Typical applications: Small robot wheels, simple mobile robots, and rotating mechanisms.
Analog and Digital Hobby Servos
Analog and digital hobby servos both use internal control electronics, but their control circuits differ.
- Analog servos: Use a relatively simple control circuit to drive the motor.
- Digital servos: Use digital electronics to process the command and control the motor. Depending on the model, they may offer different response, holding behavior, or update capabilities.
A digital servo may draw substantial current during movement or while resisting a load. Digital operation does not automatically mean lower power consumption or compatibility with every supply voltage.
Industrial Servo Systems
Industrial servo systems are designed for demanding applications requiring controlled position, speed, or torque. They commonly use a servo motor with a dedicated drive and a feedback device such as an encoder or resolver.
These systems differ significantly from three-wire hobby servos in power levels, control interfaces, tuning, safety requirements, and feedback architecture.
For this article, the practical examples focus mainly on low-voltage hobby RC servos.
5. Servo Motor Specifications
Before selecting a servo, review its datasheet or product documentation. These specifications determine whether the servo can move the load and whether your power supply and controller are suitable.

| Specification | Meaning | Why it matters |
|---|---|---|
| Operating voltage | Permitted supply-voltage range | Prevents undervoltage or damage from overvoltage |
| Stall torque | Torque available when the servo shaft is prevented from rotating under specified conditions | Helps estimate whether the servo can move the load; prolonged stall can overheat it |
| Speed | Time required to move through a specified angle under stated conditions | Determines how quickly the mechanism can move |
| Operating angle | Available positional travel | Helps ensure the servo meets the mechanism’s range requirements |
| Stall current | Current drawn when the motor is stalled at a specified voltage and condition | Helps size the power supply and wiring |
| Gear material | For example, plastic or metal | Affects durability, weight, noise, and resistance to wear |
| Control pulse range | Pulse widths accepted by the servo | Determines how commands map to output positions |
| Dimensions and mass | Physical size and weight | Important for mounting and moving-load calculations |
Understanding Torque
Servo torque is commonly specified in kilogram-centimeters (kg·cm) or newton-meters (N·m). For example, a torque rating of 2 kg·cm means the servo can ideally exert approximately 2 kgf at a lever arm of 1 cm under the stated conditions.
This is a torque unit, not a direct statement that the servo can lift any 2 kg load. The actual required torque depends on the load’s weight, lever-arm length, orientation, friction, acceleration, and safety margin.
For a simple static load, the required torque can be estimated from:
\[ \tau = F \times r \]
where:
- \(\tau\) is torque.
- \(F\) is the force acting on the mechanism.
- \(r\) is the perpendicular distance from the shaft to the force’s line of action.
Use a suitable margin above the calculated requirement, and check the manufacturer’s torque and thermal limits.
Understanding Speed
Servo speed is often expressed as seconds per 60 degrees at a specified voltage. A rating of 0.12 s/60° means the servo takes approximately 0.12 seconds to travel 60 degrees under the manufacturer’s stated test conditions.
Actual movement time depends on the load, supply voltage, mechanical friction, and the servo’s control characteristics.
Why Voltage and Current Matter?
A servo must receive a voltage within its rated range. Its current consumption changes with load, movement, and holding force.
The power supply should be able to deliver the expected operating current and handle realistic peaks. Never choose a supply based only on the servo’s idle current; startup and loaded movement can require substantially more current.
6. Servo Motor Wires and Connections
Most hobby RC servos have three wires: power, ground, and signal. Wire colors are common conventions, but they are not guaranteed across every manufacturer. Check the servo’s datasheet or connector pinout before connecting it.

Understanding the Three Wires
| Wire function | Common wire color | Purpose |
|---|---|---|
| Power supply | Red | Supplies electrical power to the servo |
| Ground (GND) | Black or brown | Provides the power return and signal reference |
| Control signal | Yellow, orange, or white | Receives position or rotation commands |
The signal wire carries a low-current control signal. It does not normally supply the energy needed to move the servo; that energy comes from the power wires.
Basic Connection to Arduino
For a small servo, the basic signal connections are:
- Servo signal wire → Arduino digital pin 9.
- Servo ground wire → Arduino GND.
- Servo power wire → a suitable supply within the servo’s rated voltage range.
Although some beginner examples power a small servo from the Arduino’s 5 V pin, this is not suitable for every servo or load. If the servo draws more current than the board or USB source can safely provide, the Arduino may reset, the servo may twitch, or the power source may be overloaded.
For more reliable operation, use a separate regulated servo supply when needed. Connect the external supply’s ground to Arduino GND so the control signal has a common reference. Do not connect the external supply’s positive output to the Arduino’s 5 V pin unless the entire power arrangement is designed for that connection.
Connecting an External Servo Power Supply
When using an external supply, follow this general arrangement:
- Connect the supply’s positive output to the servo’s power wire.
- Connect the supply’s negative output to the servo’s ground wire.
- Connect Arduino GND to the supply’s negative output.
- Connect an Arduino digital output to the servo signal wire.
- Verify the voltage and polarity before switching on the circuit.
The supply voltage must remain within the servo’s rated range. Its current capacity should account for the servo’s expected load and current peaks.
The Arduino and servo do not always need to share the same positive supply rail, but their grounds generally need to be connected when the control signal is referenced to ground.
7. Connecting a Servo Motor to Arduino
The Arduino Servo library simplifies hobby servo control by generating the required control pulses. It allows you to command a position using a function rather than manually creating each pulse.

Components Required
For a basic experiment, you will need:
- Arduino Uno or a compatible board.
- One positional hobby servo.
- Jumper wires.
- USB cable for programming.
- A suitable servo power supply if the servo’s current requirements exceed what the Arduino supply can safely provide.
A small servo such as an SG90 is often used in beginner experiments, but verify the exact model’s voltage, current, and movement range.
Wiring Table
| Servo connection | Arduino or power connection |
|---|---|
| Signal | Digital pin 9 |
| Ground | Common GND |
| Power | Suitable regulated supply within the servo’s rated range |
If you use a separate supply, connect its ground to Arduino GND. Avoid powering a heavily loaded servo from the Arduino’s 5 V output.
How to Prepare the Arduino IDE?
- Install and open the Arduino IDE.
- Connect your Arduino board to the computer.
- Select the correct board and port.
- Open a new sketch.
- Include the Servo library using
#include <Servo.h>. - Enter the code and upload it to the board.
The Servo library is available for supported Arduino environments and provides functions such as attach(), write(), and writeMicroseconds(). Check the library documentation for compatibility and board-specific behavior.
8. Servo Motor Control Signals and PWM
Hobby servos are controlled by pulses whose width represents the requested position. Although the signal resembles PWM, servo positioning is generally determined by pulse width, not simply by the percentage of time the signal remains HIGH.

Understanding Pulse Width
A common hobby servo interface uses pulses repeated approximately every 20 milliseconds, or around 50 Hz. A pulse width near 1.5 milliseconds often commands a central or neutral position, while shorter and longer pulses command positions on either side.
The exact pulse-width range and its relationship to the shaft position vary by servo model. For some servos, pulses near 1–2 ms cover much of the normal range, but these values should not be treated as universal limits.
Pulse Width vs. Position
The following table illustrates a common control convention, not a guarantee for every servo.
| pulse width | positional meaning |
|---|---|
| 1.0 ms | One end of the travel range |
| 1.5 ms | Near the center of the range |
| 2.0 ms | The opposite end of the travel range |
The direction associated with a longer pulse is not universal, and the center point may not be exactly halfway through the mechanical travel. Consult the manufacturer’s specifications and calibrate the servo when accurate positioning is important.
Is Servo Control the Same as Motor-Speed PWM?
Not exactly.
For a conventional DC motor, PWM duty cycle is commonly used to adjust the effective power delivered to the motor and thereby influence speed.
For a positional hobby servo, the width of each control pulse encodes the requested position. Changing the pulse width changes the target position; changing the duty cycle without preserving the intended pulse width does not necessarily produce the expected movement.
This distinction is important when choosing a microcontroller library or configuring hardware timers.
9. Programming a Servo Motor with Arduino
The first program will move a positional servo gradually from one end of its configured range to the other, then back again. It is a useful test for checking the wiring and understanding how the Servo library works.

Basic Servo Sweep Code
#include <Servo.h>
Servo myServo;
const int servoPin = 9;
void setup() {
myServo.attach(servoPin);
}
void loop() {
// Move gradually toward 180 degrees
for (int angle = 0; angle <= 180; angle++) {
myServo.write(angle);
delay(15);
}
// Move gradually back toward 0 degrees
for (int angle = 180; angle >= 0; angle--) {
myServo.write(angle);
delay(15);
}
}
Understanding the Code
#include <Servo.h>includes the Servo library.Servo myServo;creates a servo-control object.myServo.attach(servoPin);assigns the signal output to pin 9.myServo.write(angle);requests a position in degrees for a standard positional servo.- The first
forloop increases the commanded angle from 0 to 180. - The second loop decreases it from 180 to 0.
delay(15)introduces a short pause between successive commands.
The code assumes the servo supports the commanded range. Some servos cannot safely travel through the full 0–180 degree range. If your servo buzzes, strains, or presses against a mechanical stop, disconnect power and reduce the commanded range.
Also note that the loop’s timing is not a precise measurement of the servo’s actual movement speed. The servo may take longer to reach a position depending on its speed rating and load.
Safer Approach to Setting the Range
For an unfamiliar servo, begin with a conservative range, such as 30–150 degrees, and test the movement without a heavy mechanical load. Expand the range only if the manufacturer’s specifications support it.
When finer control is needed, writeMicroseconds() allows the program to specify pulse width directly. Use documented or carefully calibrated limits rather than assuming that the servo can safely accept every pulse width.
One Arduino-specific consideration: on classic Uno-style boards, the Servo library uses hardware timers and can disable ordinary analogWrite() PWM functionality on pins 9 and 10 while the library is active. Check your board’s documentation if the project also controls DC motors or other PWM devices.
10. Controlling a Servo with a Potentiometer
A potentiometer provides a simple way to control servo position manually. The Arduino reads the potentiometer’s analog voltage and maps that reading to a servo command.

Potentiometer Connections
For a typical 10 kΩ potentiometer:
- Connect one outer terminal to Arduino 5 V.
- Connect the other outer terminal to Arduino GND.
- Connect the center terminal, called the wiper, to analog input A0.
- Connect the servo signal to digital pin 9.
- Power the servo from a suitable source and connect its ground to Arduino GND.
This wiring assumes a 5 V Arduino-compatible board. For a 3.3 V board, use the appropriate supply and ensure the analog input is not exposed to an unsupported voltage.
Arduino Code
#include <Servo.h>
Servo myServo;
const int servoPin = 9;
const int potPin = A0;
void setup() {
myServo.attach(servoPin);
}
void loop() {
int potValue = analogRead(potPin);
// Map the analog reading to a conservative angle range
int angle = map(potValue, 0, 1023, 30, 150);
myServo.write(angle);
delay(15);
}
How It Works?
On a classic Arduino Uno, analogRead() typically returns a value from 0 to 1023. The map() function converts this reading into an angle between 30 and 150 degrees.
As you turn the potentiometer, the requested angle changes and the servo follows it. The example uses a reduced range to avoid immediately commanding the mechanical endpoints of an unfamiliar servo.
The actual usable range must still be confirmed for the servo being used. If the potentiometer reading fluctuates, check the wiring and consider filtering the analog readings in software.
11. Controlling Multiple Servo Motors
An Arduino can control multiple hobby servos, provided that the board, library, signal pins, and power supply are suitable for the number and type of servos used.

Wiring Multiple Servos
For each servo:
- Connect its signal wire to a separate supported control pin.
- Connect its power wire to a supply within its rated voltage range.
- Connect its ground wire to the supply’s negative terminal.
- Connect the supply ground to Arduino GND.
Do not assume that the Arduino’s onboard power connection can supply several servos simultaneously. Their combined current can be substantial, particularly when they move together or resist mechanical loads.
Example Code for Two Servos
#include <Servo.h>
Servo servo1;
Servo servo2;
void setup() {
servo1.attach(9);
servo2.attach(10);
servo1.write(90);
servo2.write(90);
delay(1000);
}
void loop() {
servo1.write(45);
servo2.write(135);
delay(1000);
servo1.write(135);
servo2.write(45);
delay(1000);
servo1.write(90);
servo2.write(90);
delay(1000);
}
Power and Library Considerations
Both servos in this example are commanded to different positions, but the code does not guarantee that they will move at the same speed or reach their targets simultaneously.
For larger projects, check the Servo library’s supported servo count and the timer limitations of your board. The Arduino Servo library supports different maximum counts depending on the board architecture, and timer use can affect other PWM functions.
For projects involving many servos, a dedicated servo controller can simplify signal generation. It does not eliminate the need for a suitably rated servo power supply.
12. Servo Motor Power Supply and Current Requirements
Power supply selection is one of the most important parts of a reliable servo-control circuit. A servo may work correctly without a mechanical load but reset the Arduino or behave unpredictably when it has to move a mechanism.

Why Servos Need Sufficient Current?
A servo contains a motor that draws current while moving and may draw additional current when holding a load. Current demand can rise significantly if the shaft is obstructed or the servo approaches a mechanical limit.
For this reason, a supply should be selected using the servo’s rated voltage and realistic current requirements, including peak or stall current where available. Pololu’s technical guide explains why servo current varies with load and why stall current matters when sizing a supply.
Selecting a Suitable Power Supply
Follow these guidelines:
- Voltage: Stay within the servo manufacturer’s specified operating range.
- Current capacity: Allow for the expected load and current peaks from all connected servos.
- Regulation: Use a supply that maintains an appropriate voltage as the load changes.
- Wiring: Use wires and connectors rated for the expected current.
- Protection: Consider suitable overcurrent protection for the supply and wiring.
Do not select a supply based solely on the servo’s idle current. A supply that works for one unloaded servo may not be suitable for several servos moving simultaneously.
Can an Arduino Power a Servo?
It depends on the board, supply arrangement, servo, and mechanical load. A small servo may operate in a simple demonstration, but the Arduino’s 5 V pin or USB supply should not be assumed to provide sufficient current for every servo.
For more demanding applications, use an appropriately rated external supply for the servo. Connect the supply ground to Arduino GND so that the control signal has a common reference.
Never connect a supply voltage directly to an Arduino input or output pin. Also, do not connect two positive supply outputs together unless the circuit is specifically designed to allow it.
Preventing Arduino Resets and Servo Jitter
If the Arduino resets when the servo moves, the supply voltage may be dropping under load. Servo movement can also introduce electrical noise into a poorly designed circuit.
Check the supply capacity, ground connections, wire resistance, and connector quality. Depending on the design, appropriate decoupling capacitors near the servo supply may help reduce voltage disturbances, but capacitors cannot compensate for a fundamentally undersized power supply.
13. Common Servo Motor Applications and Projects
Servo motors are especially useful when a project requires controlled movement rather than continuous rotation alone.

Robot Arm
A robot arm can use several positional servos to control its joints. Each servo moves a joint toward a commanded angle, allowing the arm to reach different positions.
When designing a robot arm, calculate the torque required at each joint. Servos closer to the base may need to support the weight of several downstream components, making their torque requirements higher.
Pan-and-Tilt Camera Mount
Two servos can control horizontal and vertical movement:
- One servo rotates the platform horizontally.
- The other tilts the camera vertically.
This arrangement is useful for surveillance demonstrations, remote-controlled camera mounts, and object-tracking experiments.
Ensure that the mounting structure does not force either servo beyond its mechanical range.
RC Steering System
In a model vehicle, a positional servo moves the steering linkage according to commands from a radio receiver or microcontroller.
The mechanical linkage must be aligned properly. Incorrect alignment can force the servo against its limits, increasing current and potentially damaging gears or the internal motor.
Automatic Vent or Small Mechanism
A servo can open or close a lightweight vent, move a flap, or operate a small mechanism in response to a sensor.
For example, a temperature sensor could provide input to a controller that commands a servo to adjust a vent position. In a real application, consider what happens if the sensor, controller, power supply, or servo fails.
Sensor Scanner
A servo can rotate an ultrasonic distance sensor or another directional sensor across a limited range. The controller can record measurements at different angles to create a simple scan of nearby objects.
This is a useful beginner project for learning servo control, sensor integration, and basic data processing.
14. Troubleshooting and Safety Tips
Understanding common servo problems helps you diagnose circuits more quickly and avoid damaging components.

| Problem | Possible cause | Recommended solution |
|---|---|---|
| Servo does not move | Incorrect wiring, no power, or missing signal | Check the pinout, supply voltage, ground, and uploaded code |
| Arduino resets when servo moves | Supply voltage drop or excessive current demand | Use a suitable supply and inspect wiring and connections |
| Servo vibrates or jitters | Unstable supply, noisy signal, mechanical load, or command fluctuations | Check the power source, wiring, signal generation, and mechanical alignment |
| Servo buzzes at an endpoint | Command exceeds its usable mechanical range or the mechanism is obstructed | Reduce the commanded range and remove the obstruction |
| Servo cannot move the load | Insufficient torque, excessive friction, or inadequate supply | Recalculate torque requirements and check the supply under load |
| Servo becomes hot | Excessive load, prolonged stall, or unsuitable supply voltage | Disconnect power, check the mechanical load, and verify the rated voltage |
| Servo moves in the wrong direction | The command mapping or mechanical orientation is reversed | Adjust the control mapping or mounting arrangement |
| Two servos move inconsistently | Different servo characteristics, loads, or supply conditions | Check the mechanics and calibrate the individual servos |
Avoid Forcing the Servo Shaft
Do not force a powered servo against its internal stops or manually push the output shaft while the servo is actively holding position. This can stress the gears and internal motor.
If the servo produces a sustained buzzing or grinding sound, disconnect power and investigate the cause rather than allowing it to remain under strain.
Check the Mechanical Load
A servo that works correctly without a load may fail when attached to a mechanism that requires excessive torque. Check for binding, misalignment, friction, and loads that exceed the servo’s rating.
If the load is too large, select a servo with suitable torque or redesign the mechanism to reduce the required force.
Test Before Integrating the Mechanism
Before connecting a servo to a complete robot or mechanical assembly:
- Verify the wiring and power supply.
- Upload a simple test program.
- Start with a limited movement range.
- Observe the servo for unexpected noise, vibration, or heating.
- Attach the mechanical load only after confirming that the basic operation is reliable.
This approach makes it easier to identify whether a problem comes from the electrical circuit, software, or mechanical design.
15. Frequently Asked Questions
Can I Connect a Servo Motor Directly to an Arduino?
The servo’s signal wire can generally connect to a suitable Arduino digital pin, but the servo’s power supply must meet its current requirements. Do not assume that the Arduino’s 5 V pin can safely power every servo.
How Many Servos Can an Arduino Control?
The number depends on the Arduino model, the library, timer availability, and the requirements of the application. The Arduino Servo library supports different maximum servo counts on different boards. The power supply must also be able to handle the combined current demand.
What Is the Difference Between a Positional Servo and a Continuous-Rotation Servo?
A positional servo moves its output shaft toward a commanded angle within its usable range. A continuous-rotation servo uses similar control commands to regulate rotational speed and direction rather than an absolute position.
Does a Servo Need a Motor Driver?
A typical hobby RC servo already contains its motor-driving electronics and position-control circuitry. It usually does not require a separate H-bridge like a bare DC motor does. However, it still needs a suitable power supply and a compatible control signal.
What Does a 1.5 ms Servo Pulse Mean?
For many hobby servos, a pulse near 1.5 milliseconds commands the center or neutral position. The exact meaning depends on the model and its calibration. Do not assume that the pulse always corresponds to exactly 90 degrees.
Can I Control Servo Position Without Arduino?
Yes. A servo can be controlled by other compatible microcontrollers, dedicated servo controllers, RC receivers, or circuits capable of generating the required control signal. The controller must provide a compatible signal and share the appropriate electrical reference.
Why Does My Servo Jitter?
Possible causes include unstable power, inadequate current capacity, noisy control signals, fluctuating sensor readings, mechanical vibration, or an unsuitable control pulse range. Check the power supply and wiring first, then investigate the signal and mechanical load.
Can a Servo Rotate 360 Degrees?
A standard positional servo usually has a limited angular range. A continuous-rotation servo can rotate continuously, but it typically controls speed and direction rather than absolute position. Specialized servos may offer different travel ranges and feedback capabilities.
What Is the Difference Between Servo Torque and Speed?
Torque describes the turning force a servo can apply at its output shaft. Speed describes how quickly the output moves through a specified angle. Both depend on the servo’s design and operating conditions, and neither should be evaluated without considering the mechanical load and supply voltage.
Can I Use the Arduino Servo Library for a Continuous-Rotation Servo?
Yes, the library can generate control commands for many continuous-rotation servos. However, the command value represents a direction-and-speed request rather than an absolute angle. The neutral command and speed response should be calibrated for the specific servo.
16. Conclusion
Servo motors are practical components for projects that require controlled movement, from simple robot arms and camera mounts to RC vehicles and small automation systems. Their integrated motor, gearbox, feedback mechanism, and control electronics make them easier to use for positional control than a basic DC motor.

To use a servo reliably, identify its type and specifications, connect its power, ground, and signal wires correctly, and use a compatible control library or controller. Arduino’s Servo library provides a convenient starting point for position commands, while a potentiometer offers an intuitive way to test manual control.
Most importantly, provide an adequate power supply, avoid forcing the servo beyond its mechanical range, and select a model with sufficient torque for the intended load. Once these fundamentals are understood, you can extend your projects with multiple servos, sensor-based movement, and more advanced motion-control techniques.
قائمة المحتويات
- مقدمة.
- ما هو محرك السيرفو؟
- كيف يعمل محرك السيرفو؟
- أنواع محركات السيرفو.
- المواصفات الفنية لمحرك السيرفو.
- أسلاك محرك السيرفو وطرق توصيلها.
- توصيل محرك السيرفو بلوحة Arduino.
- إشارات التحكم في محرك السيرفو وPWM.
- برمجة محرك السيرفو باستخدام Arduino.
- التحكم في محرك السيرفو باستخدام مقاومة متغيرة.
- التحكم في عدة محركات سيرفو.
- مصدر تغذية محرك السيرفو ومتطلبات التيار.
- التطبيقات والمشروعات الشائعة لمحركات السيرفو.
- استكشاف الأعطال ونصائح السلامة.
- الأسئلة الشائعة.
- الخاتمة.
وقت القراءة: 20 دقيقة.
1. مقدمة
يُعد محرك السيرفو (Servo Motor) أحد أنواع المشغلات الكهروميكانيكية المصممة لتحريك عمود الخرج إلى موضع محدد وفقًا لأوامر التحكم، أو للدوران المستمر بسرعة يمكن التحكم فيها في بعض الطرازات. وتُستخدم محركات السيرفو على نطاق واسع في الأذرع الروبوتية، وأنظمة التوجيه، وحوامل الكاميرات المتحركة أفقيًا ورأسيًا، والطائرات النموذجية، ومشروعات الأتمتة الصغيرة.

على عكس محرك التيار المستمر (DC Motor) التقليدي، الذي يستمر عادةً في الدوران بمجرد توصيله بمصدر الطاقة، يحتوي محرك السيرفو الموضعي القياسي على محرك كهربائي وعلبة تروس ومستشعر لقياس الموضع ودائرة إلكترونية للتحكم. تعمل هذه المكونات معًا لتحريك عمود الخرج نحو الموضع المطلوب والمحافظة عليه في مواجهة المؤثرات الخارجية المعتدلة.
توصيل محرك السيرفو وبرمجته أمر سهل نسبيًا، لكن ضمان تشغيله بصورة مستقرة لا يقتصر على توصيل الأسلاك الثلاثة فقط. بل يتطلب فهم جهد التغذية، ومتطلبات التيار، وإشارة التحكم، وحدود الحركة الميكانيكية، وإمكانيات لوحة المتحكم الدقيق المستخدمة.
في هذا الدليل، ستتعرف على طريقة عمل محركات السيرفو، وكيفية توصيلها بلوحة Arduino، والتحكم في موضعها باستخدام الأكواد البرمجية ومقاومة متغيرة (Potentiometer)، بالإضافة إلى تشغيل عدة محركات سيرفو بأمان. ويتضمن الدليل أمثلة عملية مناسبة للمبتدئين والهواة والمهندسين.
2. ما هو محرك السيرفو؟
يُعد محرك السيرفو (Servo Motor) جزءًا من نظام تحكم مصمم لتحريك عنصر الخرج نحو موضع أو سرعة أو عزم دوران محدد، وذلك وفقًا لنوع السيرفو ووحدة التحكم المستخدمة معه.
في مجال الإلكترونيات والهوايات، يُستخدم هذا المصطلح عادةً للإشارة إلى محركات السيرفو الصغيرة المستخدمة في أنظمة التحكم اللاسلكي (RC)، والتي تحتوي غالبًا على ثلاثة أسلاك: التغذية، والأرضي، وإشارة التحكم. يستقبل المحرك نبضات التحكم ويستخدم دوائره الإلكترونية الداخلية لضبط موضع عمود الخرج.

المكونات الرئيسية لمحرك السيرفو
يتكون محرك السيرفو الموضعي التقليدي من مجموعة من المكونات الأساسية، تشمل:
- محرك التيار المستمر (DC Motor): المسؤول عن توليد الحركة الدورانية.
- علبة التروس (Gearbox): تعمل على تقليل سرعة المحرك وزيادة عزم الدوران المتاح عند عمود الخرج.
- مستشعر الموضع (Position Sensor): يكون غالبًا عبارة عن مقاومة متغيرة (Potentiometer) تُستخدم لقياس موضع عمود الخرج.
- دائرة التحكم الإلكترونية (Control Circuit): تقارن بين الموضع المطلوب والموضع الفعلي، ثم تتحكم في تشغيل المحرك لتقليل الفرق بينهما.
- عمود الخرج وذراع السيرفو (Output Shaft and Servo Horn): ينقلان الحركة إلى الآلية الميكانيكية المتصلة بالمحرك.
- الهيكل والمحامل (Housing and Bearings): تعمل على دعم المكونات الداخلية وحمايتها.
يساعد دمج هذه المكونات داخل وحدة واحدة على تسهيل استخدام محركات السيرفو في المشروعات التي تتطلب حركة يمكن التحكم في موضعها، دون الحاجة إلى تصميم دائرة مستقلة لقياس موضع المحرك والتحكم فيه.
محرك السيرفو مقارنة بمحرك التيار المستمر التقليدي
يحتاج محرك التيار المستمر التقليدي ذي الفرش (Brushed DC Motor) عادةً إلى دائرة قيادة خارجية للتحكم في سرعته واتجاه دورانه، كما أنه لا يستطيع تحديد موضع عموده تلقائيًا دون استخدام مستشعرات ونظام تحكم إضافي.
أما محرك السيرفو الموضعي، فيحتوي على آلية تغذية راجعة (Feedback) ودوائر تحكم إلكترونية مدمجة، مما يسمح له بالتحرك نحو زاوية محددة باستخدام قدر بسيط نسبيًا من الدوائر الخارجية.
على سبيل المثال، يمكن للوحة Arduino إرسال أمر إلى محرك السيرفو للتحرك إلى زاوية تقارب 90 درجة باستخدام إحدى مكتبات التحكم بالسيرفو. أما مع محرك التيار المستمر التقليدي، فسيتطلب الوصول إلى هذا الموضع والمحافظة عليه عادةً مستشعرًا إضافيًا لقياس الموضع ومنطقًا برمجيًا للتحكم.
ومن المهم الانتباه إلى أن جميع محركات السيرفو لا تعمل بنظام التحكم في الموضع. فهناك محركات السيرفو ذات الدوران المستمر (Continuous-Rotation Servos)، والتي تستخدم إشارات تحكم مشابهة لتحديد سرعة الدوران واتجاهه بدلًا من تحديد زاوية ثابتة لعمود الخرج.
3. كيف يعمل محرك السيرفو؟
يعمل محرك السيرفو الموضعي التقليدي باستخدام نظام تحكم مغلق الحلقة (Closed-Loop Control System). يستقبل المحرك أمر التحكم، ثم يقيس موضعه الحالي، وبعد ذلك يشغّل المحرك الداخلي حتى يقترب الموضع الفعلي من الموضع المطلوب.

مراحل التحكم في موضع محرك السيرفو
تتم عملية التحكم في موضع محرك السيرفو من خلال المراحل الأساسية التالية:
- ترسل وحدة التحكم أمرًا يحدد الموضع المطلوب.
- تستقبل الدائرة الإلكترونية الداخلية في السيرفو هذا الأمر وتفسره.
- يقيس مستشعر الموضع الموقع الفعلي لعمود الخرج.
- تقارن دائرة التحكم بين الموضع المطلوب والموضع الفعلي.
- يبدأ المحرك الكهربائي بالدوران عبر علبة التروس لتقليل الفرق بين الموضعين.
- تضبط دائرة التحكم تشغيل المحرك حسب الحاجة حتى يصل إلى الموضع المستهدف.
تتكرر هذه العملية أثناء استقبال محرك السيرفو لإشارات التحكم. وإذا أثرت قوة خارجية على عمود الخرج وتسببت في تغيير موضعه، فقد يسحب المحرك تيارًا إضافيًا لمحاولة العودة إلى الموضع المحدد.
ما المقصود بالتغذية الراجعة للموضع (Position Feedback)؟
تُستخدم التغذية الراجعة للموضع لإخبار دائرة التحكم بالموقع الحالي لعمود الخرج. وفي العديد من محركات السيرفو التقليدية المستخدمة في الهوايات، تكون هناك مقاومة متغيرة متصلة ميكانيكيًا بترس الخرج.
عندما يتحرك العمود، تتغير القيمة الكهربائية للمقاومة المتغيرة. وتستخدم دائرة التحكم هذا التغير لتقدير موضع العمود وضبط تشغيل المحرك وفقًا لذلك.
أما محركات السيرفو الأكثر تطورًا، فقد تستخدم وسائل استشعار مختلفة أو دوائر إلكترونية داخلية إضافية.
ماذا يحدث عندما يصل محرك السيرفو إلى الموضع المطلوب؟
عندما يصل محرك السيرفو إلى الموضع المحدد، تقلل دائرة التحكم مقدار الطاقة اللازمة لتصحيح الفرق المتبقي بين الموضع الفعلي والموضع المطلوب. وإذا حاول حمل خارجي تغيير موضع العمود، فقد يزيد السيرفو من قوة تشغيل المحرك لمقاومة هذه الحركة والمحافظة على الموضع المستهدف.
تتطلب عملية تثبيت الموضع استهلاكًا للتيار الكهربائي، خاصةً عندما يكون الحمل كبيرًا. لذلك، قد يستهلك محرك السيرفو قدرًا ملحوظًا من الطاقة حتى عندما لا يكون هناك تحرك ظاهر للعمود.
إذا منعت الآلية الميكانيكية المحرك من الوصول إلى الموضع المطلوب، فقد يستمر السيرفو في توليد قوة لمحاولة الوصول إليه، مما يؤدي إلى زيادة التيار وارتفاع درجة الحرارة. لذلك، يجب تجنب تشغيله لفترات طويلة في مواجهة نقاط التوقف الميكانيكية.
4. أنواع محركات السيرفو
تتوفر محركات السيرفو بتصميمات مختلفة لتلبية متطلبات تطبيقات التحكم في الحركة. ويُعد اختيار النوع المناسب أمرًا ضروريًا، لأن محركات السيرفو الموضعية ومحركات السيرفو ذات الدوران المستمر لا تستجيب لأوامر التحكم بالطريقة نفسها.

1. محرك السيرفو الموضعي (Positional Servo)
يعمل هذا النوع على تحريك عمود الخرج إلى زاوية محددة وفقًا لأمر التحكم، وذلك ضمن حدود الحركة الميكانيكية المسموح بها.
ومن الأمثلة الشائعة عليه محركات السيرفو الصغيرة مثل SG90، بالإضافة إلى المحركات الأكبر حجمًا المستخدمة في الأذرع الروبوتية وأنظمة التوجيه.
توفر العديد من محركات السيرفو الموضعية المستخدمة في الهوايات زاوية حركة تقارب 180 درجة، لكن نطاق الحركة الفعلي يختلف من طراز إلى آخر. فبعض المحركات توفر نطاقًا أقل، بينما تستطيع بعض الطرازات المتخصصة توفير نطاق حركة أوسع.
أهم التطبيقات: الأذرع الروبوتية، وأنظمة التوجيه، وحوامل الكاميرات، وأنظمة التحريك الأفقي والرأسي، والآليات الميكانيكية الصغيرة.
2. محرك السيرفو ذو الدوران المستمر (Continuous-Rotation Servo)
يُصمم هذا النوع أو يُعدّل بحيث يستطيع الدوران بشكل مستمر في كلا الاتجاهين. وتحدد إشارة التحكم عادةً اتجاه الدوران وسرعته بدلًا من تحديد موضع زاوي ثابت لعمود الخرج.
في واجهة التحكم الشائعة لهذا النوع، تؤدي قيمة الأمر القريبة من نقطة التعادل (Neutral) إلى إيقاف الدوران، بينما تؤدي القيم الأعلى أو الأقل منها إلى طلب الدوران في اتجاهين متعاكسين. وتعتمد نقطة التعادل الفعلية واستجابة السرعة على طراز المحرك، وقد تحتاج إلى المعايرة.
أهم التطبيقات: عجلات الروبوتات الصغيرة، والروبوتات المتحركة البسيطة، والآليات الدوارة.
3. محركات السيرفو التناظرية والرقمية (Analog and Digital Servos)
يستخدم كل من محرك السيرفو التناظري والرقمي دوائر إلكترونية داخلية للتحكم، لكن هناك اختلافات في طريقة عمل دوائر التحكم الخاصة بهما.
- محركات السيرفو التناظرية (Analog Servos): تستخدم دائرة تحكم بسيطة نسبيًا لتشغيل المحرك الكهربائي.
- محركات السيرفو الرقمية (Digital Servos): تستخدم دوائر إلكترونية رقمية لمعالجة أوامر التحكم وتنظيم تشغيل المحرك. وقد توفر، وفقًا للطراز، استجابة مختلفة أو أداءً أفضل في تثبيت الموضع أو إمكانيات مختلفة لتحديث أوامر التحكم.
قد يسحب محرك السيرفو الرقمي تيارًا مرتفعًا أثناء الحركة أو عند مقاومة حمل ميكانيكي. كما أن استخدام التحكم الرقمي لا يعني بالضرورة انخفاض استهلاك الطاقة أو التوافق مع جميع مصادر التغذية.
4. أنظمة السيرفو الصناعية (Industrial Servo Systems)
صُممت أنظمة السيرفو الصناعية للعمل في التطبيقات التي تتطلب تحكمًا دقيقًا وموثوقًا في الموضع أو السرعة أو عزم الدوران. وتتكون عادةً من محرك سيرفو ووحدة قيادة مخصصة (Servo Drive)، بالإضافة إلى جهاز تغذية راجعة مثل المشفر (Encoder) أو المحول الدوراني (Resolver).
وتختلف هذه الأنظمة بصورة كبيرة عن محركات السيرفو الصغيرة ذات الأسلاك الثلاثة المستخدمة في الهوايات، سواء من حيث مستويات القدرة الكهربائية، أو واجهات التحكم، أو متطلبات الضبط، أو اعتبارات السلامة، أو بنية نظام التغذية الراجعة.
يركز هذا المقال بشكل أساسي على محركات السيرفو منخفضة الجهد المستخدمة في تطبيقات الهوايات (RC Servos)، مع تقديم أمثلة عملية على توصيلها والتحكم فيها.
5. المواصفات الفنية لمحرك السيرفو (Servo Motor Specifications)
قبل اختيار محرك السيرفو، من الضروري مراجعة ورقة البيانات الفنية (Datasheet) أو الوثائق الخاصة بالمنتج. تساعدك هذه المواصفات على تحديد مدى قدرة المحرك على تحريك الحمل المطلوب، وما إذا كان مصدر التغذية ووحدة التحكم مناسبتين لتشغيله.

| المواصفة | المقصود بها | أهميتها |
|---|---|---|
| جهد التشغيل (Operating Voltage) | نطاق جهد التغذية المسموح به لتشغيل المحرك. | يحمي المحرك من انخفاض الجهد أو تعرضه للتلف نتيجة زيادة الجهد. |
| عزم التوقف (Stall Torque) | العزم الذي يستطيع المحرك توليده عندما يُمنع عمود الخرج من الدوران، وفق ظروف الاختبار المحددة. | يساعد على تقدير قدرة المحرك على تحريك الحمل، مع ضرورة تجنب استمرار حالة التوقف لفترة طويلة لأنها قد تؤدي إلى ارتفاع درجة حرارته. |
| السرعة (Speed) | الزمن اللازم للتحرك خلال زاوية محددة وفق ظروف تشغيل معينة. | تحدد مدى سرعة حركة الآلية المتصلة بالمحرك. |
| زاوية التشغيل (Operating Angle) | نطاق الحركة الزاوية المتاح لعمود الخرج. | تساعد على التأكد من أن نطاق حركة المحرك يتناسب مع متطلبات الآلية الميكانيكية. |
| تيار التوقف (Stall Current) | التيار الذي يسحبه المحرك عندما يتوقف عن الدوران عند جهد وظروف تشغيل محددة. | يساعد على تحديد سعة مصدر التغذية المناسبة واختيار الأسلاك الملائمة. |
| مادة التروس (Gear Material) | المادة المصنوع منها نظام التروس، مثل البلاستيك أو المعدن. | تؤثر في المتانة والوزن والضوضاء ومقاومة التآكل. |
| نطاق نبضات التحكم (Control Pulse Range) | نطاق عرض النبضات الذي يستطيع المحرك استقباله. | يحدد كيفية تحويل أوامر التحكم إلى مواضع مختلفة لعمود الخرج. |
| الأبعاد والوزن (Dimensions and Mass) | الحجم الفعلي للمحرك وكتلته. | من العوامل المهمة عند تصميم قاعدة التثبيت وحساب الأحمال المتحركة. |
فهم عزم الدوران (Understanding Torque)
يُعبَّر عن عزم الدوران في محركات السيرفو عادةً بوحدة كيلوجرام-سنتيمتر (kg·cm) أو نيوتن-متر (N·m). على سبيل المثال، عندما تكون قيمة العزم الاسمي للمحرك 2 kg·cm، فهذا يعني نظريًا أنه يستطيع توليد قوة تعادل نحو 2 كيلوجرام-قوة (kgf) عند ذراع طوله 1 سم، وذلك وفق ظروف التشغيل المحددة من الشركة المصنعة.
من المهم الانتباه إلى أن هذه الوحدة تعبّر عن عزم الدوران، ولا تعني ببساطة أن المحرك يستطيع رفع أي حمل كتلته 2 كيلوجرام. إذ تعتمد قيمة العزم المطلوبة فعليًا على وزن الحمل، وطول ذراع الرافعة، واتجاه الحركة، والاحتكاك، والتسارع، وهامش الأمان المطلوب.
يمكن تقدير عزم الدوران اللازم لتحريك حمل ساكن بسيط باستخدام العلاقة التالية:
\(\tau = F \times r\)
حيث:
- τ (Tau): عزم الدوران.
- F: القوة المؤثرة على الآلية الميكانيكية.
- r: المسافة العمودية بين محور الدوران وخط تأثير القوة.
عند اختيار المحرك، يُنصح باستخدام هامش أمان مناسب بحيث تكون قيمة العزم المتاح أعلى من القيمة المحسوبة، مع مراعاة حدود العزم والحرارة المحددة من الشركة المصنعة.
فهم سرعة محرك السيرفو (Understanding Speed)
يُعبَّر عن سرعة محرك السيرفو غالبًا بالثواني اللازمة للتحرك بمقدار 60 درجة، وذلك عند جهد تشغيل محدد. فعلى سبيل المثال، تعني قيمة سرعة 0.12 s/60° أن المحرك يحتاج إلى نحو 0.12 ثانية للتحرك بمقدار 60 درجة، وفق ظروف الاختبار التي تحددها الشركة المصنعة.
لكن زمن الحركة الفعلي قد يختلف تبعًا للحمل الميكانيكي، وجهد التغذية، والاحتكاك داخل الآلية، وخصائص نظام التحكم الخاص بالمحرك.
لماذا يُعد الجهد والتيار مهمين؟ (Why Voltage and Current Matter?)
يجب تشغيل محرك السيرفو باستخدام جهد يقع ضمن نطاق التشغيل المحدد في مواصفاته الفنية. كما أن استهلاكه للتيار الكهربائي يتغير وفقًا للحمل، والحركة، وقوة تثبيت الموضع.
لذلك، يجب اختيار مصدر تغذية يستطيع توفير التيار المطلوب أثناء التشغيل، مع القدرة على التعامل مع الارتفاعات المؤقتة في استهلاك التيار. ولا ينبغي اختيار مصدر التغذية اعتمادًا على تيار المحرك أثناء عدم وجود حمل فقط، لأن بدء الحركة أو التشغيل تحت حمل ميكانيكي قد يتطلب تيارًا أعلى بكثير.
6. أسلاك محرك السيرفو وطرق توصيلها (Servo Motor Wires and Connections)
تحتوي معظم محركات السيرفو المستخدمة في الهوايات وأنظمة التحكم اللاسلكي (RC) على ثلاثة أسلاك رئيسية: سلك التغذية، وسلك الأرضي، وسلك إشارة التحكم. وعلى الرغم من وجود ألوان شائعة لكل وظيفة، فإن هذه الألوان ليست موحدة لدى جميع الشركات المصنعة. لذلك، يجب الرجوع إلى ورقة البيانات الفنية للمحرك أو مخطط أطراف التوصيل قبل إجراء أي توصيل.

التعرف على الأسلاك الثلاثة (Understanding the Three Wires)
| وظيفة السلك | اللون الشائع | الوظيفة |
|---|---|---|
| التغذية الكهربائية (Power Supply) | الأحمر | يوفر الطاقة الكهربائية اللازمة لتشغيل محرك السيرفو. |
| الأرضي (Ground – GND) | الأسود أو البني | يوفر مسار عودة التيار الكهربائي ويشكل مرجعًا لإشارة التحكم. |
| إشارة التحكم (Control Signal) | الأصفر أو البرتقالي أو الأبيض | يستقبل أوامر التحكم الخاصة بالموضع أو اتجاه الدوران. |
ينقل سلك الإشارة إشارة تحكم ذات تيار منخفض، ولا يوفر عادةً الطاقة اللازمة لتحريك محرك السيرفو؛ إذ يحصل المحرك على الطاقة التشغيلية من سلكي التغذية والأرضي.
التوصيل الأساسي مع Arduino (Basic Connection to Arduino)
عند توصيل محرك سيرفو صغير بلوحة Arduino، تكون التوصيلات الأساسية لإشارة التحكم والتغذية كما يلي:
- سلك إشارة السيرفو (Signal) ← المنفذ الرقمي رقم 9 في لوحة Arduino.
- سلك أرضي السيرفو (GND) ← منفذ GND في لوحة Arduino.
- سلك تغذية السيرفو (Power) ← مصدر تغذية مناسب يقع جهده ضمن نطاق التشغيل المحدد للمحرك.
على الرغم من أن بعض الأمثلة التعليمية للمبتدئين تستخدم منفذ 5V في لوحة Arduino لتغذية محرك سيرفو صغير، فإن هذه الطريقة ليست مناسبة لجميع المحركات أو الأحمال. فإذا تجاوز التيار الذي يحتاج إليه السيرفو قدرة اللوحة أو مصدر الطاقة عبر منفذ USB، فقد يُعاد تشغيل لوحة Arduino تلقائيًا، أو يتحرك السيرفو بصورة متقطعة وغير مستقرة، أو يتعرض مصدر التغذية للحمل الزائد.
للحصول على تشغيل أكثر استقرارًا، يُفضَّل استخدام مصدر تغذية خارجي منظم ومخصص للسيرفو عند الحاجة. ويجب توصيل الطرف السالب (GND) لمصدر التغذية الخارجي بمنفذ GND في لوحة Arduino، حتى يكون هناك مرجع أرضي مشترك لإشارة التحكم.
لا توصل الطرف الموجب لمصدر التغذية الخارجي بمنفذ 5V في لوحة Arduino إلا إذا كان تصميم دائرة التغذية بالكامل يسمح بهذا التوصيل بصورة صحيحة وآمنة.
توصيل مصدر تغذية خارجي لمحرك السيرفو (Connecting an External Servo Power Supply)
عند استخدام مصدر تغذية خارجي، اتبع ترتيب التوصيلات التالي:
- وصل الطرف الموجب (+) لمصدر التغذية بسلك التغذية الخاص بمحرك السيرفو.
- وصل الطرف السالب (-) لمصدر التغذية بسلك الأرضي (GND) الخاص بمحرك السيرفو.
- وصل منفذ GND في لوحة Arduino بالطرف السالب لمصدر التغذية الخارجي.
- وصل أحد المخارج الرقمية في لوحة Arduino بسلك إشارة التحكم (Signal) الخاص بالسيرفو.
- تحقق من جهد التغذية والقطبية الصحيحة للتوصيلات قبل تشغيل الدائرة.
يجب أن يظل جهد مصدر التغذية ضمن نطاق التشغيل المحدد لمحرك السيرفو. كما ينبغي أن تكون سعة التيار المتاحة كافية للتعامل مع الحمل المتوقع والارتفاعات اللحظية في استهلاك التيار.
ليس من الضروري دائمًا أن يستخدم كل من Arduino ومحرك السيرفو خط التغذية الموجب نفسه، ولكن يجب عادةً توصيل الأرضي بينهما عندما تكون إشارة التحكم مرجعية بالنسبة إلى الأرضي.
7. توصيل محرك السيرفو بلوحة Arduino (Connecting a Servo Motor to Arduino)
تسهّل مكتبة Servo الخاصة بمنصة Arduino عملية التحكم في محركات السيرفو المستخدمة في الهوايات، وذلك من خلال توليد نبضات التحكم المطلوبة تلقائيًا. وتتيح لك هذه المكتبة تحديد الموضع المطلوب باستخدام دوال برمجية جاهزة، بدلًا من إنشاء نبضات التحكم يدويًا.

المكونات المطلوبة (Components Required)
لتنفيذ تجربة توصيل وبرمجة أساسية، ستحتاج إلى المكونات التالية:
- لوحة Arduino Uno أو لوحة متوافقة معها.
- محرك سيرفو موضعي واحد مناسب لتطبيقات الهوايات.
- أسلاك توصيل (Jumper Wires).
- كابل USB لبرمجة لوحة Arduino وتوصيلها بالكمبيوتر.
- مصدر تغذية مناسب لمحرك السيرفو، إذا كانت متطلبات التيار الخاصة به تتجاوز قدرة مصدر التغذية في لوحة Arduino على توفيره بأمان.
يُستخدم محرك سيرفو صغير مثل SG90 في كثير من التجارب التعليمية للمبتدئين، ولكن يجب التأكد من مواصفات الطراز المستخدم تحديدًا، خاصةً جهد التشغيل، والتيار المطلوب، ونطاق الحركة المسموح به.
جدول التوصيلات (Wiring Table)
| توصيلة محرك السيرفو | التوصيل المقابل في Arduino أو مصدر التغذية |
|---|---|
| إشارة التحكم (Signal) | المنفذ الرقمي رقم 9. |
| الأرضي (Ground) | الأرضي المشترك (GND)، بما يشمل أرضي Arduino وأرضي مصدر التغذية الخارجي عند استخدامه. |
| التغذية (Power) | مصدر تغذية منظم ومناسب يقع جهده ضمن نطاق التشغيل المحدد لمحرك السيرفو. |
إذا استخدمت مصدر تغذية خارجيًا، فتأكد من توصيل طرفه السالب بمنفذ GND في لوحة Arduino. وتجنب تشغيل محرك سيرفو يتعرض لحمل ميكانيكي كبير باستخدام خرج 5V الخاص بلوحة Arduino دون التأكد من قدرة مصدر التغذية على توفير التيار المطلوب.
كيفية إعداد بيئة Arduino IDE؟ (How to Prepare the Arduino IDE?)
قبل البدء في كتابة البرنامج، اتبع الخطوات التالية لإعداد بيئة التطوير:
- قم بتثبيت برنامج Arduino IDE وتشغيله على الكمبيوتر.
- وصل لوحة Arduino بالكمبيوتر باستخدام كابل USB.
- اختر نوع اللوحة الصحيح والمنفذ (Port) المتصل بها من إعدادات البرنامج.
- افتح مشروعًا برمجيًا جديدًا (New Sketch).
- أضف مكتبة Servo إلى البرنامج باستخدام التعليمة البرمجية التالية:
#include <Servo.h>
- أدخل الكود البرمجي المطلوب، ثم ارفعه إلى لوحة Arduino.
تتوفر مكتبة Servo في بيئات Arduino المدعومة، وتوفر مجموعة من الدوال البرمجية المهمة، مثل attach() وwrite() وwriteMicroseconds(). يُنصح بمراجعة وثائق المكتبة للتأكد من توافقها مع نوع اللوحة المستخدمة ومعرفة أي اختلافات مرتبطة ببنية المتحكم.
8. إشارات التحكم في محرك السيرفو وتقنية PWM (Servo Motor Control Signals and PWM)
تعمل محركات السيرفو المستخدمة في الهوايات من خلال استقبال سلسلة من النبضات الكهربائية، حيث يحدد عرض كل نبضة الموضع المطلوب لعمود الخرج. وعلى الرغم من تشابه هذه الإشارة مع تقنية تعديل عرض النبضة (PWM)، فإن التحكم في موضع محرك السيرفو يعتمد عادةً على عرض النبضة نفسها، وليس ببساطة على النسبة المئوية للوقت الذي تظل فيه الإشارة في الحالة المرتفعة (HIGH).

فهم عرض النبضة (Understanding Pulse Width)
تستخدم العديد من محركات السيرفو الشائعة في الهوايات إشارة تحكم تتكرر كل 20 مللي ثانية تقريبًا، أي بتردد يقارب 50 هرتز (50 Hz). وغالبًا ما يؤدي عرض نبضة يبلغ نحو 1.5 مللي ثانية (1.5 ms) إلى تحريك عمود الخرج إلى موضع المنتصف أو الوضع المحايد، بينما تؤدي النبضات الأقصر أو الأطول إلى طلب مواضع مختلفة على جانبي هذا الموضع.
يختلف نطاق عرض النبضة المقبول والعلاقة بينه وبين زاوية دوران العمود من طراز إلى آخر. ففي بعض المحركات، يمكن أن تغطي النبضات التي يتراوح عرضها بين 1 و2 مللي ثانية جزءًا كبيرًا من نطاق الحركة الطبيعي، ولكن لا ينبغي اعتبار هذه القيم حدودًا ثابتة أو صالحة لجميع محركات السيرفو.
العلاقة بين عرض النبضة وموضع السيرفو (Pulse Width vs. Position)
يوضح الجدول التالي مثالًا شائعًا لطريقة التحكم في موضع محرك السيرفو، ولكنه لا يمثل قاعدة ثابتة تنطبق على جميع الطرازات.
| عرض النبضة | الموضع الناتج |
|---|---|
| 1.0 ms | أحد طرفي نطاق الحركة. |
| 1.5 ms | موضع قريب من منتصف نطاق الحركة. |
| 2.0 ms | الطرف المقابل من نطاق الحركة. |
يجب الانتباه إلى أن اتجاه الحركة الناتج عن زيادة عرض النبضة ليس موحدًا في جميع محركات السيرفو، كما أن موضع المنتصف قد لا يتطابق تمامًا مع منتصف نطاق الحركة الميكانيكي. لذلك، يُنصح بمراجعة مواصفات الشركة المصنعة ومعايرة المحرك عند الحاجة إلى تحديد المواضع بدقة.
هل التحكم في السيرفو هو نفسه التحكم في سرعة المحرك باستخدام PWM؟ (Is Servo Control the Same as Motor-Speed PWM?)
ليس تمامًا، فهناك اختلاف أساسي بين طريقة استخدام تقنية PWM للتحكم في سرعة محرك التيار المستمر وطريقة استخدامها في التحكم في موضع محرك السيرفو الموضعي.
في محرك التيار المستمر التقليدي (DC Motor)، تُستخدم دورة العمل (Duty Cycle) لإشارة PWM عادةً للتحكم في القدرة الكهربائية الفعالة التي تصل إلى المحرك، وبالتالي التأثير في سرعة دورانه.
أما في محرك السيرفو الموضعي المستخدم في الهوايات، فإن عرض كل نبضة تحكم هو الذي يحدد الموضع المطلوب. فتغيير عرض النبضة يؤدي إلى تغيير الموضع المستهدف، بينما لا يؤدي تغيير دورة العمل وحدها، دون الحفاظ على عرض النبضة المطلوب، بالضرورة إلى الحصول على الحركة المتوقعة.
يُعد فهم هذا الاختلاف أمرًا مهمًا عند اختيار مكتبة برمجية للتحكم في المحرك باستخدام متحكم دقيق (Microcontroller)، أو عند إعداد مؤقتات الأجهزة (Hardware Timers) لتوليد إشارات التحكم المناسبة.
9. برمجة محرك السيرفو باستخدام Arduino (Programming a Servo Motor with Arduino)
يعتمد البرنامج الأول على تحريك محرك سيرفو موضعي تدريجيًا من أحد طرفي نطاق الحركة المحدد إلى الطرف الآخر، ثم إعادته إلى موضع البداية. وتُعد هذه التجربة وسيلة عملية للتحقق من صحة التوصيلات الكهربائية وفهم كيفية عمل مكتبة Servo في بيئة Arduino.

الكود البرمجي الأساسي لتحريك السيرفو تدريجيًا (Basic Servo Sweep Code)
#include <Servo.h>
Servo myServo;
const int servoPin = 9;
void setup() {
myServo.attach(servoPin);
}
void loop() {
// Move gradually toward 180 degrees
for (int angle = 0; angle <= 180; angle++) {
myServo.write(angle);
delay(15);
}
// Move gradually back toward 0 degrees
for (int angle = 180; angle >= 0; angle--) {
myServo.write(angle);
delay(15);
}
}
شرح الكود البرمجي (Understanding the Code)
لفهم طريقة عمل البرنامج، إليك وظيفة كل تعليمة برمجية:
#include <Servo.h>: تستدعي مكتبة Servo وتضيف وظائف التحكم في محركات السيرفو إلى البرنامج.Servo myServo;: تنشئ كائنًا برمجيًا باسمmyServoيُستخدم للتحكم في محرك السيرفو.myServo.attach(servoPin);: تربط إشارة التحكم الخاصة بالمحرك بالمنفذ الرقمي رقم 9.myServo.write(angle);: ترسل أمرًا إلى السيرفو للتحرك إلى زاوية محددة بالدرجات، وذلك بالنسبة إلى محركات السيرفو الموضعية القياسية.- حلقة
forالأولى: تزيد زاوية الحركة تدريجيًا من 0 إلى 180 درجة. - حلقة
forالثانية: تقلل زاوية الحركة تدريجيًا من 180 إلى 0 درجة. delay(15): تضيف فترة انتظار قصيرة بين أوامر الحركة المتتالية.
يفترض هذا البرنامج أن محرك السيرفو المستخدم يستطيع العمل ضمن نطاق الزوايا المحدد. ولكن بعض المحركات لا تستطيع التحرك بأمان خلال النطاق الكامل من 0 إلى 180 درجة. فإذا لاحظت صدور صوت طنين مستمر، أو إجهاد المحرك، أو ضغطه على نقطة التوقف الميكانيكية، افصل مصدر التغذية وقلل نطاق الحركة المستخدم في البرنامج.
من المهم أيضًا معرفة أن التوقيت المستخدم داخل حلقات البرنامج لا يمثل قياسًا دقيقًا للسرعة الفعلية لحركة السيرفو. فقد يحتاج المحرك إلى وقت أطول للوصول إلى الموضع المطلوب، وذلك وفقًا لمواصفات سرعته والحمل الميكانيكي المتصل به.
طريقة أكثر أمانًا لتحديد نطاق الحركة (Safer Approach to Setting the Range)
عند استخدام محرك سيرفو غير معروف المواصفات، يُفضل البدء بنطاق حركة محدود، مثل 30 إلى 150 درجة، واختبار المحرك دون توصيل حمل ميكانيكي كبير. ويمكن توسيع نطاق الحركة تدريجيًا فقط إذا كانت المواصفات الفنية للشركة المصنعة تسمح بذلك.
إذا كنت تحتاج إلى تحكم أكثر دقة في عرض نبضات الإشارة، فيمكن استخدام الدالة writeMicroseconds() لتحديد عرض النبضة مباشرةً بالميكروثانية. ويجب الاعتماد على الحدود المحددة في وثائق الشركة المصنعة أو التي تم التحقق منها من خلال المعايرة، بدلًا من افتراض أن المحرك يستطيع استقبال أي قيمة لعرض النبضة بأمان.
هناك أيضًا نقطة مهمة تتعلق بلوحات Arduino التقليدية من نوع Uno؛ إذ تستخدم مكتبة Servo المؤقتات الداخلية (Hardware Timers)، وقد يؤدي تشغيلها إلى تعطيل وظيفة PWM التقليدية التي توفرها الدالة analogWrite() على المنفذين 9 و10 أثناء استخدام المكتبة.
لذلك، إذا كان مشروعك يتضمن التحكم في محركات تيار مستمر (DC Motors) أو أجهزة أخرى تعتمد على PWM، فمن الضروري مراجعة وثائق اللوحة المستخدمة للتأكد من توافق المؤقتات وتوزيع وظائفها.
10. التحكم في محرك السيرفو باستخدام مقاومة متغيرة (Controlling a Servo with a Potentiometer)
تُعد المقاومة المتغيرة (Potentiometer) وسيلة بسيطة وعملية للتحكم اليدوي في موضع محرك السيرفو. حيث تقوم لوحة Arduino بقراءة الجهد التناظري الناتج عن المقاومة المتغيرة، ثم تحويل قيمة القراءة إلى أمر تحكم يحدد زاوية المحرك.

توصيلات المقاومة المتغيرة (Potentiometer Connections)
عند استخدام مقاومة متغيرة بقيمة نموذجية تبلغ 10 kΩ، تكون التوصيلات كما يلي:
- وصل أحد الطرفين الخارجيين للمقاومة المتغيرة بمنفذ 5V في لوحة Arduino.
- وصل الطرف الخارجي الآخر بمنفذ الأرضي (GND) في لوحة Arduino.
- وصل الطرف الأوسط، المعروف باسم المنزلق (Wiper)، بالمدخل التناظري A0.
- وصل سلك إشارة محرك السيرفو بالمنفذ الرقمي رقم 9.
- غذِّ محرك السيرفو من مصدر تغذية مناسب، مع توصيل طرفه الأرضي بمنفذ GND في لوحة Arduino.
يفترض هذا التوصيل استخدام لوحة Arduino متوافقة مع جهد تشغيل 5V. أما عند استخدام لوحة تعمل بجهد 3.3V، فيجب استخدام جهد التغذية المناسب لها والتأكد من عدم تعرض المدخل التناظري لجهد يتجاوز الحدود المسموح بها.
الكود البرمجي باستخدام Arduino (Arduino Code)
#include <Servo.h>
Servo myServo;
const int servoPin = 9;
const int potPin = A0;
void setup() {
myServo.attach(servoPin);
}
void loop() {
int potValue = analogRead(potPin);
// Map the analog reading to a conservative angle range
int angle = map(potValue, 0, 1023, 30, 150);
myServo.write(angle);
delay(15);
}
كيف تعمل الدائرة؟ (How It Works?)
في لوحة Arduino Uno التقليدية، تُرجع الدالة analogRead() عادةً قيمة تتراوح بين 0 و1023، وذلك وفق الجهد التناظري المقروء على المدخل.
تقوم الدالة map() بتحويل قيمة القراءة من هذا النطاق إلى زاوية تتراوح بين 30 و150 درجة.
عند تدوير المقاومة المتغيرة، تتغير قيمة الجهد عند المدخل A0، فتتغير زاوية الحركة المطلوبة، ويتحرك محرك السيرفو تبعًا لذلك. وقد تم استخدام نطاق حركة محدود في هذا المثال لتجنب إرسال أوامر تصل مباشرةً إلى الحدود الميكانيكية لمحرك غير معروف المواصفات.
ومع ذلك، يجب التأكد من نطاق الحركة الفعلي المسموح به للمحرك المستخدم. وإذا لاحظت تذبذبًا في قراءة المقاومة المتغيرة، فتحقق من صحة التوصيلات، ويمكنك أيضًا استخدام تقنيات ترشيح القراءات التناظرية برمجيًا للحصول على تحكم أكثر استقرارًا.
11. التحكم في عدة محركات سيرفو (Controlling Multiple Servo Motors)
يمكن استخدام لوحة Arduino للتحكم في عدة محركات سيرفو في الوقت نفسه، بشرط أن تكون اللوحة والمكتبة البرمجية ومخارج إشارات التحكم ومصدر التغذية مناسبة لعدد المحركات المستخدمة وأنواعها.

توصيل عدة محركات سيرفو (Wiring Multiple Servos)
عند توصيل عدة محركات سيرفو، يجب تنفيذ التوصيلات التالية لكل محرك:
- وصل سلك إشارة التحكم الخاص بكل محرك بمنفذ تحكم مستقل ومدعوم في لوحة Arduino.
- وصل سلك التغذية لكل محرك بمصدر تغذية يقع جهده ضمن نطاق التشغيل المحدد له.
- وصل سلك الأرضي لكل محرك بالطرف السالب لمصدر التغذية.
- وصل أرضي مصدر التغذية الخارجي بمنفذ GND في لوحة Arduino لتوفير مرجع أرضي مشترك.
لا تفترض أن دائرة التغذية الموجودة على لوحة Arduino تستطيع توفير التيار اللازم لتشغيل عدة محركات سيرفو في الوقت نفسه. فقد يكون إجمالي التيار المطلوب مرتفعًا، خاصةً عندما تتحرك المحركات معًا أو تقاوم أحمالًا ميكانيكية.
مثال برمجي للتحكم في محركي سيرفو (Example Code for Two Servos)
#include <Servo.h>
Servo servo1;
Servo servo2;
void setup() {
servo1.attach(9);
servo2.attach(10);
servo1.write(90);
servo2.write(90);
delay(1000);
}
void loop() {
servo1.write(45);
servo2.write(135);
delay(1000);
servo1.write(135);
servo2.write(45);
delay(1000);
servo1.write(90);
servo2.write(90);
delay(1000);
}
اعتبارات التغذية الكهربائية والمكتبة البرمجية (Power and Library Considerations)
في هذا المثال، يتم إرسال أوامر إلى محركي السيرفو للتحرك إلى مواضع مختلفة، ولكن ذلك لا يعني بالضرورة أنهما سيتحركان بالسرعة نفسها أو سيصلان إلى الموضع المطلوب في اللحظة نفسها.
عند تصميم مشروعات أكبر، يجب مراجعة عدد محركات السيرفو الذي تدعمه مكتبة Servo والقيود المتعلقة بالمؤقتات في اللوحة المستخدمة. إذ يختلف الحد الأقصى لعدد المحركات التي يمكن التحكم فيها باستخدام مكتبة Arduino Servo باختلاف بنية المتحكم واللوحة، كما قد يؤثر استخدام المؤقتات في وظائف PWM الأخرى.
في المشروعات التي تتضمن عددًا كبيرًا من محركات السيرفو، يمكن استخدام وحدة تحكم مخصصة لمحركات السيرفو (Dedicated Servo Controller) لتسهيل توليد إشارات التحكم وإدارتها. ومع ذلك، فإن استخدام هذه الوحدة لا يلغي الحاجة إلى مصدر تغذية مناسب يستطيع توفير التيار المطلوب لجميع المحركات.
12. مصدر تغذية محرك السيرفو ومتطلبات التيار (Servo Motor Power Supply and Current Requirements)
يُعد اختيار مصدر التغذية المناسب من أهم العوامل لضمان التشغيل المستقر والموثوق لمحرك السيرفو. فقد يعمل المحرك بصورة طبيعية عند عدم وجود حمل ميكانيكي، ولكنه قد يتسبب في إعادة تشغيل لوحة Arduino أو حدوث سلوك غير مستقر عند استخدامه لتحريك آلية ميكانيكية.

لماذا تحتاج محركات السيرفو إلى تيار كافٍ؟ (Why Servos Need Sufficient Current?)
يحتوي محرك السيرفو على محرك كهربائي يسحب تيارًا أثناء الحركة، وقد يحتاج إلى تيار إضافي عند تثبيت موضع عمود الخرج في مواجهة حمل ميكانيكي.
يمكن أن يرتفع استهلاك التيار بصورة ملحوظة إذا تعرض عمود المحرك للإعاقة أو اقترب السيرفو من أحد الحدود الميكانيكية المسموح بها.
لذلك، يجب اختيار مصدر التغذية بالاعتماد على جهد التشغيل المحدد للمحرك ومتطلبات التيار الفعلية المتوقعة، مع مراعاة تيار الذروة أو تيار التوقف (Stall Current) عندما تكون هذه البيانات متاحة.
يوضح الدليل الفني المقدم من شركة Pololu أهمية تغير استهلاك محركات السيرفو للتيار تبعًا للحمل، ولماذا يجب أخذ تيار التوقف في الاعتبار عند تحديد سعة مصدر التغذية.
كيفية اختيار مصدر التغذية المناسب (Selecting a Suitable Power Supply)
عند اختيار مصدر تغذية لمحرك سيرفو واحد أو عدة محركات، يجب مراعاة الإرشادات التالية:
- الجهد (Voltage): يجب أن يقع جهد التغذية ضمن نطاق التشغيل المحدد من الشركة المصنعة لمحرك السيرفو.
- سعة التيار (Current Capacity): يجب أن تكون كافية لتوفير التيار اللازم للأحمال المتوقعة والارتفاعات اللحظية في استهلاك جميع المحركات المتصلة.
- تنظيم الجهد (Regulation): استخدم مصدر تغذية منظمًا يستطيع المحافظة على جهد مناسب حتى عند تغير الحمل.
- الأسلاك (Wiring): استخدم أسلاكًا وموصلات تتحمل قيمة التيار المتوقع دون ارتفاع مفرط في درجة الحرارة أو حدوث هبوط غير مقبول في الجهد.
- الحماية (Protection): يُنصح باستخدام وسائل حماية مناسبة من زيادة التيار بما يتوافق مع مصدر التغذية والأسلاك المستخدمة.
لا تختَر مصدر التغذية اعتمادًا على تيار محرك السيرفو أثناء عدم وجود حمل فقط. فقد يكون مصدر التغذية المناسب لتشغيل محرك واحد دون حمل غير قادر على تشغيل عدة محركات تتحرك في الوقت نفسه.
هل تستطيع لوحة Arduino تشغيل محرك السيرفو؟ (Can an Arduino Power a Servo?)
تعتمد الإجابة على نوع لوحة Arduino، وطريقة توصيل مصدر التغذية، وطراز محرك السيرفو، والحمل الميكانيكي المتصل به.
قد يتمكن محرك سيرفو صغير من العمل في تجربة تعليمية بسيطة باستخدام مصدر التغذية الخاص بلوحة Arduino، ولكن لا ينبغي افتراض أن منفذ 5V أو مصدر التغذية عبر USB يستطيع توفير التيار الكافي لجميع أنواع محركات السيرفو وفي جميع ظروف التشغيل.
عند استخدام محركات سيرفو ذات متطلبات تيار أعلى، يُفضل توفير مصدر تغذية خارجي مناسب ومخصص لها. ويجب توصيل الطرف السالب لمصدر التغذية بمنفذ GND في لوحة Arduino حتى يكون هناك مرجع أرضي مشترك لإشارة التحكم.
لا توصل جهد مصدر التغذية مباشرةً بأي مدخل أو مخرج رقمي في لوحة Arduino. كذلك، تجنب توصيل مخرجي التغذية الموجبين لمصدرين مختلفين معًا، إلا إذا كانت الدائرة مصممة خصيصًا للسماح بذلك.
كيفية منع إعادة تشغيل Arduino واهتزاز السيرفو (Preventing Arduino Resets and Servo Jitter)
إذا لاحظت أن لوحة Arduino تُعيد التشغيل عند تحرك محرك السيرفو، فقد يكون السبب انخفاض جهد مصدر التغذية نتيجة زيادة الحمل الكهربائي. كما يمكن أن تؤدي حركة السيرفو إلى توليد تشويش كهربائي يؤثر في استقرار الدائرة، خاصةً إذا لم يتم تصميم التوصيلات ونظام التغذية بصورة مناسبة.
للتغلب على هذه المشكلات، تحقق من سعة مصدر التغذية، وصحة توصيلات الأرضي، ومقاومة الأسلاك، وجودة الموصلات الكهربائية.
وبحسب تصميم الدائرة، قد تساعد مكثفات إزالة التشويش وتثبيت الجهد (Decoupling Capacitors) الموضوعة بالقرب من مصدر تغذية السيرفو على تقليل التغيرات المفاجئة في الجهد. ومع ذلك، لا يمكن للمكثفات معالجة مشكلة مصدر التغذية ذي السعة غير الكافية بصورة أساسية، أو تعويض اختياره بقدرة أقل من متطلبات المحرك.
13. التطبيقات والمشروعات الشائعة لمحركات السيرفو (Common Servo Motor Applications and Projects)
تُعد محركات السيرفو خيارًا مثاليًا في المشروعات التي تتطلب حركة يمكن التحكم في موضعها واتجاهها بدقة، بدلًا من الاعتماد على الدوران المستمر فقط. ولهذا السبب، تُستخدم في العديد من التطبيقات الروبوتية والميكانيكية وأنظمة الأتمتة.

الذراع الروبوتية (Robot Arm)
يمكن استخدام عدة محركات سيرفو موضعية للتحكم في المفاصل المختلفة للذراع الروبوتية. حيث يحرك كل محرك أحد المفاصل إلى زاوية محددة وفقًا لأمر التحكم، مما يسمح للذراع بالوصول إلى مواضع مختلفة وتنفيذ حركات متعددة.
عند تصميم ذراع روبوتية، يجب حساب عزم الدوران المطلوب عند كل مفصل بعناية. فمحركات السيرفو القريبة من قاعدة الذراع قد تحتاج إلى تحمل وزن عدة مكونات موجودة بعدها، مما يجعل متطلبات عزم الدوران لديها أكبر مقارنة بالمحركات الموجودة عند الأطراف.
حامل الكاميرا المتحرك أفقيًا ورأسيًا (Pan-and-Tilt Camera Mount)
يمكن استخدام محركي سيرفو للتحكم في حركة الكاميرا في اتجاهين مختلفين:
- يتولى المحرك الأول تدوير المنصة أفقيًا للتحكم في اتجاه الكاميرا يمينًا ويسارًا.
- يتولى المحرك الثاني إمالة الكاميرا رأسيًا للتحكم في اتجاهها إلى أعلى وأسفل.
يُستخدم هذا التصميم في نماذج أنظمة المراقبة، وحوامل الكاميرات التي يتم التحكم فيها عن بُعد، ومشروعات تتبع الأجسام.
يجب التأكد من أن هيكل التثبيت يسمح بحرية الحركة، وألا يتسبب في إجبار أي من محركي السيرفو على تجاوز حدود حركته الميكانيكية.
نظام التوجيه في السيارات النموذجية (RC Steering System)
في السيارات النموذجية التي يتم التحكم فيها عن بُعد، يُستخدم محرك سيرفو موضعي لتحريك آلية التوجيه (Steering Linkage) وفقًا للأوامر المستقبلة من وحدة استقبال لاسلكية (RC Receiver) أو من متحكم دقيق (Microcontroller).
من الضروري ضبط محاذاة الوصلات الميكانيكية بصورة صحيحة. فقد يؤدي سوء المحاذاة إلى إجبار محرك السيرفو على العمل عند حدود حركته، مما يزيد من استهلاك التيار الكهربائي وقد يتسبب في تلف التروس أو المحرك الداخلي.
التحكم الآلي في فتحات التهوية أو الآليات الصغيرة (Automatic Vent or Small Mechanism)
يمكن استخدام محرك السيرفو لفتح أو إغلاق فتحات التهوية الصغيرة، أو تحريك بوابات ميكانيكية (Flaps)، أو تشغيل آليات بسيطة استجابةً لإشارات صادرة من المستشعرات.
على سبيل المثال، يمكن توصيل مستشعر لدرجة الحرارة بمتحكم دقيق، بحيث يرسل المتحكم أمرًا إلى محرك السيرفو لتعديل موضع فتحة التهوية وفقًا لدرجة الحرارة المقاسة.
وعند تنفيذ مثل هذه التطبيقات عمليًا، يجب مراعاة كيفية استجابة النظام في حالة حدوث عطل في المستشعر أو المتحكم أو مصدر التغذية أو محرك السيرفو نفسه، لضمان عدم حدوث تشغيل غير آمن أو غير متوقع.
نظام مسح باستخدام المستشعرات (Sensor Scanner)
يمكن استخدام محرك السيرفو لتدوير مستشعر الموجات فوق الصوتية (Ultrasonic Distance Sensor) أو أي مستشعر اتجاهي آخر ضمن نطاق زاوي محدد. ويستطيع المتحكم تسجيل القياسات عند زوايا مختلفة لإنشاء عملية مسح بسيطة للأجسام المحيطة.
يُعد هذا المشروع من التطبيقات التعليمية المفيدة للمبتدئين، حيث يساعد على فهم التحكم في محركات السيرفو، ودمج المستشعرات مع المتحكمات الدقيقة، بالإضافة إلى أساسيات معالجة البيانات.
14. استكشاف الأعطال ونصائح السلامة (Troubleshooting and Safety Tips)
يساعد فهم المشكلات الشائعة التي قد تواجه محركات السيرفو على تشخيص أعطال الدوائر بصورة أسرع، وتحديد أسبابها بدقة، وتجنب تلف المكونات الإلكترونية أو الميكانيكية.

| المشكلة | السبب المحتمل | الحل المقترح |
|---|---|---|
| محرك السيرفو لا يتحرك. | توصيلات غير صحيحة، أو عدم وجود تغذية كهربائية، أو غياب إشارة التحكم. | تحقق من ترتيب أطراف التوصيل، وجهد التغذية، والأرضي، وصحة البرنامج المرفوع إلى اللوحة. |
| إعادة تشغيل Arduino عند تحرك السيرفو. | انخفاض جهد مصدر التغذية أو زيادة التيار المطلوب. | استخدم مصدر تغذية مناسبًا، وافحص الأسلاك والتوصيلات الكهربائية. |
| اهتزاز السيرفو أو حركته بصورة متقطعة (Jitter). | عدم استقرار مصدر التغذية، أو تشويش إشارة التحكم، أو وجود حمل ميكانيكي، أو تذبذب أوامر التحكم. | تحقق من مصدر الطاقة والتوصيلات وتوليد الإشارة والمحاذاة الميكانيكية. |
| صدور صوت طنين عند أحد أطراف الحركة. | تجاوز أمر التحكم نطاق الحركة الميكانيكي المسموح به، أو وجود عائق يمنع الحركة. | قلل نطاق الحركة المطلوب وأزل العائق الميكانيكي. |
| عدم قدرة السيرفو على تحريك الحمل. | عدم كفاية عزم الدوران، أو زيادة الاحتكاك، أو ضعف مصدر التغذية. | أعد حساب متطلبات عزم الدوران، وافحص مصدر التغذية أثناء وجود الحمل. |
| ارتفاع درجة حرارة محرك السيرفو. | زيادة الحمل الميكانيكي، أو استمرار حالة التوقف، أو استخدام جهد تغذية غير مناسب. | افصل مصدر الطاقة، وافحص الحمل الميكانيكي، وتأكد من أن جهد التغذية ضمن النطاق المحدد. |
| تحرك السيرفو في الاتجاه الخاطئ. | عكس إعدادات تحويل أوامر التحكم أو اختلاف اتجاه التركيب الميكانيكي. | عدّل إعدادات التحكم أو غيّر ترتيب أو اتجاه التركيب الميكانيكي حسب الحاجة. |
| عدم تناسق حركة محركي سيرفو. | اختلاف خصائص المحركات أو الأحمال الميكانيكية أو ظروف التغذية الكهربائية. | افحص الأجزاء الميكانيكية، وقم بمعايرة كل محرك على حدة. |
تجنب إجبار عمود السيرفو على الحركة (Avoid Forcing the Servo Shaft)
لا تحاول إجبار محرك السيرفو أثناء تشغيله على تجاوز نقاط التوقف الميكانيكية الداخلية، كما يجب تجنب دفع عمود الخرج يدويًا بينما يكون المحرك في وضع تثبيت الموضع ويقاوم الحركة.
قد يؤدي ذلك إلى زيادة الإجهاد الواقع على التروس والمحرك الكهربائي الداخلي، مما قد يتسبب في تلف المكونات الميكانيكية.
إذا أصدر محرك السيرفو صوت طنين مستمرًا أو صوت احتكاك أو طحن غير طبيعي، افصل مصدر التغذية وافحص سبب المشكلة بدلًا من ترك المحرك يعمل تحت هذا الإجهاد.
التحقق من الحمل الميكانيكي (Check the Mechanical Load)
قد يعمل محرك السيرفو بصورة طبيعية دون وجود حمل، ولكنه قد يفشل عند توصيله بآلية تتطلب عزم دوران أكبر من قدرته الفعلية.
لذلك، يجب فحص الأجزاء الميكانيكية للتأكد من عدم وجود انحشار أو سوء محاذاة أو احتكاك زائد، بالإضافة إلى التأكد من أن الحمل لا يتجاوز القيم المسموح بها وفقًا لمواصفات المحرك.
إذا كان الحمل أكبر من قدرة السيرفو، فيجب اختيار محرك يوفر عزم دوران مناسبًا، أو إعادة تصميم الآلية الميكانيكية لتقليل القوة المطلوبة للحركة.
اختبار المحرك قبل دمجه في الآلية الميكانيكية (Test Before Integrating the Mechanism)
قبل توصيل محرك السيرفو بروبوت كامل أو بمجموعة ميكانيكية متكاملة، يُنصح بتنفيذ خطوات الاختبار التالية:
- تحقق من صحة التوصيلات الكهربائية ومصدر التغذية.
- ارفع برنامج اختبار بسيطًا إلى لوحة Arduino.
- ابدأ باستخدام نطاق حركة محدود وآمن.
- راقب المحرك للتأكد من عدم وجود أصوات غير طبيعية أو اهتزازات أو ارتفاع مفرط في درجة الحرارة.
- لا توصل الحمل الميكانيكي إلا بعد التأكد من أن المحرك يعمل بصورة مستقرة وموثوقة.
يساعد اتباع هذه الخطوات على تحديد ما إذا كانت المشكلة ناتجة عن الدائرة الكهربائية أو البرنامج أو التصميم الميكانيكي، مما يجعل عملية تشخيص الأعطال أكثر سهولة ودقة.
15. الأسئلة الشائعة حول محركات السيرفو (Frequently Asked Questions)
هل يمكن توصيل محرك السيرفو مباشرةً بلوحة Arduino؟ (Can I Connect a Servo Motor Directly to an Arduino?)
يمكن عادةً توصيل سلك إشارة السيرفو مباشرةً بأحد المخارج الرقمية المناسبة في لوحة Arduino. ولكن يجب توفير مصدر تغذية قادر على تلبية متطلبات التيار الخاصة بالمحرك. ولا ينبغي افتراض أن منفذ 5V في لوحة Arduino يستطيع تشغيل جميع محركات السيرفو بأمان.
كم عدد محركات السيرفو التي يمكن للوحة Arduino التحكم فيها؟ (How Many Servos Can an Arduino Control?)
يعتمد عدد محركات السيرفو التي يمكن التحكم فيها على طراز لوحة Arduino، والمكتبة البرمجية المستخدمة، وعدد المؤقتات المتاحة، ومتطلبات التطبيق نفسه. وتختلف الحدود القصوى لعدد المحركات التي تدعمها مكتبة Arduino Servo من لوحة إلى أخرى.
كما يجب التأكد من أن مصدر التغذية يستطيع توفير إجمالي التيار الذي تحتاج إليه جميع المحركات عند تشغيلها معًا.
ما الفرق بين السيرفو الموضعي والسيرفو ذي الدوران المستمر؟ (What Is the Difference Between a Positional Servo and a Continuous-Rotation Servo?)
يحرك محرك السيرفو الموضعي عمود الخرج إلى زاوية محددة ضمن نطاق الحركة المسموح به. أما محرك السيرفو ذو الدوران المستمر، فيستخدم إشارات تحكم مشابهة لتنظيم سرعة الدوران واتجاهه بدلًا من تحديد موضع زاوي ثابت.
هل يحتاج محرك السيرفو إلى دائرة قيادة للمحرك (Motor Driver)؟ (Does a Servo Need a Motor Driver?)
يحتوي محرك السيرفو التقليدي المستخدم في تطبيقات الهوايات (RC Servo) بالفعل على دوائر إلكترونية داخلية لقيادة المحرك والتحكم في موضعه. لذلك، لا يحتاج عادةً إلى دائرة قيادة خارجية من نوع H-Bridge، مثل تلك المستخدمة مع محركات التيار المستمر التقليدية غير المزودة بدوائر تحكم مدمجة.
ومع ذلك، فإنه لا يزال بحاجة إلى مصدر تغذية مناسب وإشارة تحكم متوافقة مع مواصفاته.
ماذا تعني نبضة سيرفو بعرض 1.5 مللي ثانية؟ (What Does a 1.5 ms Servo Pulse Mean?)
في العديد من محركات السيرفو المستخدمة في الهوايات، تؤدي نبضة بعرض يقارب 1.5 مللي ثانية إلى تحريك عمود الخرج نحو موضع المنتصف أو الوضع المحايد.
لكن المعنى الدقيق لهذه القيمة يعتمد على طراز المحرك ومعايرته. لذلك، لا ينبغي افتراض أن هذه النبضة تؤدي دائمًا إلى زاوية 90 درجة بالضبط.
هل يمكن التحكم في محرك السيرفو دون استخدام Arduino؟ (Can I Control Servo Position Without Arduino?)
نعم، يمكن التحكم في محركات السيرفو باستخدام متحكمات دقيقة أخرى متوافقة، أو وحدات تحكم مخصصة للسيرفو، أو مستقبلات أنظمة التحكم اللاسلكي (RC Receivers)، أو دوائر إلكترونية قادرة على توليد إشارة التحكم المطلوبة.
ويجب أن تكون وحدة التحكم قادرة على توفير إشارة متوافقة مع المحرك، مع توفير المرجع الكهربائي المشترك المناسب عند الحاجة.
لماذا يهتز محرك السيرفو؟ (Why Does My Servo Jitter?)
قد يحدث اهتزاز محرك السيرفو نتيجة عدة أسباب، من بينها عدم استقرار مصدر التغذية، أو عدم كفاية سعة التيار، أو وجود تشويش في إشارة التحكم، أو تذبذب قراءات المستشعرات، أو الاهتزازات الميكانيكية، أو استخدام نطاق غير مناسب لنبضات التحكم.
يُفضل البدء بفحص مصدر التغذية والتوصيلات الكهربائية، ثم الانتقال إلى فحص إشارة التحكم والحمل الميكانيكي لتحديد السبب بدقة.
هل يستطيع محرك السيرفو الدوران بزاوية 360 درجة؟ (Can a Servo Rotate 360 Degrees?)
عادةً ما يمتلك محرك السيرفو الموضعي القياسي نطاق حركة زاويًا محدودًا. أما محرك السيرفو ذي الدوران المستمر، فيستطيع الدوران بصورة متواصلة، ولكنه يتحكم عادةً في سرعة الدوران واتجاهه بدلًا من تحديد موضع زاوي مطلق.
وتتوفر أيضًا أنواع متخصصة من محركات السيرفو بنطاقات حركة وخصائص تغذية راجعة مختلفة، وفقًا للتطبيق المطلوب.
هل يمكن استخدام مكتبة Arduino Servo للتحكم في السيرفو ذي الدوران المستمر؟ (Can I Use the Arduino Servo Library for a Continuous-Rotation Servo?)
نعم، يمكن استخدام مكتبة Servo لتوليد أوامر التحكم للعديد من محركات السيرفو ذات الدوران المستمر. ولكن قيمة الأمر في هذه الحالة تعبّر عن طلب متعلق باتجاه الدوران وسرعته، وليس عن زاوية محددة لعمود الخرج.
لذلك، يجب معايرة قيمة التوقف أو الوضع المحايد (Neutral) واستجابة السرعة وفقًا لطراز المحرك المستخدم.
ما الفرق بين عزم الدوران وسرعة محرك السيرفو؟ (What Is the Difference Between Servo Torque and Speed?)
يعبر عزم الدوران (Torque) عن القوة الدورانية التي يستطيع محرك السيرفو توليدها عند عمود الخرج، بينما تعبّر السرعة (Speed) عن مدى سرعة تحرك العمود خلال زاوية محددة.
تعتمد كلتا الخاصيتين على تصميم المحرك وظروف تشغيله، ولذلك يجب تقييمهما مع مراعاة الحمل الميكانيكي وجهد التغذية المستخدم، وليس كل خاصية بمعزل عن الأخرى.
16. الخاتمة (Conclusion)
تُعد محركات السيرفو من المكونات العملية والمهمة في المشروعات التي تتطلب التحكم الدقيق في الحركة والموضع، بدءًا من الأذرع الروبوتية البسيطة وحوامل الكاميرات المتحركة، وصولًا إلى السيارات النموذجية وأنظمة الأتمتة الصغيرة.

إن احتواء محرك السيرفو على محرك كهربائي وعلبة تروس وآلية تغذية راجعة ودوائر إلكترونية للتحكم يجعله أكثر سهولة في الاستخدام عند الحاجة إلى التحكم في الموضع، مقارنةً بمحرك التيار المستمر التقليدي.
ولضمان تشغيل محرك السيرفو بصورة صحيحة وموثوقة، يجب تحديد نوعه ومراجعة مواصفاته الفنية، وتوصيل أسلاك التغذية والأرضي وإشارة التحكم بصورة صحيحة، بالإضافة إلى استخدام مكتبة برمجية أو وحدة تحكم متوافقة معه.
توفر مكتبة Servo الخاصة بمنصة Arduino نقطة بداية سهلة لإرسال أوامر تحديد الموضع، بينما تتيح المقاومة المتغيرة (Potentiometer) طريقة عملية وبسيطة لاختبار التحكم اليدوي في حركة المحرك.
والأهم من ذلك، هو توفير مصدر تغذية قادر على تلبية متطلبات المحرك، وتجنب إجباره على تجاوز حدود حركته الميكانيكية، واختيار طراز يمتلك عزم دوران مناسبًا للحمل المطلوب تحريكه.
وبمجرد فهم هذه الأساسيات، يمكنك تطوير مشروعاتك لتشمل التحكم في عدة محركات سيرفو، وتنفيذ أنظمة حركة تعتمد على المستشعرات، بالإضافة إلى تطبيق تقنيات أكثر تقدمًا في التحكم بالحركة.



Leave a comment
You must be logged in to post a comment.