ServoTimer2 Bibliotheek: Eenvoudige Handleiding voor Servo Sweep Control
Onderdelen en benodigdheden
| Onderdeel | Aantal |
|---|---|
| Servo (Tower Pro MG996R of SG90) | 1 |
| Arduino UNO | 1 |
| Jumper draden (standaard) | 1 |
Over dit project
Inleiding
Ik bouwde recent een humanoïde robot – wat betekent: veel servomotoren. Alles werkte prima, tot ik de robot wilde laten praten. Daarvoor had ik de TMRpcm-bibliotheek nodig. Maar zowel Servo.h als TMRpcm gebruiken Timer1 van de Arduino. Je kunt niet twee bibliotheken tegelijkertijd gebruiken die dezelfde timer claimen. Resultaat: als de robot praat, werken de servos niet meer.
De oplossing: de ServoTimer2-bibliotheek, die Timer2 gebruikt. Op internet vond ik geen duidelijke tutorials over hoe deze bibliotheek werkt. Daarom deze handleiding: we besturen één servo met ServoTimer2 en maken een simpele sweep-code.
Stap 1: Onderdelen & Montage

Hoofdonderdeel: een servomotor (ik gebruik een micro servo SG90, elk model werkt). Plak een servo-arm op stevig karton (voor zichtbaarheid van graden) en bevestig hem aan de servo.
Stap 2: ServoTimer2-bibliotheek downloaden en toevoegen

- Download de bibliotheek van GitHub.
- Plaats de map in je Arduino
libraries-map. - In de Arduino IDE: Sketch → Include Library → Add .ZIP Library en selecteer het gedownloade zip-bestand.
Nu ben je klaar.
Stap 3: Simpele schakeling bouwen

- Servo rode draad → Arduino 5V (VCC)
- Grijze draad → GND
- Oranje draad → Digitale pin 6
Stap 4: De Code
Eerst kijken we naar de standaard Servo.h sweep:
#include <Servo.h>
Servo servo1;
void setup() { servo1.attach(6); }
void loop() {
servo1.write(0); delay(1000);
servo1.write(90); delay(1000);
servo1.write(180); delay(1000);
}
Bij Servo.h geef je graden op (0–180). Bij ServoTimer2 geef je de pulsbreedte (pulse width) in microseconden. De servo beweegt naar de positie die bij die pulsbreedte hoort.
- 1500 µs ≈ 90°
- Minimum: 750 µs ≈ 0°
- Maximum: 2250 µs ≈ 180°
Let op: exacte waarden verschillen per servo. Experimenteer rustig – dit kan je servo niet beschadigen.
Hetzelfde sweep-programma met ServoTimer2:
#include "ServoTimer2.h"
ServoTimer2 servo1;
void setup() { servo1.attach(6); }
void loop() {
servo1.write(750); // min pulsbreedte ≈ 0°
delay(1000);
servo1.write(1500); // pulsbreedte ≈ 90°
delay(1000);
servo1.write(2250); // max pulsbreedte ≈ 180°
delay(1000);
}
Voer de code uit en meet met een graadschaal welke pulsbreedte bij welke hoort. Zo bouw je je project verder.
Stap 5: Arduino aanzetten en experimenteren

Meet de hoeken bij verschillende pulsbreedtes. Veel plezier met maken!
Code
Servo sweep.code C/C++
#include <Servo.h>
Servo servo1;
void setup() { servo1.attach(6); }
void loop() {
servo1.write(0); delay(1000);
servo1.write(90); delay(1000);
servo1.write(180); delay(1000);
}
ServoTimer2.sweep.code C/C++
#include "ServoTimer2.h"
ServoTimer2 servo1;
void setup() { servo1.attach(6); }
void loop() {
servo1.write(750); delay(1000);
servo1.write(1500); delay(1000);
servo1.write(2250); delay(1000);
}
Schema's

Broncode: GitHub
Productieproces
- Een Arduino-aangedreven Robot Bouwen met Raspberry Pi: Een Stap-voor-Stap Gids
- Simple Pi Robot – Bouw een 2-WD Autonome Rover met Raspberry Pi
- Thermistor Gebruik Gemaakt Eenvoudig: Stap-voor-Stap Arduino Handleiding
- Progressieve Doorsnede Animatie Maken in SolidWorks – Stap-voor-Stap Tutorial
- Freesmes Slijper Technieken Beheersen: Een Praktische Gids
- Bouw een Winnend Prototype: Stapsgewijze Gids voor Snelle Productontwikkeling
- Hoe molybdeen de moderne industrie vormt: toepassingen, voordelen en leveringsdynamiek
- De Complete Gids voor Glasvezelproductie
- realloc() in C gebruiken: Syntaxis, best practices & voorbeeld
- Beheersing van C's free() functie: Praktische gids & voorbeeld
- VHDL-functies onder de knie krijgen: een praktische gids voor efficiënt ontwerp