SG90 Servo Not Moving? Classroom Troubleshooting Guide for STEM Teachers
Learn how to troubleshoot SG90 servo issues in classroom robotics. Covers wiring, code, and power tips for stable servo control in Arduino projects.
Share
SG90 Servo Not Moving? Classroom Troubleshooting Guide
Every STEM teacher knows the scene: students eagerly upload their code, only to watch the SG90 servo... do nothing. No motion, maybe a faint buzz, and then puzzled faces all around. Fortunately, this is one of the easiest robotics problems to fix once you understand the cause.
This guide walks through five classroom-tested troubleshooting steps to get your SG90 servo moving again — and teaches students the fundamentals of debugging electronics along the way.
1️⃣ Check the Wiring First
The SG90’s three wires must connect precisely:
- Brown → GND (ground)
- Red → 5 V (power)
- Orange → Signal pin (D9 or D10) on Arduino
If students reverse the brown and red wires, the servo won’t move (and could overheat). Encourage learners to trace each wire carefully before powering up. A quick classroom tip: mark power wires with a red sticker and ground with black or brown tape.
🧩 View the SG90 Servo Guide with wiring diagrams
2️⃣ Test the Power Supply
Servos draw bursts of current that can exceed what the Arduino’s USB port can deliver. If several students are powering servos from USB, some may see flickering LEDs or frozen movement.
Fix:
- Use an external 5 V DC supply (like a battery pack or LM2596 power module).
- Always connect all grounds together (Arduino GND and servo GND).
Explain that this is the same principle used in real robots: stable power equals reliable motion.
🧩 Learn about using the LM2596 Power Module
3️⃣ Verify the Code
A single incorrect pin or missing command can stop everything. Use this minimal test sketch in class:
#include <Servo.h>
Servo myServo;
void setup() {
myServo.attach(9);
}
void loop() {
myServo.write(90);
delay(1000);
myServo.write(0);
delay(1000);
}
If the servo doesn’t move, try pin 10 and confirm the code uploaded successfully. This exercise also reinforces the importance of testing small code modules before full builds — a key computational thinking skill.
4️⃣ Look for Signal Issues
If the servo buzzes but doesn’t rotate, the signal may be weak or noisy. Long breadboard wires, loose jumper leads, or worn servo cables often cause this.
Classroom tip: Keep jumper wires under 20 cm for stable signals, and gently twist signal and ground wires together to reduce noise.
5️⃣ Check for Mechanical Binding
Sometimes the issue isn’t electrical — it’s physical. Remove any attached horns, wheels, or arms. If the servo shaft moves freely when powered, the problem was mechanical resistance.
This moment helps students connect mechanical and electrical systems — one of the best integrated learning outcomes in robotics education.
Wrap-Up: Teaching Debugging Through Practice
By following these steps, students learn more than just “fixing a servo.” They learn the engineering mindset: observe, hypothesize, test, and iterate.
Encourage learners to record their troubleshooting process in a short engineering log. You can even turn it into a 15-minute “Servo Challenge” where teams race to identify and fix a deliberate wiring error.
For further learning, explore our Technical Centre for schematics, guides, and classroom-friendly code snippets