Code für eine Ladeeinheit (Modellbau)

Sehr geehrte Community,

Kurzinfo zum Projekt:
ich komme aus der 3D-Druck Branche und habe nicht wirklich eine große Ahnung von Microcontrollern. Ich versuche es aber zu lernen!
ich habe eine Ladeeinheit für den Modellbau konstruiert es handelt sich um 4mm Metallkugeln die über ein Mitnehmerrad nach oben gedrückt werden und anschließend in einen Eisenbahnwagon fallen.

Was soll der Code machen?
ArduinoBoard : Arduino Pro Mini 328 (5V - 16MHz)

Ich möchte einen Steppermotor (Nema17 Motor - HEM-17D3003) + (ULN2003 Stepper Motor Driver Board) ansteuern den man mit einem Poti (10K) regeln kann. Gestartet werden soll das ganze mit einem Druckschalter (weiß nicht welchen ich nutzen kann) und einer LED ob der Motor läuft (HIGH) oder "aus" ist (LOW).

Grob:
Switch(ON) -> GREENLED(HIGH) -> Steppermotor (ON) -> Poti (um zu regeln) -> Switch(OFF) -> GREENLED(LOW)

Sonstiges:
Sollte das Board nicht genug Anschlüsse haben oder zu "schwach" sein, bin ich gern für Alternativen offen. Oder Ideen wie man das besser kompakter oder Ressourcenarmer machen kann.

Alternative:
Ich weiß nicht ob man den Steppermotor "abfragen" kann. Wenn er 1x seine 200 Steps (1,8= 1Step) macht, dass man in einem (AZ-Delivery 1,3Zoll l2C OLED Display) anzeigen lassen kann das 24 Kugeln gefördert hat ?
Oder ist das zu viel für den ArduinoProMini 328

Ich bedanke mich im vorraus,
liebe Grüße
LWA-Tech

Bild der Ladeeinheit
ae95294df3cd40633f9462de72f2a3da

Erste schnelle Antworten:

  • Die Aufgabe überfordert einen solchen Prozessor keineswegs; die geschilderten Funktionen sind locker damit zu erledigen.
  • Ein Steppermotor kann ab seiner Einschaltposition gezielt um n Schritte nach links oder rechts gestellt werden. er liefert per se keine absolute Position, es sei denn dass er zusätzlich über einen absoluten Winkelgeber verfügt.
  • Werden absolute Winkelstellungen benötigt, setzt man auf die Achse ein "Fähnchen", das in einer definierten Winkelstellung eine Lichtschranke unterbricht. Man fährt von links oder rechts in die Schranke und benutzt die Stellung, bei der die Lichtschranke unterbrochen wird, als Startwinkel, von dem aus alle anderen Winkel angefahren werden können. Man kann u.U. die Winkelposition vor dem Ausschalten nichtflüchtig speichern und beim Start (bevor der Stepper bewegt wird) wieder auslesen. Man sollte dann allerdings sicherstellen, dass der Motor danach nicht mehr (auch nicht von Hand) bewegt wird und kein Neustart mit "falschen" Daten stattgefunden hat.
  • Soll es ein Druckschalter sein oder ein Taster? Beides ist problemlos möglich, braucht aber ein softwareseitiges Entprellen ("Debouncing").

Bei dieser Aufgabe (wenn das Bild nicht täuscht) braucht es vermutlich keine absolute Position; das Mitzählen der Schritte sollte genügen. Und wenn eh schon Lichtschranke, dann bietet es sich vielleicht an, direkt die geförderten Kugeln zu zählen, dann wird auch eine "Leerförderung" erkannt und nicht gezählt ...

Wenn ich recht gegoogelt habe, benötigt der Mini Pro zum Programmieren einen FTDI-Adapter oder ein spezielles Breakout-Board, da das Board über keinen direkten USB-Anschluss verfügt. Falls das zu umständlich erscheint, kann man ein entsprechendes Board mit Mini- oder Micro-USB-Anschluss verwenden (Nano, Micro).

Viel Erfolg!
ec2021

Noch ein Tipp: Schau Dir mal die Seite

https://wokwi.com/projects/367274212437112833

