muah
10.01.2015, 12:48

+3Arduino steuert PF-Motor

Permalink

1000steine-Code

BBCode

HTML


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


BricksCorner
10.01.2015, 13:18

Als Antwort auf den Beitrag von muah

Re: Arduino steuert PF-Motor

Hallo Dennis,

ein sehr interessantes Projekt hast du da gestartet. Ist es nach einer ersten Einschätzung deinerseits auch möglich, mit dem Arduino Loks anzusteuern? Von der Platinengröße her könnte es schwierig werden, ihn zu verbauen. Mich interessiert daher vor allem die technische Umsetzbarkeit.

Ich werde auf jeden Fall deine Erfahrungsberichte weiter verfolgen.

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


unschuldslamm
10.01.2015, 14:07

Als Antwort auf den Beitrag von muah

Re: Arduino steuert PF-Motor

warum brauchst Du dafür nen PWM Ausgang und nimmst nicht einfach einen normalen digitalen Ausgang?



unschuldslamm
10.01.2015, 14:12

Als Antwort auf den Beitrag von BricksCorner

Re: Arduino steuert PF-Motor



[...] Von der Platinengröße her könnte es schwierig werden, ihn zu verbauen. Mich interessiert daher vor allem die technische Umsetzbarkeit.

[...]


siehe:
http://store.arduino.cc/product/A000053
oder:
http://store.arduino.cc/product/E000055

bzw.:
http://store.arduino.cc/category/11

MfG



LuDaCriSoNe
10.01.2015, 15:04

Als Antwort auf den Beitrag von unschuldslamm

Re: Arduino steuert PF-Motor

Die Idee ist gut, aber für die meisten wohl zu kompliziert.

Für die Steuerung von z.B. Weichen, einem Bahnübergang oder einer Drehscheibe, lässt sich am besten Lego Mindstorms 1.0-2.0 verwenden.
Die alten Sets sind relativ günstig (den RCX bekommt man schon ab 20€).

Ich habe das vor kurzem erst getestet.
Ein PF Zug wird vom RCX gesteuert (ein Motor für Start/Beschleunigung und ein anderer für Stop).

Dazu habe ich eine kurze dauerschleife programmiert.
Ich drücke auf Start und der Zug fährt los (Geschwindigkeit vorher berechnet). Dann fährt er durch eine Lichtschranke (Lichtsensor Lego) wodurch eine Weiche gestellt wird. Der Zug fährt über die Weiche auf ein Abstellgleis und hält dann an. Da könnte z.B. ein Bahnhof stehen etc.

Nachdem der Zug steht, schaltet die Weiche wieder zurück.

Das ist nur eine sehr simple Programmierung, aber auch das lässt sich ausdehnen, wenn man weiß was man realisieren möchte.

Arduino ist nicht schlecht, aber wäre es nicht einfacher alles direkt Digital zu steuern?
Eine Basis und in jeder Lok nen Decoder etc. So hab ich das später mal vor.


Instagram -> the_collector_of_lego
https://brickset.com/sets/ownedby-LuDaCriSoNe


muah
10.01.2015, 16:53

Als Antwort auf den Beitrag von BricksCorner

Re: Arduino steuert PF-Motor

Wie genau meinst du das mit ansteuern? So als Empfänger für eine digital Fernsteuerung so wie der Vorschlag von LuDaCriSoNe?
Ich denke das geht bestimmt, nur die Frage wie. Falls mir das in die Finger kommt werde ich mich hier dazu melden.



muah
10.01.2015, 17:07

Als Antwort auf den Beitrag von unschuldslamm

Editiert von
muah
10.01.2015, 17:18

Re: Arduino steuert PF-Motor

Der aktuell verwendete IC kann im Dauerbetrieb 1A vertragen, in der Spitze wohl bis 2A (für 5ms). Der PF Motor zieht im Leerlauf bereits 600mA, an der Weiche mit durchdrehendem Rad 1,2A. Wenn ich ihn also mit weniger Strom versorge (im Moment ca. 4V) kann ich die Zeit die er laufen muss, feiner justieren, so dass das weiße 2,5NM Rad nicht durchdrehen muss und dadurch der Motor nicht so viel Leistung zieht, was den IC länger am Leben hält. Ich bin bereits auf der Suche nach fertigen H-Bridge Boards die etwas mehr Leistung bis 2A Dauerbetrieb können, dann probiere ich das mit vollen 9V aus.



muah
10.01.2015, 17:16

Als Antwort auf den Beitrag von LuDaCriSoNe

Re: Arduino steuert PF-Motor

Mit dem kompliziert könntest du Recht haben, man muss sich schon etwas mehr mit dem Thema beschäftigen. Mit den Lego Mindstorms Produkte kenne ich mich gar nicht aus, deswegen schwer dazu was zu sagen.
Bei meinem Vorhaben wollte ich in erster Instanz nur eine Teilunterstützung, also Weichen im Schattenbahnhof und Kreuzweiche im Zubringer, alles weitere dann später. Ich habe die Befürchtung wenn ich mich zu lange am Thema Steuerung aufhalte, bleiben die anderen Baustellen geschlossen. Also dann jetzt eine kleinere Lösung und sobald das läuft wieder zum Thema Steuerung.



FlowRian
10.01.2015, 22:12

Als Antwort auf den Beitrag von muah

Re: Arduino steuert PF-Motor

Hi,

ich kann dir nicht viel raten oder sagen, oder irgendwas, aber das gefällt mir.
Interessant, was man alles ausprobieren kann.

Fritzing habe ich auf der MakeMunich letzten November kennengelernt, einer Messe für jegliches Selbermachen, 3d-Drucken, elektrisch basteln etc. Dort wäre deine Weiche (oder wird) sicher gut ankommen als Ausstellungsobjekt ;)

Werde ich auf jeden Fall weiter verfolgen, was du so machst.

Gruß, Florian


[image]


unschuldslamm
11.01.2015, 01:51

Als Antwort auf den Beitrag von muah

Re: Arduino steuert PF-Motor

Ich muss gestehen, dass ich Deine Schaltung doch noch nicht ganz verstanden habe...

Mein erster Gedanke war, Du willst einen Motor zeitgesteuert ansteuern. Da war mein Gedanke:
Transistor um Steuersignal und den Stromkreis vom Moter zu verbinden. Und solange der Motor laufen soll, wird der entsprechende digitale Ausagang gesetzt. Und wenn der Motor nicht mehr laufen soll, schaltest Du das Steuersignal wieder aus... ganz einfache Aufgabe für den digitalen Ausgang.

Du musst ja aber den Richtungswechsel beim Motor noch einbauen. Da weis ich ned was Dein IC macht. Bzw. wie der PF-Motor tickt. Du führst ja auch nur zwei Kabel zum Motor....

Ich habe bisher nur ein bisschen mit Arduino und Motoren gearbeitet und auch schon länger her. Aber ich habe die immer über die servo.h Bibliothek angesteuert und dazu sagt arduino.cc:
"The Servo library supports up to 12 motors on most Arduino boards and 48 on the Arduino Mega.[...]" Also die Ansteuerung funktioniert dann offenbar über ganz normale digitale Ausgänge...
siehe: http://arduino.cc/en/pmwiki.php?n=Reference/Servo


Wenn ich ihn also mit weniger Strom versorge (im Moment ca. 4V) kann ich die Zeit die er laufen muss, feiner justieren,


Das ist aber doch eine Frage, welchen Widerstand Du in den Stromkreis mit der 9V Batterie einbaust, oder?

Danke



21 nachfolgende Beiträge sind ausgeblendet

Alle anzeigen Immer alle anzeigen

Gesamter Thread: