====== Controlling a Servo Motor ======
This scenario demonstrates how to control the position of a servo motor using Arduino. Servo motors are used for precise angular positioning in robotics and automation.
===== Prerequisites =====
* Familiarize yourself with Arduino hardware reference.
* Install the built-in Arduino Servo library.
* Understand basic PWM concepts for servo control.
===== Hardware Connections =====
| Component | Arduino Pin |
|--------------|-------------|
| Servo Signal | 10 (PWM) |
Servo specifications:
* Standard miniature servo (SG90 or similar)
* Voltage: Typically 5V
* PWM frequency: 50 Hz
* Rotation range: ~0° to 180°
===== Suggested Knowledge Resources =====
* Arduino programming fundamentals
* [[taltech:arduino:hardware|Arduino Uno Hardware Reference]]
===== Task =====
Write a program that rotates the servo sequentially to 0°, 90°, and 180°, pausing for one second at each position.
===== Steps =====
=== Step 1: Include Servo Library ===
#include
=== Step 2: Initialize Servo Object ===
Declare a servo object and assign it a pin:
Servo myServo;
const int servoPin = 10;
=== Step 3: Setup ===
Attach the servo object to the servo pin:
void setup() {
myServo.attach(servoPin);
}
=== Step 4: Control Loop ===
Program the servo rotation sequence:
void loop() {
myServo.write(0); // Move to 0 degrees
delay(1000); // Wait 1 second
myServo.write(90); // Move to 90 degrees
delay(1000); // Wait 1 second
myServo.write(180); // Move to 180 degrees
delay(1000); // Wait 1 second
}
===== Validation =====
Observe the servo motor rotate precisely to the angles 0°, 90°, and 180°, pausing clearly at each position.
===== Troubleshooting =====
If the servo does not move or jittering occurs:
* Check the servo connections (signal to pin 10, power, and ground).
* Ensure power supply is stable (servo typically requires 5V).
* Verify servo library inclusion and pin assignment.