Pages: [1]   Go Down
Author Topic: Lichtschrankenabfrage und Libary  (Read 422 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 25
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

ich habe für meine Projekte schon interessante Libarys wie OneButton, Ethernet, LiquidCrystal_I2C benutzt.
Jetzt suche ich eine Libary für eine Lichtschrankenabfrage. Aufbau sind vier Lichtschranken die jeweils einen von 4 States
schalten sollen. Aber nur wenn dann wenn Lichtschranke unterbrochen und nicht wenn die Lichtschranke wieder aktiv.
Die Lichtschranke soll an A0-3 angeschlossen werden und der analoge Schwellwert einstellbar sein.
Hat jemand dafür einen cleveren Code.
Danke,

Gruß Rickor
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 236
Posts: 20281
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Was sind States?

Auf Anhieb fällt mir ein:
Code:
if(analogRead(A0)>= Schwellwert) States on.

Grüße Uwe
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 25
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

meinte switch / case statements.
meine Überlegung ist auch void untergruppen und in der loop muss millis laufen, da bei jeder Zustandsänderung, ein Ausgang für 2sek auf HIGH muss. Die ganze Ausgangssteuerung beherrsche ich bestens. Aber Eingänge die ständig einen Wert liefern und dann nur eine Zustandsänderung bewirken soll, die dann solange bleibt bis die nächste Zustandsänderung auslöst, damit tue ich mich noch schwer.
Die Zustandsänderung soll auch dann erst eintreten wenn sie eine definierte Zeit eintritt, zb 200-500ms um Störeinflüsse auszuschliessen.
« Last Edit: March 10, 2013, 03:37:34 pm by Rickor » Logged

Offline Offline
God Member
*****
Karma: 4
Posts: 581
ATmega 2560
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

warum möchtest Du die Lichtschranken mit einen Analogsignal auswerten? Gute Lichtschranken haben am Ausgang einen Schmidttrigger. Und wenn nicht hängste einen hinten dran. Damit hättest Du ein zuverlässiges sauberes digitales Signal.
Logged

Tschau
Doc Arduino

Offline Offline
Newbie
*
Karma: 0
Posts: 25
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

die Betonung liegt auf gute aber auch teure. Bautechnisch lässt sich in das Gleisbett der Modelleisenbahn keine Lichtschranke einbauen.
Und wozu wieder andere Elektronik wenn Arduino ;-) Derzeit läuft alles mit herkömmlicher Technik und alten Schrittrelais aus
einer Vermittlungsstelle. Das soll alles mal raus und der Arduino ran. Zuviel Platinen sind ja auch wieder Störanfällig.
Es gibt doch schon soviele Lösungen für den Arduino. Selbst ein komplexes Ethernetshield läuft bestens bei mir. ;-)
Logged

Offline Offline
God Member
*****
Karma: 4
Posts: 581
ATmega 2560
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

Modelleisenbahn. Schönes Hobby.  smiley 
Modelleisenbahn ist in erster Linie Bastelspass. Das spielen hat 2. Priorität.  smiley-grin Was willste denn mit den Lichtschranken überwachen? Möchtest Du mitbekommen wann ein Zug an einem gewissen Punkt ist? Blockstrecken oder sowas?


Logged

Tschau
Doc Arduino

Offline Offline
Newbie
*
Karma: 0
Posts: 25
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

genau am Gleisende ist eine Lichtschranke heißt Fahrspannung wird umgepolt und dann sind noch Weichen zustellen, das der Zug mal auf Gleis 1,2,3 einfährt. Die Steuerung der weichen erfolgt mit einem kurzen Impuls. Dafür millis().
Logged

Offline Offline
God Member
*****
Karma: 4
Posts: 581
ATmega 2560
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

Du möchtest mitten in der Schiene eine Lichtschranke einsetzen um den Zug bzw. Lok zu erkennen? Kannste gleich noch ein Barcode unter Lok anbringen damit Du weist welcher Zug dort gerade steht.  smiley

Man könnte vielleicht auch ein Reedkontakt verwenden. Ein Magnet unter der Lok oder Wagen sieht niemand. Könnte man vielleicht machen.

Man kann aber auch ein Stück Gleis so modifizieren das ein Metallrad der Lok selbst ein "Kontakt schließen" darstellt. Man nimmt zwei eng benachbarte Trennstellen auf einer Gleisseite vor. Dieses enge Mittelstück schließt man elektrisch korrekt beschalten wegen max. 5V an den Arduino an. Wenn jetzt das Metallrad von dem Spannungs führenden Schienenteil die eingesägte Lücke überbrückt hat man sein Signal zur Erkennung "Lok ist da". Wenn man das weiter vorn einbaut, kann man den Zug noch per PWM langsam zum Stillstand bringen. So als Idee.

Zu meiner TT Spiel und Bastelzeit gabs für Blockstrecken nur Trennstücke mit eingebauter Diode. Sodass es nur in einer Richtung wirkte. Jetzt gibt es Gleisbelegtmelder und fertig beschaltete Trenngleise. Macht eigentlich das gleiche wie oben mit anderer Methode beschriebe.

Logged

Tschau
Doc Arduino

Pages: [1]   Go Up
Jump to: