Schrittmotoren mit Tastern steuern

Hallo,

ich arbeite an einem Projekt, bei dem ich 3 Schrittmotoren mit einem Arduino steuern muss. Ich habe bis jetzt relativ wenig Erfahrungen mit Arduino.
Ich habe vor das CNC-Shield zu verwenden, um die Motoren anzusteuern. Auf Youtube habe ich Videos gesehen, wie das funktioniert. Dort werden die Motoren allerdings immer über einen angeschlossen Computer gesteuert. Weiß jemand, wie man mit einfachen Tastern oder einem Gamepad über das CNC Shield die Schrittmotoren steuern kann?

Vielen Dank und Liebe Grüße
Dave

Ja.

Ja.

Ganz einfach :wink:

Man fragt den Taster ab. Wie das geht, steht in "Arduino für Anfänger" oder bei Google.

Dann muss man nur noch (bei Tastendruck) den Servo sagen was, er wie lange machen soll.

Gruß

Pucki

Hallo @daveed03

herzlich willkommen im Arduino-Forum,

Jetzt kommt es darauf an wie du das genau meinst.
Wenn deine Vorstellung ist man nimmt das CNC-Shield plus Taster und dann läuft schon alles. Das funktioniert nur seeehr bedingt mit speziellen Schrittmotor-Treibern.

Schrittmotoren benötigen zum Betrieb eine sehr regelmäßig erzeugte Impulsfolge die von einem - oh wunder - Mini-Computer genannt Microcontroller erzeugt werden.
Ohne den müsstest du hunderte Impulse pro Sekunde mit dem Taster mühsam von Hand erzeugen. Das willst du bestimmt nicht.

Wenn du noch keinen Mikrocontroller hast beschreibe mal das konkrete Projekt und was außer den drei Schrittmotoren noch an weiterer Elektronik enthalten sein wird.

Wenn das bekannt ist dann kann man einen gut passenden Microcontroller vorschlagen

vgs

Hallo,
wenn Du bisher nur das Shield hast dann fehlen Dir auch noch die Treiber. Zu beidem gibts Dokus zum lesen.
Die Impulserzeigung für die Motoren kann man von Hand machen, ist aber Quatsch. Ich empfehle Dir die Verwendung der Lib Mobatools. Da gibts Beispiele wie man das mit Taster machen kann.

1 Like

Hallo Stefan,

Ich baue einen Modellhafenkran. Dabei sollen die 3 Achsen jeweils mit einem Schrittmotor gesteuert werden. Andere Elektronik wird nicht benötigt.
Mein Hauptproblem ist, dass das CNC-Shield den ganzen Arduino belegt und ich nicht weiß, wie ich noch taster/joysticks anschließen soll.
Einen Mikrocontroller habe ich noch nicht gekauft.

Liebe Grüße
Dave

Eine Lösung die auf jeden Fall funktioniert ist das CNC-Shield nicht direkt aufzustecken sondern über Kabel zu verbinden.

Du solltest mal in der Dokumentation des CNC-shields nachschauen welche IO-pins vom shield wirklich benutzt werden und ob die restlichen IO-pins nicht doch auf dem CNC-Shield zugänglich sind.

Ein Arduino Uno tut es für diese Aufgabenstellung
Wenn du massig weitere IO_pins haben willst könnte man einen Arduino Mega nehmen.
kostet eben mehr.

Wenn man die Kosten für den Microcontroller auf das absolute Minimum drücken wollte dann könnte man einen LGT8F328 nehmen. Die gibt es beim Chinesen für 1,50 Euro
https://de.aliexpress.com/item/1005005216975059.html

Wenn du den Platz hast ein Arduino-Mega Clon

In der Tat benötigt das 3-Achsen-4-Stepper-CNC-Shield fast alle Pins des Arduino Uno. Die einzigen Pins, die da (nach kurzem Überfliegen) noch frei bleiben, sind die 3 Pins für die Endstopptaster (die man auch möglichst für diesen Zweck verwenden sollte), D0-D1 für serielle Kommunikation und A4&A5 für I2C. Diese I2C-Schnittstelle würde sich dann anbieten, um dort über einen Portexpander alle benötigten Steuerungstaster und -Schalter anzuschließen.


grbl_pinout_0-91

0815 Schrittmotortreiber wie der A4988 erzeugen im Motor ein vergleichsweise lautes Motorengeräusch.
Wenn der Kran also bewusst "brummen" soll die richtige Wahl.

Es gibt auch Schrittmotortreiber die die Motoren fast lautlos laufen lassen können.
Da bin ich mir aber nicht ganz sicher ob die vollständig PIN-Kompatibel zum CNC-Shield sind.

@community: hat einer die TMC2209-Treiber auf einem CNC-Shield im Einsatz?

Auch ganz nett könnte eine Steuerung über WLAN sein.
Die ESP32.microcontroller können sich entweder mit einem vorhandenen WLAN verbinden oder ihr ganz eigenes WLAN erstellen.
Mit diesem ESP32-WLAN kann man dann das Handy verbinden und über eine kleine Webseite einfach über den Browser die Motoren steuern.

