Ich bin absoluter Arduino Neuling und bitte hier um Hilfe.
Ich bin Elektronisch sehr versiert, jedoch in Sachen Arduino absoluter Neuling, auch biite ich im Voraus um Vergebung, wenn ich was nicht sofort verstehe, ich bin bereits 79 Jahre jung.
Mein Vorhaben ist wie folgt :
Ich möchte einen Schrittmotor von 0 Grad auf 200 Grad bewegen.
Das ganze soll so funktionieren, das wenn ich einen Taster betätige und halte (minus Eintastung) soll der Schrittmotor Von 0 auf 200 Grad wndern. Sobald ich den Taster wieder los lasse, soll der Schrittmotor wieder auf 0 Grad zurück laufen.
Kann mir da Vielleicht jemand weiterhelfen oder sogar ein Programm dafür machen ???
motorcorner:
Ich möchte einen Schrittmotor von 0 Grad auf 200 Grad bewegen.
Unipolarer oder bipolarer Motor, welcher Treiber?
Standard-Programmbibliothek ist die AccelStepper, Dir könnten aber möglicherweise auch die MobaTools gefallen. Beide Programmbibliotheken bringen Beispiele mit, damit sich der Motor erstmal irgendwie dreht.
Wie genau müssen diese 200° erreicht werden?
Der 08/15-Stepper hat eine Schritt-Auflösung von 1.8° (=200 Vollschritte) und ist bis zum Halbschritt (also 0.9°) sicher auf diese Position zu bekommen.
In feineren Schrittauflösungen sind auch feinere Zwischenwinkel erreichbar, aber Diese sind nur theoretisch.
Bei Voll- und Halbschritt sind entweder alle Spulen, oder die Hälfte voll bestromt - der Rotor kann nur auf diese Positionen 'einrasten'.
Bei einem höheren Zwischenschritt (Micro-Step, ab 1/4tel), sind sämtliche Spulen zum Teil bestromt - hier muß der Rotor zwischen zwei Rastpunkten in dem Magnetfeld gehalten werden - weshalb man hier nicht davon ausgehen darf, daß der Zwischenschritt genau eingehalten wird.
Zu Deinem Vorhaben schaue Dir bitte die MoBaTools an - Die kannst Du direkt aus der IDE heraus installieren, Beispiele hat der MicroBahner (User hier im Forum, ist Seine Lib) ebenfalls dabei gepackt.
So musst Du Dich nicht selber um den Stepper kümmern, Das macht die Lib im Hintergrund (hier sogar wirklich unabhängig) und Du kannst mit einem digitalRead() entscheiden, auf welche Soll-Position der Stepper soll.
Mit 'digitalWrite' setzt Du Pins auf HIGH oder LOW, sonst nichts.
Du willst hier aber keinen Pin setzen, sondern einfach nur die Methode 'step' deines 'Motor' Objektes aufrufen, damit sich der dreht:
Wenn's mal richtig geschrieben sein wird dann schickst Du die Ansteuerung des Motors x schritte zu machen immer wieder solange der Taster gedrückt bzw nicht gedrückt wird. Du mußt die Statusänderung des Tasters erkennen.
Grüße Uwe