Schrittmotor mit Endschalter anhalten

Hallo zusammen, bin neu hier und brauche im Rahmen einer Studienarbeit eure Hilfe. Ich möchte gerne mit einem Schrittmotor/Riementrieb einen Schlitten linear soweit verfahren, bis ein Endschalter Kontakt meldet und dann den Antrieb abschaltet. Leider hab ich die Komponenten noch nicht zur Verfügung, sodass ich gezwungen bin alles "theoretisch" zu machen. Hab mir mal die Stepper Library von Adafruit heruntergeladen und bisschen herumexperimentiert, allerdings komm ich nicht wirklich auf einen grünen Zweig, da ich lediglich die Schrittanzahl angeben kann, nicht aber "verfahre bis Kontakt". Kann mir vielleicht mal jemand erklären wie man sowas programmtechnisch grundsätzlich machen könnte oder wo man das Nachlesen kann?

Vielen Dank.

Du machst x Schritte und überprüfst dann ob du in den Schalter gefahren bist. Dann machst du wieder x Schritte, usw. bis du im Schalter bist.

Wobei x dabei einer recht kleinen Distanz entspricht.

Hexlon:
Hab mir mal die Stepper Library von Adafruit heruntergeladen und bisschen herumexperimentiert, allerdings komm ich nicht wirklich auf einen grünen Zweig, da ich lediglich die Schrittanzahl angeben kann, nicht aber "verfahre bis Kontakt".

Für Dein Vorhaben benötigst Du die passende Stepper-Library, die den Schrittmotor ansteuert, ohne die IDE zu blockieren, bis die Zielposition erreicht ist.

Mit blockierenden Libraries kannst Du tatsächlich nur:

  1. einige Schritte machen
  2. prüfen ob Endbedingung oder Stopbedingung erreicht ist
  3. Wenn nein, weiter mit 1.

Eine Stepper-Library, die Step-Befehle ohne das Programm zu blockieren im Hintergrund ausführen kann, ist meines Erachtens nach die "AccelStepper"-Library. Und zu Deinem Anwendungsfall gibt es für die Library sogar ein "Quckstop" Beispiel:
http://www.airspayce.com/mikem/arduino/AccelStepper/Quickstop_8pde-example.html#a6

D.h. Du kannst dann dem Stepper das Ziel vorgeben, das er ansteuern soll, dieses steuert die Library dann im Hintergrund interruptgesteuert an, und im laufenden Programm kannst Du beliebige Dinge machen, z.B. die tatsächliche Position abfragen, oder auch die Position eines Endschalters abfragen, und Du kannst dann jederzeit während des laufenden Fahrvorgangs über die beiden Befehle

  stepper.stop(); // Stop as fast as possible: sets new target
  stepper.runToPosition();

die aktuelle Position als neue Zielposition des Fahrvorgangs vorgeben und einen Nothalt mit Schnellbremsung durchführen.

Der Endschalter hängt doch an einem Pin des Arduino.
Wenn der Schalter nun schaltet, dann lass ihn doch einen Interrupt auslösen, welcher den Stepper stoppt.
Somit muss man den Schalter nicht selbst ständig überwachen.
Ist das eine Möglichkeit?

Hi bin auch neu hier und brauche eure Hilfe.

Ich habe ein Problem ich benötige eine Schrittmotorsteuerung mit Endschalter und Geschwindigkeitsregelung über Poti. Habe schon einiges versucht, nur bin ich leider nicht zu dem Ergebnis gekommen das ich erreichen möchte.
Wenn mir einer einen Schaltplan inkl. Materialliste und den passenden Code zusenden könnte wäre das echt super. Ich würde Ihn auch für seine mühe entlohnen.
Mit freundlichen Grüßen
Marc

Hallo,
ich würde das mit einer Leadshine-Endstufe machen.
Je nach Größe des Schrittmotores muss das passende Modell ausgewählt werden.
Dazu kommt noch ein leistungsfähiges Netzteil.
Zusammen kostet das ca 100 bis 200 Euro.

Für die Programmierung und das Testen sind nochmals ca. 500 Euro anzusetzen.

Gruss
Kurti

Bist du sicher, dass der Schrittmotor nicht z.B. für ein H0 Modell gebraucht wird?

kurti:
...
Für die Programmierung und das Testen sind nochmals ca. 500 Euro anzusetzen.

Gruss
Kurti

Report to moderator


hier könnte Ihre Werbung stehen

:wink:

Üblicherweise ist dieses Forum bisher reklamefrei :money_mouth_face:
Wobei ich die 1000 Euro für was anderes ausgeben und selber tüftlen würde. Da hätte ich dann doppelt Spaß.

Und neue Besucher werden üblicherweise hier nicht veräppelt :wink: