muah
10.01.2015, 12:48

+3Arduino steuert PF-Motor

Guten Morgen zusammen,

wie angekündigt hier das erste Ergebnis meines Experiments mit Arduino und Lego.

Ich habe dazu bei fritzing.org mir das Arduino Mega bestellt.

[image]



Hier der Inhalt ausgepackt.

[image]



In dem Handbuch sind einige Grundlagen erklärt, damit kann man etwas spielen und auch verstehen. Wenn es etwas komplexer wird, muss man selber anfangen zu recherchieren. Man braucht eigentlich Erfahrung in Programmierung und Elektrotechnik, sonst wird es relativ schwierig mit der Umsetzung. Programmieren kann ich, für Elektrotechnik habe ich dank meinem Vater zwar etwas Ahnung, den Rest besorge ich mir entweder im Internet oder Frage Thorsten, meinen Kumpel, den Feinelektroniker (wohnt etwas weiter weg, aber per VoiceChat haben wir das gestern gut hinbekommen).

Erstes Ziel:

- Signalisierung des Weichenzustandes durch zwei LEDs
- Ansteuern des Motors
- Processing-LED (soll anzeigen das gerade etwas getan wird und in der Zeit keine weitere Aktion möglich ist)

Im Handbuch gibt es sogar eine Übung zur Herstellung eine Schaltung zweier LEDs, die durch Tastendruck abwechselnd leuchten sollen. Die hat gut geholfen. Eine Ansteuerung für Motoren gibt es dort auch nachzubauen, allerdings war das Beispiel nicht ganz für mich verwendbar. Im Internet habe ich dann das besser passende Beispiel gefunden. Nachdem ich dann auch verstanden hatte wie der IC funktioniert, habe ich gestern sogar relativ schnell die Schaltung herstellen können und musste dann nur noch die beiden Programmteile in ein Gesamtkonzept bringen.

[image]



Wenn der Arduino startet werden die ganzen benötigten Variablen initialisiert und setup-Funktionen aufgerufen. Dann wartet er in einer Schleife (loop) auf was zu tun. Drückt man den Knopf wird ein Status-Wert geändert (derTasterwurdegedrückWert), damit die Folge-Programme wissen das sie etwas tun müssen. Dann kommt der Programmteil der fragt: Weiche==1 ? dann LED1 = aus, LED2 = an, ProcLED = an, Motor Richtung A an für 0,8 Sek., Weiche=0, ProcLED = aus. Fertig. Wenn man dann den Taster noch mal drückt kommt man in die gleiche Abfrage, da Weiche==0 kommt der andere Programmteil zur Reaktion: LED2 = aus, LED1 = an, ProcLED = an, Motor Richtung B an für 0,8 Sek., Weiche=1, ProcLED = aus.

Relativ simpel, da fehlt noch etwas Feintuning und halt mal sauber programmiert und benannt Es gibt auch fertige Boards für Motoransteuerung, da werde ich mal schauen ob es was passendes gibt, Thorsten war mit der rudimentären Lösung nicht ganz zufrieden, da fehlen ihm wohl noch Widerstände etc. damit es auch sauber ist.

Und so sieht es dann aus:



Mit dem Ardunio Mega könnte ich 12 Motoren steuern, danach ist Schluss, weil mehr als 12 PWM Anschlüsse hat er nicht. Für eine Weichensteuerung reicht es gut aus, allerdings werde ich mir Gedanken machen müssen, wie ich entweder mehrere Boards miteinander verbinde oder einzeln die Programmteile arbeiten lassen.

Die nächsten Schritte sind Lichtschranken und Infrarot. Ein Zug fährt durch Lichtschranke und erhält einen IR Befehl zum Stehenbleiben oder zum Beschleunigen, etc.

Ich halte euch auf dem Laufenden, muss erst mal schauen was ich so an Bauteilen noch brauche.

Dennis



Thomas52xxx , Lok24 , gefällt das


20 vorhergehende Beiträge sind ausgeblendet

Alle anzeigen Immer alle anzeigen Beitragsbaum

Lok24
11.01.2015, 19:04

Als Antwort auf den Beitrag von muah

Re: Arduino steuert PF-Motor

Hallo,

so wie ich es lese jeder Port(!) max 40mA, da fehlt irgendwo eine Leistungsendstufe, oder?
Du betreibst den Motor nicht etwa direkt an den IC-Ausgängen? *haaresträub*

Grüße

Werner



muah
11.01.2015, 19:08

Als Antwort auf den Beitrag von Lok24

Editiert von
muah
11.01.2015, 19:08

Re: Arduino steuert PF-Motor

Hallo Werner,

40mA pro Ausgang beim Arduino, der IC kann 1A. Ja, der Motor wird direkt an den IC angeschlossen. Das ist wohl soweit auch korrekt, allerdings sollten zwischen IC und Motor wohl noch Widerstände o.ä., allerdings fehlen mir da die Kenntnisse.

Dennis



Lok24
11.01.2015, 19:18

Als Antwort auf den Beitrag von muah

Re: Arduino steuert PF-Motor

Hallo Dennis,

