Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

ServoTimer2 Library meistern: Einfache Anleitung für Servo-Sweep

Komponenten und Zubehör

Servo (z. B. Tower Pro MG996R oder SG90) × 1
Arduino UNO × 1
Jumper-Kabel × 1

Projektbeschreibung

Hintergrund: Timer-Konflikt

Bei meinem humanoiden Roboter-Projekt wollte ich Sprachausgabe (TMRpcm-Library) und Servo-Steuerung gleichzeitig nutzen. Beide Bibliotheken nutzen standardmäßig Timer 1 des Arduino – sie blockieren sich gegenseitig.

Lösung: ServoTimer2 Library, die stattdessen Timer 2 verwendet. Im Netz fand ich kaum Tutorials dazu – daher diese Anleitung.

Schritt 1: Hardware zusammenbauen

Schritt 2: ServoTimer2 Library installieren

  1. Herunterladen: github.com/nabontra/ServoTimer2
  2. ZIP-Datei in Arduino-Bibliotheken-Ordner entpacken oder in Arduino IDE: Sketch → Bibliothek einbinden → .ZIP-Bibliothek hinzufügen

Schritt 3: Der Code – Vergleich Servo.h vs. ServoTimer2

Standard Servo.h (Winkel in Grad)

#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 (Pulsweite in Mikrosekunden)

#include "ServoTimer2.h"
ServoTimer2 servo1;

void setup() {
  servo1.attach(6);
}

void loop() {
  servo1.write(750);   // ~0°   (min. Pulsweite)
  delay(1000);
  servo1.write(1500);  // ~90°  (Mittelstellung)
  delay(1000);
  servo1.write(2250);  // ~180° (max. Pulsweite)
  delay(1000);
}

Wichtig: Die Pulsweiten (750–2250 µs) variieren je nach Servo-Modell. Experimentieren Sie mit Werten – das beschädigt den Servo nicht. Typisch: 750 µs = 0°, 1500 µs = 90°, 2250 µs = 180°. Manche Servos benötigen bis 2700 µs für 180°.

Schritt 4: Testen & Kalibrieren

  1. Arduino mit Strom versorgen
  2. Mit Winkelmesser oder Skala prüfen, welcher Pulsweite welcher Winkel entspricht
  3. Werte für Ihr Projekt notieren

Code-Beispiele

Standard Servo 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);
}

ServoTimer2 Sweep

#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);
}

Schaltplan

ServoTimer2 Library meistern: Einfache Anleitung für Servo-Sweep

Quellcode & mehr: GitHub Repository

Herstellungsprozess

  1. Wie Molybdän die moderne Industrie formt: Nutzung, Vorteile und Versorgungsdynamik
  2. Arduino-Roboter mit Raspberry Pi bauen: Schritt-für-Schritt-Anleitung
  3. Simple Pi Robot: 2-WD Autonomer Rover mit Raspberry Pi bauen
  4. Der komplette Leitfaden zur Glasfaserproduktion
  5. realloc() in C: Syntax, Best Practices & Beispiel
  6. C's free() Funktion meistern: Praktischer Leitfaden & Beispiel
  7. Thermistor (NTC) einfach nutzen: Schritt-für-Schritt Arduino-Anleitung
  8. Progressive Cutaway Animation in SolidWorks erstellen – Tutorial
  9. Gewinnbringenden Prototyp bauen: Schritt-für-Schritt-Anleitung für schnelle Produktentwicklung
  10. Schleiftechniken für Werkzeugschleifmaschinen meistern: Praktischer Leitfaden