Hallo liebe Arduino Gemeinde, ich bin interessierter Neuling mit dem Wunsch, eine Art Roboterhand einfache Bewegungen ausführen zu lassen. Im Forum habe ich keine Erklärung gefunden, die zu meiner geringen Vorkenntnis passt :-( Die Kraft der beschriebenen Stepper wird im Endeffekt zu gering sein. Sobald ich die angestrebten Bewegungen sicher programmieren kann und mit dem Ergebnis zufrieden bin, plane ich den Einsatz von stärkeren Steppern. Mit dem Starterset "Funduino" (Arduino Uno Board) habe ich erfolgreich den mitgelieferten Stepper 5V steuern können, durch die Beispiele auf der Arduino-Hilfeseite. Als nächste "Lernschritt" möchte ich individuell und zeitgleich 12 weitere Stepper der gleichen Bauart inklusive mitgeliefertem "ULN2003-Treiber-Board" steuern. Weiterhin möchte ich auch "Rampen" für langsames anfahren und stoppen steuern. Eine externe Stromversorgung über 2A habe ich bereits gekauft. Im Arduino-Browser sieht die bisherige einfache Stepper-Programmierung folgender weise aus: #include <Stepper.h> int SPU = 2048; Stepper Motor(SPU,3,5,4,6); void setup() { Motor.setSpeed(12); } void loop() { Motor.step(-1212); delay(2500); Motor.step(312); delay(1000); Motor.step(-556); delay(1250); } Wie und wo werden diese zusätzlichen Stepper am Arduino board angeschlossen, und wie wird die gezielte Unterscheidung für die jeweiligen Stepper programmiert? Lassen sich neben Schrittzahl und Delayzeit auch verschiedene Geschwindigkeiten je Stepper während des Loops programmieren? Welche Bausteine benötige ich noch für mein beschriebenes Vorhaben? Über entscheidende Tipps würde ich mich sehr freuen. Jeff Schrittmotor-Set DAYPOWER S-SPSM-5V für 5,45 € (Bestellnummer 310543): Daten des Schrittmotors: Betriebsspannung: 5 V- Phasen: 4 Übersetzung: 1/64 (mit eingebautem Getriebe) Schrittwinkel: 5.625° (64 Schritte/Umdrehung) Frequenz: 100 Hz Gleichstromwiderstand : 50 Ohm ± 7% (25 °C) Drehmoment: > 34.3 mN*m (120 Hz) Geräuschpegel: < 35dB (120 Hz)
Hallo, du erzeugst für jeden Motor eine neu Instanz von Stepper:
1 | Stepper Motor1(SPU,3,5,4,6); |
2 | Stepper Motor2(SPU,7,8,9,10); |
3 | Stepper Motor3(SPU,11,12,13,14); |
auf diese Weise kannst du die Motoren eigenständing anprechen. Wie du siehst wirst du aber so keine 12 Motoren ansteuern können weil du dafür 48 IO-Pins brauchst. Bei der Anzahl brauchst du was externes mit eigenem Controller, so das du pro Motor nur ein Richtungssignal und ein Taktsignal hast. Um mehere Motoren gleichzeitig zu bewegen müsste man mal schauen ob die Bewegung der Motoren nach dem Aufruf von Motor.step() von Programm asyncron ausgeführt wird, wenn nicht währe das an der Stelle schon ein Sackgasse. Sascha
Hi Wenn ich den Code halbwegs verstehe, hast Du pro Stepper 4 Pins am µC - kann man auf zwei reduzieren, wenn Du z.B. einen Treiber aka L297 zwischen schaltest. (Takt, Richtung statt die 4 Ausgangssignale). Alternativ kann man ggf. auch ein Schieberegister/Portexpander dafür missbrauchen, Geschwindigkeit ist bei diesen Motor vernachlässigbar, so flott werden Die nicht. Male Dir auf, welcher Motor was im zeitlichen Ablauf machen muß. Vorgabe: Motor 1 lauft mit halber Geschwindigkeit von Motor 2 - also Nichts mit Delay-Schleifen. Wie hast Du Dir Dein Vorhaben vorgestellt, was möchtest Du wie zusammen packen? MfG
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.