Arduino-gesteuerte 3D-Drahtbiegemaschine bauen: Schritt-für-Schritt-Anleitung
In diesem Tutorial zeige ich den Bau einer Arduino-basierten 3D-Drahtbiegemaschine. Ein klassisches mechatronisches System: Mechanik, Elektronik, Informatik. Ideal für Ingenieurstudierende oder Mechatronik-Einsteiger. Video oder schriftliche Anleitung unten. Draht läuft durch Richtrollen (Richtwalzen). Ein Schrittmotor fördert den Draht präzise zum Biegewerkzeug, das einen weiteren Schrittmotor und ein kleines Servo nutzt. Ein dritter Schrittmotor (Z-Achse) dreht das Biegewerkzeug um den Draht – so entstehen 3D-Formen. Gesteuert wird alles von einem Arduino auf einer Custom-PCB. Software: Eigene Funktionen für Formen (Stern, Würfel, Ständer) und manueller Modus (Befehle per Serial Monitor). Design in 3D-CAD. Modell auf Thangs zum Download & Browser-Exploration. Teile wie Zahnräder, Lagerböcke, Wellenkupplungen wurden 3D-gedruckt (STL-Dateien oben). Mein Creality CR-10 lieferte tolle Qualität. Weitere Teile aus MDF (8 mm) und Sperrholz (18 mm) per Kreissäge zugeschnitten. Basis: zwei MDF-Platten, vier Sperrholz-Säulen, Holzleim & Schrauben. Obere Platte: 3D-gedruckte Lagerböcke (8 mm Schrauben) mit 3-mm-MDF-Distanzplatten für korrekte Höhe. 6202-Kugellager (35 mm Außendurchmesser, 15 mm Innendurchmesser) einpressen. Durch diese Lager läuft ein 15-mm-Hohlwelle (Kupferrohr, ~30 cm) – die Z-Achse. Zwischen den Lagern: 3D-gedrucktes Zahnrad (Modul 1.5, 30 Zähne) mit M3-Nuten/Schrauben auf Welle fixieren. Z-Achsen-Schrittmotor: 3D-gedruckter Halter, 18-Zähne-Rad auf Motorwelle (gleiche Befestigung). Halter mit Langlöchern für korrektes Zahneingriff. Vorschub-Schrittmotor direkt auf Oberplatte montieren (4 Schrauben, Muttern als Distanzhülsen). Auf Welle: 3D-gedruckter Wellenkupplung mit Kupferrohr als Kontaktfläche für Drahtvorschub. Gegenüber: Hebel mit Lager, der gegen Vorschub drückt. Sperrholzstück mit T-Nut & Schraube für einstellbaren Anpressdruck. Drahtrichtsystem: Drei M8-Schrauben befestigen Sperrholzstück mit Bohrungen. Rollen = Lager + 3D-gedruckte gerillte Außenringe. Drei Rollen links, zwei rechts. Rechte Seite mit Schlitzen für bündige Schrauben. Zwei Schrauben + Muttern ziehen beide Seiten zusammen. Zwei weitere Sperrholzstücke als Drahtführungen vor/nach Richtrollen. Biegewerkzeug: MDF-Platte zurechtsägen (Hand-, Laubsäge, Feile). 38-mm-Lochsäge für NEMA-23-Schrittmotor (Biegemotor). Kleinere Bohrungen für andere Teile. NEMA 23 mit M4-Schrauben befestigen. 18-Zähne-Rad (Modul 2.5) auf Motorwelle. Kupplung mit großem 30-Zähne-Rad (Custom-Design mit integrierter Platte für MG996R-Servo). Servo bewegt Zahnstange (Stift), der aus dem Rad herausfährt und Draht biegt. 5-Minuten-Epoxid: Lager auf Rad, Kupferrohr auf Zahnstange als Kontaktfläche. Großes Rad mit M8-Schraube fixieren, Zahnstange & Servo einbauen, Servo-Horn mit zwei M3-Schrauben an Zahnstange. Fertig. Biegewerkzeug an Z-Achse: Zwei 3D-gedruckte Wellenklemmen an Biegeplatte (M6), in Hohlwelle stecken, Muttern einsetzen, festziehen. Alle beweglichen Teile funktionieren. Fehlt: 3-mm-Düse an Drahtauslass, Mikro-Endschalter unten am Bieger für Nullposition. Mechanik fertig – jetzt Elektronik & Programmierung. Drei Schrittmotoren via drei DRV8825-Treiber. 12 V Netzteil (≥3 A). Servo (MG996R) separat über LM7805 5-V-Regler (Arduino-5V-Regler könnte überlasten). Endschalter mit Pull-Up an Digitalpin. Komponenten-Links: Custom PCB (EasyEDA) für übersichtliche Verkabelung. Beide Layout-Lagen genutzt. Schrittmotor-Resolution-Pins, zusätzlicher Endschalter, freie digitale/analoge Pins. Gerber-Dateien → JLCPCB (Sponsor). Bestellung, Viewer-Check, Eigenschaften wählen, günstig (Erstbestellung: 10 PCBs für 2 $). PCBs angekommen – top Qualität. Stiftleisten für einfache Montage/Demontage. Kleinteile (Kondensatoren, Widerstände, LM7805, Klemmen) direkt verlöten. Schrittmotortreiber & Arduino aufstecken. Netzteil & Schalter an Klemmen, Motorkabel anschließen (beidseitig). Servo an Digitalpin 2, 5V vom LM7805. Schrittmotor-Resolution per Jumper wählen (ich nutze 1/16-Schritt). AccelStepper-Library (Mike McCauley) für Schrittmotoren, Servo-Library. Pins & Variablen definieren. Setup: Servo-Startposition (Biegestift oben), Bieger-Nullung per Endschalter. Schrittmotoren MaxSpeed 2000. Referenzfahrt: Bieger dreht bis Endschalter auslöst, Position = 0, dann 1400 Schritte gegen Uhrzeigersinn zur Startposition. Loop: Auf Serial-Befehle warten. „manual“ → Manueller Modus, „star“ → Stern, „cube“ → Würfel, „stand“ → Ständer. Beispiel Ähnlich für Würfel & Ständer. Manueller Modus: Befehle per Serial: „f Kompletter Code am Ende. Hinweis: Das Drahtrichtsystem funktioniert nicht perfekt – zu fest angezogen verliert der Vorschub den Halt. Lösung: Stärkeres Material statt Kupferrohr oder anderes Vorschubsystem. Viel Spaß beim Nachbauen! Fragen in den Kommentaren, Arduino-Projektsammlung anschauen.Funktionsweise


