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:
Hier ist der Stepper, den ich benutze:
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();
}
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.
Redrachet2
Redrachet2
geometrisch
Redrachet2
der Mistkerl
Redrachet2