Automatisierter Löt-Roboterarm: Präzision, Geschwindigkeit & DIY-Bauanleitung
Komponenten und Zubehör
| Schrittmotor 28BYJ-48 mit ULN2003 Treiber | × | 1 |
| Arduino UNO | × | 1 |
| Servo TowerPro MG955 (Metallgetriebe) | × | 1 |
| I2C Serial LCD 1602 Modul | × | 1 |
| Step-Down Modul (Buck Converter) | × | 1 |
| NEMA 17 Schrittmotor (OpenBuilds) | × | 1 |
Benötigte Werkzeuge
- Lasercutter (für Gehäuseteile)
- Dremel / Rotary Tool mit Fräsbits
Apps und Online-Dienste
- Arduino IDE
- Microsoft Visual Studio 2015 (für eventuelle PC-Software)
Über dieses Projekt
Einführung
Die Idee entstand bei der Recherche zu Roboterarmen – wenige Projekte decken automatisiertes Löten/Schweißen ab. Mit Vorerfahrung im Roboterarm-Bau entstand ein praxistaugliches, effektives Gerät.
Design-Orientierung an Industrie-Robotern und Open-Source-Projekten – visuelle Erfassung hilft dem Gehirn, die richtige Form zu finden.
Schritt 1: Design
Erste professionelle Entwürfe waren zu komplex. Eigenes Design in Google SketchUp 2017 Pro: Jedes Teil für definierte Montagereihenfolge konstruiert. Virtuelles Fertigmodell als Leitfaden für Lötkolben-Auswahl & Dimensionierung.
Schritt 2: Betrieb & Installation – Probleme & Lösungen
- Arme zu schwer für kleine Schrittmotoren. → Nächste Lasercutter-Version: leichtere Arme.
- Hohe Reibung am Drehgestell (Kunststoff auf Kunststoff). Erste Lösung: Größerer Schrittmotor (NEMA 17) + Basis-Neukonstruktion. Problem blieb: Reibung + falsche Strombegrenzung am Treiber (Potentiometer nicht nach Herstellervorgabe per Spannungsmessung justiert). Endgültige Lösung: Komplettes Basis-Redesign mit Metallgetriebe-Servo statt Zahnradgetriebe.
- Spannungsversorgung: Arduino über DC-Buchse (7–12 V), USB (5 V) oder Vin (7–12 V). 5V/3,3V-Pins umgeht Regler. Entscheidung: Spezielles USB-Kabel (5 V von PC/Netzteil) + Step-Down-Modul (Buck Converter) für stabile 5 V an allen Komponenten.
Schritt 3: Modifikationen
Arme verkürzt, Servo-Aussparung für Metallgetriebe-Servo integriert. Servo dreht 180° lastfrei (hohes Drehmoment). I2C für LCD: nur 2 Pins, bis zu 8 Geräte an einem Bus (Hardware-I2C-Pins nötig).
Schritt 4: Lötkolben-Halter / Greifer
Metallgetriebe-Servo für Lötkolben-Gewicht. Problem: Servo-Zittern/Vibration. Lösung: Mechanische Endlagen per Code begrenzen.
servo.attach(9, 1000, 2000);
servo.write(constrain(angle, 10, 160));
Nicht alle Servos schaffen 180°. Test mit servo.writeMicroseconds() (Bereich 1000–2000 µs, oft 600–2400 µs möglich). Summen = mechanischer Anschlag. constrain() verhindert Überfahren.
Schritt 5: Programmierung
Bibliotheken:
#include <AccelStepper.h>
#include <MultiStepper.h>
#include <Servo.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
Code
Stepper X Y Z Steuerung (Arduino)
#include "AccelStepper.h"
AccelStepper stepperX(1, 2, 3); // Interface 1 = Step/Dir, Pin 2=STEP, 3=DIR
AccelStepper stepperZ(1, 5, 6); // Pin 5=STEP, 6=DIR
AccelStepper stepperY(1, 7, 8); // Pin 7=STEP, 8=DIR (Korrektur: war 7,8,9 im Original)
long TravelX, TravelZ, TravelY;
int move_finished = 1;
void setup() {
Serial.begin(9600);
Serial.println("Enter Travel distance separated by comma: X,Z,Y");
Serial.print("Enter Move Values Now: ");
stepperX.setMaxSpeed(500); stepperX.setAcceleration(500);
stepperZ.setMaxSpeed(250); stepperZ.setAcceleration(250);
stepperY.setMaxSpeed(250); stepperY.setAcceleration(250);
}
void loop() {
while (Serial.available() > 0) {
move_finished = 0;
TravelX = Serial.parseInt(); Serial.print(TravelX); Serial.print(" X Travel, ");
TravelZ = Serial.parseInt(); Serial.print(TravelZ); Serial.print(" Z Travel, ");
TravelY = Serial.parseInt(); Serial.print(TravelY); Serial.println(" Y Travel");
stepperX.moveTo(TravelX);
stepperZ.moveTo(TravelZ);
stepperY.moveTo(TravelY);
delay(1000);
Serial.print("Moving Steppers into position...");
}
if ((stepperX.distanceToGo() != 0) || (stepperZ.distanceToGo() != 0) || (stepperY.distanceToGo() != 0)) {
stepperX.run(); stepperZ.run(); stepperY.run();
}
if ((move_finished == 0) && (stepperX.distanceToGo() == 0) && (stepperZ.distanceToGo() == 0) && (stepperY.distanceToGo() == 0)) {
Serial.println("COMPLETED!");
Serial.println("");
Serial.println("Enter Next Move Values (0,0,0 for reset): ");
move_finished = 1;
}
}
Hinweis: Originalcode hatte Pin-Konflikt (stepperY auf 7,8,9 aber 9 für Servo). Korrigiert auf 7,8.
Schaltpläne

Herstellungsprozess
- Makerarm: Der All-in-One-Desktop-Roboterarm für Maker
- Präzise Motorsteuerung für fortschrittliche robotische Systeme
- Infineon stellt IMC300 Motor Controller mit integriertem Arm Cortex-M0 für erhöhte Flexibilität vor
- Trinamic & Maxim Integrated veröffentlichen Referenzdesign zur Beschleunigung von End-of-Arm Tooling in Industrierobotik
- Wie Roboterarme gebaut werden: Design und Funktion
- Wie Industrieroboterarme die Fertigung transformieren: Wesentliche Vorteile erklärt
- Servomotoren in Roboterarmen: Funktion, Vorteile & Zukunftsimpact
- ABB FlexLoader Zellen: Automatisierte Teilebestückung für Effizienz & Kostensenkung
- SCARA-Robotermarkt erreicht 14,78 Mrd. US$ bis 2026 – Automatisierungswachstum treibt an
- Industrieroboter-Arme: Treiber der Fertigungsrevolution