an. Dort kannst Du Deinen Sketch schnell und weitgehend testen, bevor Du die Hardware aufbaust. Das ULN-Board ist die bessere Wahl als das direkte Anschließen an die Pins, funktioniert aber softwareseitig identisch.

Ich habe das Beispiel für eine Stepperansteuerung an einen Nano angepasst und eine Led hinzugefügt. Das Ein/Ausschalteschalten der Led ist allerdings nur simpel zeitgesteuert und nicht mit der realen Bewegung gekoppelt. Auch das ist machbar, das Einbringen ist nicht schwer, braucht aber ein wenig Zeit :wink: Es gibt Libs zum Ansteuern der Stepper, die zurückmelden, ob der Stepper noch läuft (angesteuert wird). Damit würde ich es umsetzen ...

Hey, ich danke dir erstmal für die schnelle Antwort. Tatsächlich den Code verstehe ich soweit. Pins definieren loop erstellen etc soweit bin ich auch schon aber mit stepper etc bin ich noch weit entfernt nur eingelesen. Danke dafür !

Ja, das board verfügt über keinen usb oder den dickeren anschluss für das datenkabel. Ich wollte den haben da er so klein ist das man ihn verstecken kann.

Genau so hatte ich mir das gedacht !...

  • der steppermotor dreht eigentlich nur in eine richtung um die kugeln nach oben zu drücken also nur clockwise.

  • ein taster wäre die bessere option denke mal da kann man anfang und ende besser bestimmen wenn im display X Kugeln stehen, kann man den taster erneut drücken um den ladevorgang zu stoppen.

  • lichtschranke hab ich nicht da, kann aber gekauft werden.

  • Das mit dem Poti dem einstellen würde beim steppermotor auch gehen oder muss man den bereich konkret definieren ?

Frage : wie kann man Displays gut gestalten? Wird das alles im code definiert ?

Gedankengang:

ja ein ganz interessantes thema wäre es wenn man die kugeln per lichtschranke zählen und im display ansteuern könnte das er X-Kugeln fördern soll. Aber das ist mir nicht wichtig.

Vielen Dank und liebe Grüße
LWA-Tech