Auf der Webseite kann man dann Schieberegler oder solche Steuerelemente benutzen
image

Das würde ich mit den Mini-Schrittmotoren lösen. Die gibt es mit Treiberplatine für ein paar Euro.

z. B. : https://www.amazon.de/CUQI-Schrittmotor-Kit-28-BYJ48-Schrittmotor-Motorantriebsplatine/dp/B08MWCRJ4W

Das Zauberwort ist 28-BYJ48.

Dann einen MC wie den Nano oder einen ESP-32 (falls die Steuerung übers Handy erfolgen soll und gut ist :wink:

Ich muss aber zugeben, dass ich eine Abneigung gegen Shields aller Art habe. Der Grund ist genau derselbe, den du auch erwähnt hast. Die schränken ein irgendwo ein.

Davon abgesehen ist deine Aussage auch einschränkend.

Diese Shields passend nur auf ganz wenige Arduinos , i.d.R. nur auf den UNO.

Eine Ansteuerung des 28-BYJ48 findest du an jeder Ecke.

z.b. : https://edistechlab.com/der-28byj-48-schrittmotor/?v=3a52f3c22ed6

Das ist sogar eine Tastersteuerung mit drin.

Bitte beachte aber, dass fast ALLE Schrittmotoren (auch die oben) externen Power benötigen, da der Arduino das nicht aufbringen kann.

Bei 3 o. Mehr Teilen + vermutlich noch ein bisschen anderes Zeug würde ich dir aber zu einen Arduino Mega raten. Da sind Pins genug um alles sauber anzusteuern.

Gruß

Pucki

Hallo,
hast Du vor die Motoren immer nur mittels Taster zu verfahren, oder willst Du einen automatischen Ablauf einbauen. Wenn es ein automatischer Ablauf sein soll dann benötigst Du noch einen Null-Punkt (Referenzpunkt) für jede Achse den Du einmalig nach dem Einschalten anfahren musst. Eventuell denkst Du auch mal über Servos nach , die gibts auch für 270°

Wenn es immer nur Tasterbetrieb sein soll dann würden auch DC Motoren mit einem Getriebe Sinn machen.

Ich denke er will ein Modellbaukran wie dieser hier nachbauen.

Abgehoben: die Märklin Kräne – Tischbahn (im ersten Foto mit den 2 Pulten).

Dazu braucht er 3 Schrittmotoren.

  1. Kran dreht sich selbst.
  2. Kranausleger senkt / heb sich
  3. Das Zug/Auslegerseil (da mit den Magneten) wird abgesenkt/gehoben.

Der Kran im Link war der (damals schon unbezahlbare) Traum meiner Kindheit.

Was aber nicht heißt das ich mich nicht noch gut an das Teil erinnern kann.

Weshalb ich auch den MEGA vorgeschlagen habe. Die Sache mit den E-Magnet und ein paar LED's sollen doch sicher auch aus. :wink:

Und wenn man dann noch "automatische Containerbeladung" machen will, braucht man auch ein paar Sensoren. :wink:

Ist jedenfalls ein ambitioniertes Projekt. Respekt, wenn es läuft.

Gruß

Pucki

Vielen Dank für deine ausführliche Antwort! :slight_smile:

Vielen Dank für deine Tipps, hat mir sehr weitergeholfen :slight_smile:

Joa so ähnlich, soll ein Portalkran werden.
Vielen Dank auch für deine Tipps :slight_smile:

Der 28-BYJ48 braucht 4 Pin zur Ansteuerung. Darum sind das bei 3 Motoren bereits 12 Pins.
Andere Motoren mit A4988 Treibern (oder Kompatiblen) brauchen 2 Pin pro Motor.
Natürlich kann man einen MEGA2560 mit mehr Pins nehmen oder mittels Port Expandern mehr Pins zur Verfügung haben.

Grüße Uwe

Naja, da der TO noch keinen MC-Board hat, und ich (wie geschrieben) denke, dass er noch mehr Spielereien will, fand ich ein MEGA2560 grundsätzlich für die beste Lösung.
Ist aber alles nur als Vorschlag gedacht, und ich denke der TO hat es auch als solchen verstanden.

Das der 28-BYJ48 4 Pins braucht (+ Versorgung) ist mir bewusst. Ich habe eins diese Bundel (3 x Steuerplatine + Motor) gekauft und schon damit gespielt, aber noch kein gutes Projekt damit gemacht.

Und ich habe auch eine MEGA dafür gekauft.

Gruß

Pucki

Ich steuere 2 dieser Stepper inkl. Ein/Aus der Motor-Versorgung und pro motor nen Referenz.Sensor mit nem Attiyni 84. Die Motoren werden zwar paralell angesteuert, jedoch referenzieren sie unabhängig voneinander.

Mit den Mobatools kann man bis zu 4 von den kleinen Steppern über die SPI Schnittstelle ansteuern. Dazu braucht's nur 2 externe 8-Bit Schieberegister. Im Programm ist das genau so einfach wie mit parallelem Direktanschluss.