ah, Du hast einen Treiber-IC dahinter.
Das war mir nicht klar. Dann ist alles gut.
d.h. aber Du betreibst den Motor mit einer externen Spannungsquelle.
Da wüsste ich keine sinnvolle Verwendung für Widerstände (evtl Pull-Up, aber die sind meist integriert.

Grüße

Werner



muah
11.01.2015, 19:27

Als Antwort auf den Beitrag von Lok24

Re: Arduino steuert PF-Motor

Vielleicht zum Besseren Verständnis, ich habe mich an diesem Aufbau orientiert.

http://www.arduino-tutorial.de/2010/06/motorsteuerung-mit-einem-h-bridge-ic/



daniel.vergien
11.01.2015, 19:49

Als Antwort auf den Beitrag von Lok24

Re: Arduino steuert PF-Motor

Permalink

1000steine-Code

BBCode

HTML



Und zur Anzahl Motoren: ich kann doch (z.B. mit externen Bauteilen) jeden Motor einzeln mit Strom versorgen.
Mit anderen Worten: ich brauche zwei Ausgänge für Rechts-Linkslauf .
Mit 8 weiteren Ausgängen kann ich bestimmen, welcher von 256 Motoren damit laufen soll.


Genau das habe ich gemeint. Da die Motoren ja nur Spannung haben müssen wenn Sie sich drehen sollen, kann man einen PWL Ausgang mit einem Multiplexer auf verschiedene Motoren schalten. Wenn zwei Motoren aus irgendwelchen Gründen zur gleichen Zeit laufen müssen, muss man sie halt an zwei verschiedene Multiplexer hängen.

Bis denn

Daniel



BricksCorner
11.01.2015, 20:46

Als Antwort auf den Beitrag von muah

Re: Arduino steuert PF-Motor

Hallo Dennis,

ich meinte einfach als Ersatz für die PF-Fernsteuerung der Loks. Dabei werden ja maximal 2 Motoren per PWM angesteuert und eventuell noch die Beleuchtung.

Aber auch die Weichenfernsteuerung, die du planst klingt sehr interessant.

Viele Grüße
Christian


[image]


Betreiber einer fiktiven Privatbahn in 1:43 sowie Entwickler und Erbauer von Eisenbahnmodellen in 9W = Maßstab 1:43/passend zur Minifig.

Wir sehen uns am


muah
12.01.2015, 06:40

Als Antwort auf den Beitrag von BricksCorner

Re: Arduino steuert PF-Motor

Moin Christian,

ich will auf jeden Fall die IR Funktion testen. Meine Ideen gehen aktuell dahin wenn der Zug auf seinem Gleis im Schattenbahnhof durch die Lichtschranke fährt ein IR Signal zum Stehenbleiben zu bekommen. Mir schwebt auch vor den Zug bei der Auf- oder Abfahrt zum Schattenbahnhof in der Geschwindigkeit anzupassen. Werde mich hoffentlich in den nächsten Tagen mal um das Material kümmern können.

Habe letzte noch eine weitere Baustelle aufgemacht, der Horizon Zug hat jetzt zwei Motoren, habe aber das Gefühl die fahren unterschiedlich schnell, muss ich in Ruhe mal ausprobieren. Und obendrein muss ich meine Auffahrt anpassen, die Doppelwaggongs hebeln sich aus der Weiche, weil sie ja in der Mitte auf einem gemeinsamen Gestell fahren :/

Dennis



muah
22.01.2015, 18:48

Als Antwort auf den Beitrag von muah

Re: Arduino steuert PF-Motor

So, nachdem ich jetzt wieder etwas Zeit gefunden habe und meine Elektronikberatungsstelle "Thorsten" auch (der arme), hier nun die Ergebnisse

Horizon Zug mit je 1 PF-Motor im Triebwagen klappt mit 2x 50cm Verlängerung einer kurzen Verlängerung, allerdings beim Fahren über die Kreuzweiche wird das Kabel zwischen den Waggons so gespannt, dass es teilweise die Waggongs aus den Schienen drückt und dann der Waggon entgleist. Ich denke da muss ich die Kabel in den Waggonenden fest positionieren inkl. Bewegungsfreiheit, damit das nicht mehr passiert.

Zum Thema Arduino: ohne Unterstützung eines Fachkundigen ist das Thema echt frickelig. Inzwischen habe eine Lichtschranke mit IR-LED und IR-Empfänger am laufen, allerdings die falschen Widerstände und IR-Empfänger (woher soll ein Laie den Unterschied zwischen IR-Diode und IR-Transitor kennen) gekauft, was für ein Gefrickel. Thorsten war zwischendurch immer wieder innerlich am Kopfschütteln

Die Ansteuerung der Lego IR Empfänger geht dank einer Libary, die man frei runterladen geht, sehr einfach. Einfach Speed 1-7, Farbe (rot/blau) und Channel 1-4 angeben und der angeschlossene Motor tut seinen Job. Es gibt auch einen Befehl für STOPP. Liegt natürlich alles im Moment nur im Probeaufbau vor. Sobald wir die korrekten Bauteile haben werde ich einen Probeaufbau für 1 Weiche mit Lichtschranke und Halt für einen Zug herstellen, das ganze testen und hier dann ausführlich vorstellen inkl. Bauteilliste und Programmcode.

Einen schönen Abend.



Lok24
22.01.2015, 18:59

Als Antwort auf den Beitrag von muah

Re: Arduino steuert PF-Motor

Hallo,

vielen Dank für den interessanten Bericht.

Ich denke da muss ich die Kabel in den Waggonenden fest positionieren inkl. Bewegungsfreiheit, damit das nicht mehr passiert.


Ja, die sind störrisch. Viel besser wurde es bei mir, als ich das Kabel "hochkant" verlegt habe, also die Stecker senkrecht gestellt.

Grüße

Werner



bernd-das-brot
23.01.2015, 05:19

Als Antwort auf den Beitrag von Lok24

Re: Arduino steuert PF-Motor

Wenn du die Triebköpfe um eine Noppe verlängerst, passen beide Motoren in einen Triebkopf. Damit entfällt die ganze Fummelei mit den Kabeln quer durch den Zug, was auch das zerlegen Zecks transport vereinfacht.



Gesamter Thread: