⚙️ MG90S Micro Servo (Metal Gear, 180°)
MG90S er den lille micro-servo i samme format som den blå SG90 – men med metaltandhjul, der ikke knaser, første gang robotarmen rammer bordet. Du beder den om en vinkel mellem 0 og 180°, og så holder den positionen. Perfekt til styretøj, låse, robotarme og kamera-pan/tilt.
Du skal bruge: MG90S, en Arduino/ESP32 og – ved mere end én servo – en ekstern 5 V-forsyning.
🛒 Køb MG90S 📄 Producentens specifikationer (TowerPro)⚡ Hurtige specifikationer
| Parameter | Værdi |
|---|---|
| Type | Analog micro-servo med metalgear |
| Vinkel | ca. 0–180° (positionsstyret) |
| Driftsspænding | 4,8–6 V (5 V er perfekt) |
| Moment (stall) | 1,8 kg·cm ved 4,8 V – ca. 2,2 kg·cm ved højere spænding (TowerPro angiver 6,6 V) |
| Hastighed | 0,10 s/60° ved 4,8 V, 0,08 s/60° ved 6 V |
| Vægt | 13,4 g |
| Mål | 22,8 × 12,2 × 28,5 mm |
| Dead band | 1 µs |
| Styresignal | PWM 50 Hz (20 ms periode). Ca. 1 ms = 0°, 1,5 ms = 90°, 2 ms = 180° – mange MG90S skal have ca. 0,5–2,5 ms for at nå hele vejen rundt |
| Tilbehør | Servo-arme (horns) og skruer |
📌 Pinout
| Pin | Navn | Funktion | Forbindes til |
|---|---|---|---|
| Brun ledning | GND | Minus | GND (fælles med microcontrolleren) |
| Rød ledning (midten) | V+ | Forsyning 4,8–6 V | 5 V (én servo) eller ekstern 5 V-forsyning |
| Orange ledning | Signal | PWM-styresignal | Digital pin, fx D9 |
Stikket er et 3-pins 2,54 mm hunstik. Den røde ledning sidder i midten, så et omvendt stik ikke vender plus og minus – men signalet havner forkert, og servoen gør ingenting.
🔌 Sådan forbinder du den
| Servo | UNO / Nano | ESP32 |
|---|---|---|
| Brun (GND) | GND | GND |
| Rød (V+) | 5V (kun én servo) – ellers ekstern 5 V | 5V/VIN (kun én servo) – ellers ekstern 5 V |
| Orange (signal) | D9 | GPIO 13 (3,3 V-signal virker normalt fint) |
| Ekstern 5 V-forsyningens minus | GND (fælles jord!) | GND (fælles jord!) |
💻 Eksempelkode
Arduino UNO/Nano: biblioteket Servo følger med Arduino IDE.
// MG90S sweep 0-180 grader (KompoNemt)
#include <Servo.h>
Servo servo;
void setup() {
servo.attach(9, 500, 2400); // pin, min- og max-puls i µs
}
void loop() {
for (int v = 0; v <= 180; v++) { servo.write(v); delay(15); }
delay(500);
for (int v = 180; v >= 0; v--) { servo.write(v); delay(15); }
delay(500);
}
ESP32: installer biblioteket ESP32Servo (Library Manager) og brug det samme sketch med disse ændringer:
#include <ESP32Servo.h>
Servo servo;
void setup() {
servo.setPeriodHertz(50); // standard servo-frekvens
servo.attach(13, 500, 2400); // GPIO 13
}
💡 KompoNemt-tip fra værkstedet
- Strøm er alt: En servo kan trække langt over 100 mA, når den starter eller bliver blokeret. Én servo på Arduinoens 5V-pin går som regel, to eller flere → ekstern 5 V-forsyning (og fælles GND).
- Kondensator: 470–1000 µF over servoforsyningen (tæt på servoen) tager de værste strømspidser og stopper mange mystiske genstarter.
- Brummer i yderpositionen? Den presser mod sit mekaniske stop. Gør puls-intervallet lidt mindre (fx 600–2300 µs) eller kør kun til 5–175°.
- Drej ikke akslen med hånden med kraft – metalgear er stærke, men ikke uforgængelige.
- Spole-tip: En servo har sin egen driver indbygget, så du skal hverken bruge transistor eller flyback-diode – kun signal og en stabil forsyning.
🔧 Fejlfinding
- Servoen rører sig ikke: Mangler fælles GND, eller signalledningen sidder på en anden pin end i koden.
- Arduinoen genstarter, når servoen bevæger sig: Strømmangel. Ekstern 5 V-forsyning + kondensator.
-
Den når kun ca. 0–90° eller 0–150°: Puls-intervallet er for smalt. Brug
attach(pin, 500, 2400). - Den ryster/jitter: Ustabil forsyning eller lange signalledninger. Kort ledning, kondensator og fælles GND.
- Den bliver varm og brummer konstant: Den arbejder mod en blokering eller sit endestop. Ret vinklerne eller mekanikken.
Sidder du fast? Skriv til os – vi hjælper gerne.