Das paßt nicht zusammen.
Laut gefundenen Infos ist der Motor ein Bipolarer Schrittmotor für Stromansteuerung und nicht für Spannungsansteuerung und unipolar ( wofür der ULN geeignet wäre.

Für diesen Motor brauchst Du einen Stromtreiber wie zB den A4988 und mindestens 12V Versorgungsspannung.

Meine Meinung nach müßte ein kleinerer Motor wie der 28BJY48, der für den ULN2003 geeignet ist, für den Verwendungszweck reichen. Diesen Motor gibt es als 5V Variante.

Grüße Uwe

Hallo uwefed

Ich habe noch ein anderes stepperboard aber da ist keine große bezeichnung drauf sofern ich von der arbeit komme werde ich ein foto senden.

Ich danke dir aber für die informationsreiche antwort

Wenn Du die Kugeln zählst, genügt auch ein DC-Motor eventuell mit einem Getriebe an einer H-Brücke.

Mit dem richtigen Treiber (beispielsweise A4988 oder DRV8825) kannst Du aber auch einen Schrittmotor ver(sch)wenden.

Den ULN2003 gibt es als Treiber für Schrittmotor-Set S-SPSM-5V, wegen des Getriebes bestens für langsame Bewegungen im Modellbau geeignet, so auch für mein Kohlekranfunktionsmodell.

Meine Bibliotheksempfehlung sind die MobaTools für

  • bipolare (Treiber A4988 oder DRV8825), unipolare (Treiber ULN2003) Schrittmotoren,
  • Tasterentprellung
  • Zeitmessung

Die Fontdefinitionen benötigen viel Speicher, weshalb es etwas knapp werden könnte. Die 20x4 LC-Displays haben eingebaute Fonts und sind einfacher zu programmieren.

Auch schön klein aber mit mehr Speicher: Mega 2650 PRO mini

Eventuell eine Reflexlichtschranke.

Ja, mußt Du alles programmieren. Umfänglich und daher gut: U8g2

Für LCD mit deutschen Umlauten: NoiascaLiquidCrystal

Abweichend davon gibt es Displays von Nextion, deren Layout man am PC gestaltet. Für diese Anwendung wohl etwas übertrieben.

Ja. Eventuell ein Poti für die Menge, eins für die Fördergeschwindigkeit.

Ich mag diese Anleitungen: Nr.09 Potentiometer

Da gibt es noch viel kleinere boards. Zum Programmieren hättest dich mit nem nano oder uno leichter getan. Wenn dann die Programmierung abgeschlossen wäre, könntest das ganze ganz einfach und je nach microcontroller ohne großen Aufwand auf ein board deiner wahl importieren.

Moin zusammen,

Danke euch für die top kommentare die mir wcht weiterhelfen. Ich hoffe nur das mit jemand mit dem code helfen kann. Das verdrahten etc kann ich da habe ich sonst fachpersonal.

Es soll so simpel wie möglich gehalten werden mit den bauteilen. Der LCD ist mehr so nebending

Das mit dem steppermotor war so dass ich den durch den 3D druck noch liegen hatte. Einen Uno habe ich auch noch liegen den könnte ich auch benutzen. Das mit dem LCD ist nicht wirklich notwendig ... er soll nur die waggons beladen und ich kann selber entscheiden wann der waggon voll ist alles in sichtweite des bedieners.
Vor der fabrik ist eine entladestation und die kugeln wandern in die fabrik und machen dampf und licht. Die kugeln wandern in einen behälter unter der anlage das mache ich irgendwann auch anders... eher spielkram aber wenns läuft interessant.

Naja nicht zum thema aber ich würde mich freuen wenn der kollege dann wirklich mir mit dem code helfen kann :slight_smile:

Vielen dank !
Lwa-Tech

Also auf meinem anderen stepper motor driver steht "SH02" drauf ist ein rotes kleines board mit pins. Keine ahnung ob ihr damit was anfangen könntet denke eher weniger ...
Anschlüsse : enable , Ms1-3 , reset, sleep, step, direction, gnd, Vdd, 1A/B , 2A/B , Vmot

Ich danke euch nochmals und wünsche euch einen schönen dienstag !

Foto bitte.

Das Stimmt :wink: , nur wen man u8x8 aus der U8g2 nimmt ist das halb so Kritisch, braucht 1/3 vom dem was die ausgewachsene U8g2, gerade für sowas ist die Optimal.
Jedoch wen der LCD2004 Reicht, ist noch besser, vor allem man braucht keine Lupe

Werde ich nach der schicht fotografieren ... und dir senden

Gut das ist für mich unverständlich so tief bin ich nicht drinn in der Thematik. Danke dir für die infos! :slight_smile:

Dazu, dafür ist das Forum da :wink:
Und gerade hier kann man viel Lernen.

Ich habe ihn doch Online gefunden

"debo drv a4988 entwicklerboards - schrittmotorsteuerung, a4988"

Den habe ich noch da und denke das der für die ansteuerung passt nachfolgend bekommst du 2 fotos

Liebe grüße


Ich lerne momentan ürogrammieren über den baukasten, aber dies projekt braucht etwas länger und ist kompakter ich will mir gern nur den code anschauen damit ich weis wie ich in späteren projekten expandieren kann.

Schönen dienstag abend ! :slight_smile:

Die seite ist zum Teil Down :thinking:

Ok, wen du aber schon den Stepper + Treiber hast kannst du schon anfangen üben :wink:
Ist für Uno, hat aber wenig zu Sagen, ist abgesehen vom IC fast das gleiche

Für das Display sind in der Bibliothek U8g2 Beispiele, empfehle die Beispiele für u8x8. Hast ja noch kein Display :wink:

Les dir oben das projekt durch ... das muss ich im code zusammenfassen und da hab ich keine erfahrungen mit loops und mehr Pins definieren etc das mit dem stepper ansteuern etc habe ich mir angeschaut aber das system in eins fusionieren ist für mich schwer

Ja mit dem poti und taster stepperboard wäre das ding fertig :smiley: aber bei mir harkts beim schreiben

Liebe grüße