Schrittmotor dreht sich aber vibriert

Mein Problem ist also, dass ich 3 Stepper habe und mit der Accel-Bibliothek versucht habe, sie gleichzeitig zu bewegen, zuerst bewegen sich zwei Stepper gleichzeitig, dann dreht sich ein dritter weiter.

Wenn ich jedoch den Code hochlade und das Programm zu laufen beginnt, fangen die Stepper an zu vibrieren, als würden sie kämpfen, um sich zu drehen, und während des gesamten Programms vibrieren die Stepper für eine bestimmte Zeit an Ort und Stelle und drehen sich dann weiter. Da es vibriert, zählt es auch diese kleinen Bewegungen als Schritte.

Diese Stepper haben eine Nennleistung von 2,5 A und ich verwende ein 12-V-Netzteil zusammen mit Motorsteuerungen und Arduino.

Hier ist die Motorsteuerung, die ich verwende:

http://www.ebay.com/itm/Stepper-Motor-Drive-Controller-Board-Module-L298N-Dual-H-Bridge-DC-For-Arduino-/170926726867?pt=LH_DefaultDomain_0&hash=item27cc06ded3

Hier ist der Stepper, den ich benutze:

http://www.ebay.com/itm/1-pc-Nema-17-Stepper-Motor-2Phase-68oz-4wires-CNC-/190505160717?pt=LH_DefaultDomain_0&hash=item2c5afe100d

Hier ist der Code, den ich verwende:

            // MultiStepper.pde
            // -*- mode: C++ -*-
            //
            // Shows how to multiple simultaneous steppers
            // Runs one stepper forwards and backwards, accelerating and decelerating
            // at the limits. Runs other steppers at the same time
            //
            // Copyright (C) 2009 Mike McCauley
            // $Id: MultiStepper.pde,v 1.1 2011/01/05 01:51:01 mikem Exp mikem $

            #include <AccelStepper.h>

            // Define some steppers and the pins the will use
            AccelStepper stepper1(AccelStepper::FULL4WIRE, 5, 4, 3, 2);
            AccelStepper stepper2(AccelStepper::FULL4WIRE, 9, 8, 7, 6); 
            AccelStepper stepper3(AccelStepper::FULL4WIRE, 13, 12, 11, 10);

            void setup()
            {  
                stepper1.setMaxSpeed(200.0);
                stepper1.setAcceleration(200.0);
                stepper1.moveTo(10000000);

                stepper2.setMaxSpeed(300); 
                 stepper2.setAcceleration(100.0); 
                stepper2.moveTo(600);   

                stepper3.setMaxSpeed(300); 
                stepper3.setAcceleration(100.0);
                stepper3.moveTo(700);

            }

            void loop()
            {
                // Change direction at the limits

                      if (stepper3.distanceToGo() == 0)
                       stepper1.run(); 


                stepper3.run();
                stepper2.run();

            }

Antworten (2)

Wenn Ihre Stepper mit 2,5 A bewertet sind, sollten Sie ihnen so nahe wie möglich geben.

Ihre Treiberschaltung ist für 3 Motoren stark unterfordert, mit einem erreichen Sie fast das Maximum des Treibers und erhalten immer noch nur 2A.

Wenn die Schrittmotoren nicht genug Spannung haben, stottern sie und gehen nicht in den nächsten Schritt. (nicht genug Kraft, um die Magnetik zu überwinden)

Kaufen Sie entweder einen Controller mit höherer Leistung (für alle 3, 6-8 A max. Ausgang) oder versuchen Sie, einen im Bridged-Modus zu betreiben, um das Stromversorgungsproblem zu bestätigen.

Auch das 0,3-A-Netzteil kann nichts davon mit Strom versorgen.

Besorgen Sie sich zumindest für die Motorsteuerung ein 10-W-Netzteil.

Liste der Dinge, die Upgrades benötigen, um zu funktionieren: ~12 V, 4-6 A Stromversorgung ~ 2 A pro Kanal Motorsteuerung. Verwenden Sie die 300-mA-Stromversorgung für den Mikrocontroller.

Viel Glück!

Ich habe letzte Woche zufällig die AcclStepper Library entdeckt und wollte unbedingt Multi-Stepper ausführen. Bei mir hat alles bestens funktioniert. Ich habe 3 L293Ds und Nema 17 Stepper verwendet. Wenn Ihr ultimatives Ziel darin besteht, die Motoren zu betreiben, müssen Sie eigentlich keinen Mikrocontroller verwenden. Die Arduino- und Schrittmotortreiber selbst würden das Notwendige tun. Der von Ihnen erwähnte Code ist ein Beispielcode aus der AcclStepper-Bibliothek und sollte gut funktionieren. Verwenden Sie jedoch für jeden Stepper einzelne Netzteile oder nicht? Im Allgemeinen arbeiten diese Stepper bei jeder Spannung zwischen 5-30 V, und um auf der sicheren Seite zu sein, verwende ich für jeden Motor eine separate 12-V-Versorgung. Sorgen Sie also für eine ausreichende Versorgung.

OOOHHHH okay, weil ich 12 Volt für alle drei Stepper verwendet habe, kein Wunder, denn als ich einen Schrittmotor von den 5 Volt des Arduino abschaltete, lief er soomthley, aber mit 12 Volt für alle vibrierte er stark, also damit meine Kraft Versorgung sollte 36V sein, die zu allen drei Steppern geht, oder? also jeweils 12 Volt oder geht das nicht?
Übrigens ist das vorherige Netzteil, das ich verwendet habe, ein 12-Volt-Wandadapter, der 120 Volt Wechselstrom in 12 Volt Gleichstrom umwandelt. Können Sie mir ein gutes Netzteil empfehlen?
Nein, so addiert man sie nicht. Wenn Sie drei Motoren parallel verdrahtet haben, sollte die Stromversorgung nur 12 V betragen. Wie hoch ist die Stromstärke des Wandadapters?
Die Nennleistung beträgt 120 V AC 60 Hz 8 W bis 12 V DC 300 mA
Da ich L293ds verwendete, versorgte ich alle ICs mit 12-V-Versorgung (und nicht die Stepper). Ich selbst verwendete ein 12-V-Netzteil
Nun, Sie sagen, dass Sie Ihre ICs mit der 12-V-Versorgung und nicht mit Steppern mit Strom versorgt haben, also haben Sie Ihre Stepper auf andere Weise mit Strom versorgt, denn mit meiner Motorsteuerung kann ich nur 12 V eingeben und sie versorgt die Motorsteuerung automatisch zusammen mit dem Stepper damit ist damit verbunden