3D-Modell der Drahtbiegemaschine



Maschine bauen

















Schaltplan

PCB-Design




PCB bestücken


Arduino-Code für 3D-Drahtbiegemaschine
#include <AccelStepper.h>
#include <Servo.h>
#define limitSwitch 11
AccelStepper feederStepper(1, 5, 6); // (Treiber, STEP, DIR)
AccelStepper zAxisStepper(1, 7, 8);
AccelStepper benderStepper(1, 9, 10);
Servo servo01;
String dataIn = "", manualStatus = "";
int count = 0, dist;void setup() {
Serial.begin(9600);
pinMode(limitSwitch, INPUT_PULLUP);
servo01.attach(2); servo01.write(40); // Stift oben
feederStepper.setMaxSpeed(2000);
zAxisStepper.setMaxSpeed(2000);
benderStepper.setMaxSpeed(2000);
// Homing
while (digitalRead(limitSwitch) != 0) {
benderStepper.setSpeed(1200); benderStepper.runSpeed();
benderStepper.setCurrentPosition(0);
}
delay(40);
while (benderStepper.currentPosition() != -1400) {
benderStepper.setSpeed(-1200); benderStepper.run();
}
benderStepper.setCurrentPosition(0);
}void loop() {
String mode = Serial.readString();
if (mode.startsWith("manual")) manual();
if (mode.startsWith("star")) star();
if (mode.startsWith("cube")) cube();
if (mode.startsWith("stand")) stand();
}star(): 5 Schleifendurchläufe (5 Zacken). Draht vorschieben (38 mm → Steps), Biegestift hoch, 52° biegen, zurück, wieder vorschieben, Stift runter, neue Startposition für Gegenrichtung, 105° andere Richtung, 63° zurück, Stift hoch, Zähler erhöhen.void star() {
while (count != 5) {
int feed = 38; int feedDistance = feed * 48; // mm → Steps
while (feederStepper.currentPosition() != feedDistance) {
feederStepper.setSpeed(1200); feederStepper.run();
}
feederStepper.setCurrentPosition(0);
servo01.write(40); delay(200);
int angleConst = 18;
// 52° biegen
while (benderStepper.currentPosition() != -52 * angleConst) {
benderStepper.setSpeed(-700); benderStepper.run();
}
benderStepper.setCurrentPosition(0); delay(100);
// zurück
while (benderStepper.currentPosition() != 52 * angleConst) {
benderStepper.setSpeed(1200); benderStepper.run();
}
benderStepper.setCurrentPosition(0); delay(100);
// wieder vorschieben
while (feederStepper.currentPosition() != feedDistance) {
feederStepper.setSpeed(1200); feederStepper.run();
}
feederStepper.setCurrentPosition(0); delay(100);
servo01.write(130); delay(200); // Stift runter
// neue Startposition für Gegenrichtung
while (benderStepper.currentPosition() != -42 * angleConst) {
benderStepper.setSpeed(-1200); benderStepper.run();
}
benderStepper.setCurrentPosition(0); delay(200);
servo01.write(40); delay(200); // Stift hoch
while (benderStepper.currentPosition() != 105 * angleConst) {
benderStepper.setSpeed(700); benderStepper.run();
}
benderStepper.setCurrentPosition(0); delay(50);
while (benderStepper.currentPosition() != -63 * angleConst) {
benderStepper.setSpeed(-1200); benderStepper.run();
}
delay(100); servo01.write(130);
benderStepper.setCurrentPosition(0); count++;
}
}if (dataIn.startsWith("f")) {
dataInS = dataIn.substring(1); dist = dataInS.toInt();
Serial.print("Feed "); Serial.print(dist); Serial.println("mm wire.");
dist = dist * 48;
while (feederStepper.currentPosition() != dist) {
feederStepper.setSpeed(1200); feederStepper.run();
}
feederStepper.setCurrentPosition(0); delay(100);
}/* Arduino 3D Wire Bending Machine by Dejan Nedelkovski
www.HowToMechatronics.com
Library - AccelStepper by Mike McCauley... */
#include <AccelStepper.h> #include <Servo.h>
// ... (vollständiger Code wie im Original) ...

Herstellungsprozess
- Die Entwicklung und Fertigung von Nähmaschinen: Von der Innovation des 19. Jahrhunderts zur modernen Automatisierung
- Stacheldraht: Geschichte, Konstruktion und moderne Verwendung
- Premium Sechseckdrahtgeflecht-Maschine für Landwirtschaft & Geflügel
- Draht-EDM-Schneidmaschinen: Präzision & Kosteneinsparung im Fokus
- Biegemaschinen für Bleche: Typen, Prozesse & Anwendungen
- Drahterodieren in Taiwan: Präzision für die Metallindustrie
- Spitzen-Draht-EDM-Maschinen: Präzisionsschneidlösungen aus Taiwan
- Professionelle CNC-Rohrbiegemaschine: Präzision & Effizienz
- Expertenleitfaden zu Vierkantrohr-Biegemaschinen
- Hydraulische Rohrbiegemaschine: Präzision für die Werkstatt