RE: Bedarfsgesteuerte Ampelschaltung für Trambahn mit Arduino

#1 von MU5T4N6 , 24.03.2021 12:48

Servus zusammen,

ich habe folgendes Szenario:

Straßenkreuzung mit Straßen in zwei Richtungen und eine Trambahn, die die Kreuzung in eine Richtung kreuzt (unabhänging vom Straßenverkehr).

Jede Straße bekommt eine Ampel und auch die Trambahn (Grün-Rot). Jetzt brauche ich eine Schaltung, die folgendes Szenario bedienen kann:

Trambahnampel auf Rot.
Straßenampeln durchlaufen normalen Grün-Gelb-Rot-Zyklus.

Über einen Taster wird für eine wartende Tram der Abfahrbefehl gegeben, alle Straßenampeln laufen weiter im normalen Zyklus, bis alle Ampeln Rot zeigen, die jetzt anstehende Grünphase wird ausgesetzt, stattdessen schaltet die Trambahnampel auf Grün. nach ein paar Sekunden schaltet die Trambahnampel wieder auf Rot und die Straßenampeln machen im normalen Grün-Gelb-Rot-Zyklus weiter, bis wieder ein Abfahrbefehl gegeben wird.

Hat jemand eine Idee, wie ich das realisieren könnte?

Eine Alternative, die ich mir vorstellen könnte ist, dass die Trambahnampel in den Grün-Gelb-Rot-Zyklus integriert wird, aber nur, wenn eine Trambahn am Signal steht (Erkennung per Reedkontakt, Lichtschranke etc).


Gruß, Max


 
MU5T4N6
CityNightLine (CNL)
Beiträge: 1.820
Registriert am: 28.10.2013
Ort: England
Gleise |:| & ||
Spurweite H0, Z, 0, 00, 1
Stromart AC, DC, Digital, Analog


RE: Bedarfsgesteuerte Ampelschaltung für Trambahn mit Arduino

#2 von Martin Lutz , 24.03.2021 12:52

Zitat

Servus zusammen,

ich habe folgendes Szenario:

Straßenkreuzung mit Straßen in zwei Richtungen und eine Trambahn, die die Kreuzung in eine Richtung kreuzt.

Jede Straße bekommt eine Ampel und auch die Trambahn (Grün-Rot). Jetzt brauche ich eine Schaltung, die folgendes Szenario bedienen kann:

Trambahnampel auf Rot.
Straßenampeln durchlaufen normalen Grün-Gelb-Rot-Zyklus.

Über einen Taster wird für eine wartende Tram der Abfahrbefehl gegeben, alle Straßenampeln laufen weiter im normalen Zyklus, bis alle Ampeln Rot zeigen, die jetzt anstehende Grünphase wird ausgesetzt, stattdessen schaltet die Trambahnampel auf Grün. nach ein paar Sekunden schaltet die Trambahnampel wieder auf Rot und die Straßenampeln machen im normalen Grün-Gelb-Rot-Zyklus weiter, bis wieder ein Abfahrbefehl gegeben wird.

Hat jemand eine Idee, wie ich das realisieren könnte?

Eine Alternative, die ich mir vorstellen könnte ist, dass die Trambahnampel in den Grün-Gelb-Rot-Zyklus integriert wird, aber nur, wenn eine Trambahn am Signal steht (Erkennung per Reedkontakt, Lichtschranke etc).


Das wäre doch eine schöne Aufgabe für einen Arduino.


Martin Lutz  
Martin Lutz
Trans Europ Express (TEE)
Beiträge: 7.790
Registriert am: 28.04.2005


RE: Bedarfsgesteuerte Ampelschaltung für Trambahn mit Arduino

#3 von volkerS , 24.03.2021 18:07

Hallo Max,
rot/grün für eine Tram ist ungewöhnlich. Normalerweise wird da mit weißem senkrechtem (grün) oder waagrechtem (rot) Balken signalisiert. Es gibt auch noch Tram-Ampeln mit 3 Anzeigen, mittig ein weißer Punkt (gelb). Hintergrund ist die Verwechselungsgefahr für Autofahrer, die eventuell sonst ein Tram-Grün auf sich beziehen und einen Unfall bauen. In Mainz waren die Tram-Ampeln mit den KFZ-Ampeln parallelgeschaltet wenn es nur eine KFZ-Ampel gab. Anders natürlich wenn für Linksabbieger eine eigenen Ampel vorhanden ist. Heute ist es so, dass die Tram bei Annäherung an die Kreuzung alles komplett rot stellt und dann ihren Fahrweg freigibt.
Volker


volkerS  
volkerS
ICE-Sprinter
Beiträge: 6.009
Registriert am: 14.10.2014


RE: Bedarfsgesteuerte Ampelschaltung für Trambahn mit Arduino

#4 von MU5T4N6 , 24.03.2021 18:18

Hallo Martin,
[quote="Martin Lutz" post_id=2268684 time=1616586765 user_id=124]
Das wäre doch eine schöne Aufgabe für einen Arduino.
[/quote]

Ja, die Lösung schaue ich mir auch gerade an, weiß aber nicht, ob ein Arduino aber nicht mit Kanonen auf Spatzen geschossen wäre... Ist schließlich nur für ein kleines Diorama.

Hallo Volker,

Zitat

rot/grün für eine Tram ist ungewöhnlich. Normalerweise wird da mit weißem senkrechtem (grün) oder waagrechtem (rot) Balken signalisiert. Es gibt auch noch Tram-Ampeln mit 3 Anzeigen, mittig ein weißer Punkt (gelb). Hintergrund ist die Verwechselungsgefahr für Autofahrer, die eventuell sonst ein Tram-Grün auf sich beziehen und einen Unfall bauen. In Mainz waren die Tram-Ampeln mit den KFZ-Ampeln parallelgeschaltet wenn es nur eine KFZ-Ampel gab. Anders natürlich wenn für Linksabbieger eine eigenen Ampel vorhanden ist. Heute ist es so, dass die Tram bei Annäherung an die Kreuzung alles komplett rot stellt und dann ihren Fahrweg freigibt.


Ich weiß ja nicht, wie du den Post oben verstanden hast, aber hier geht es nicht um die Bauform der Trambahnampel, sondern um die technische Umsetzung der Schaltung.


Gruß, Max


 
MU5T4N6
CityNightLine (CNL)
Beiträge: 1.820
Registriert am: 28.10.2013
Ort: England
Gleise |:| & ||
Spurweite H0, Z, 0, 00, 1
Stromart AC, DC, Digital, Analog


RE: Bedarfsgesteuerte Ampelschaltung für Trambahn mit Arduino

#5 von moppe , 24.03.2021 21:17

Zitat

Ja, die Lösung schaue ich mir auch gerade an, weiß aber nicht, ob ein Arduino aber nicht mit Kanonen auf Spatzen geschossen wäre... Ist schließlich nur für ein kleines Diorama.



Arduiuno kannst ganz mehr als Ampelsteuerung, es ist nicht nur ein Kanon das du die Spatzen schossen mit, sondern ein stalinorgel.

Aber es ist unbedingt der einfachste weg zu gehen!


Klaus


"Meine" Modellbahn:http://www.modelbaneeuropa.dk
Dänisches Bahnforum: http://www.baneforum.dk
PIKO C4 "Horror Gallery": http://moppe.dk/PIKOC4.html


 
moppe
Trans Europ Express (TEE)
Beiträge: 8.765
Registriert am: 07.08.2011
Homepage: Link
Ort: Norddeusche halbinsel
Gleise Roco, PECO, Märklin/Trix, PIKO,
Spurweite H0, H0e, N, Z
Steuerung Z21, Lenz, MpC Gahler+Ringsmeier, Games on Track/Faller
Stromart AC, DC, Digital, Analog


RE: Bedarfsgesteuerte Ampelschaltung für Trambahn mit Arduino

#6 von franz_H0m , 24.03.2021 22:00

Hallo Max,

Arduino ist wirklich die beste und einfachste Methode das zu machen.

Die Alternative ohne Microprozessor wären Schieberegister, ein Takgeber und einige Logikgatter.
Wenn Du keine Erfahrung mit Arduino hast, wäre eine Lösung die MobaLedLib hier im Forum, da kannst Du a...C konfigurieren. Der Schaltungsaufwand ist aber da initial etwas höher, dafür gibt es fertige Platinen.

Wenn Du keine Erfahrung mit Arduino hast und den Aufwand scheust, hilft Dir hier sicher jemand. Das, was du willst, ist so einfach, dass kostet nicht viel Zeit. Ich kann Dir da schon helfen. Dann bräuchst es aber mehr Info, wie Dein Aufbau aussieht.

Hast Du die Ampeln schon? Am allereinfachsten wird es, wenn man die direkt mit 5V vom Arduino aus ansteuern kann, dann wird die Schaltung supereinfach. Wie steuerst Du denn Deine Bahn - analog, digital oder vom PC?


Grüße, Franz

Mitglied bei den Lundarallarna.
Avatar: MAN-Zugmaschine der Ottensener Industriebahn (Foto: Dr. Ullrich Huckfeld).


 
franz_H0m
InterCity (IC)
Beiträge: 552
Registriert am: 02.11.2008
Ort: Lund, Sweden
Gleise Tillig/Eigenbau
Spurweite H0m
Steuerung z21PG DCC
Stromart Digital


RE: Bedarfsgesteuerte Ampelschaltung für Trambahn mit Arduino

#7 von franz_H0m , 24.03.2021 22:13

PS:

Verstehe ich den Ablauf richtig so:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 

Schritt Ampel 1/3 Ampel 2/4 Tramampel
1 rt rt HP0 -> kann HP1 -> HP0
2 rt/ge rt HP0
3 gn rt HP0
4 ge rt HP0
5 rt rt HP0 -> kann HP1 -> HP0
6 rt rt/ge HP0
7 rt gn HP0
8 rt ge HP0
 

Eingänge 1 Taster
Ausgänge 3 LED Ampel 1/3 (paarweise)
3 LED Ampel 2/4
2 LED Tramampel
 
 


Grüße, Franz

Mitglied bei den Lundarallarna.
Avatar: MAN-Zugmaschine der Ottensener Industriebahn (Foto: Dr. Ullrich Huckfeld).


 
franz_H0m
InterCity (IC)
Beiträge: 552
Registriert am: 02.11.2008
Ort: Lund, Sweden
Gleise Tillig/Eigenbau
Spurweite H0m
Steuerung z21PG DCC
Stromart Digital


RE: Bedarfsgesteuerte Ampelschaltung für Trambahn mit Arduino

#8 von MU5T4N6 , 25.03.2021 09:04

Zitat

Arduino ist wirklich die beste und einfachste Methode das zu machen.

[...]

Wenn Du keine Erfahrung mit Arduino hast und den Aufwand scheust, hilft Dir hier sicher jemand. Das, was du willst, ist so einfach, dass kostet nicht viel Zeit. Ich kann Dir da schon helfen. Dann bräuchst es aber mehr Info, wie Dein Aufbau aussieht.


Danke für das Angebot. Ich habe mich gestern abend ein wenig mit Arduino beschäftigt, und ja, das sieht recht einfach aus. Ich habe mir sogar direkt einen Uno R3 bestellt , der eben ankam, also werde ich mich heute mal damit beschäftigen, vielleicht sehen wir am Wochenende schon erste Ergebnisse...

Zitat
Hast Du die Ampeln schon?


Nein, die müssen noch geliefert werden, das dauert noch ein bisschen.

Zitat
Am allereinfachsten wird es, wenn man die direkt mit 5V vom Arduino aus ansteuern kann, dann wird die Schaltung supereinfach.


Das sollte über Widerstände möglich sein.

Zitat
Wie steuerst Du denn Deine Bahn - analog, digital oder vom PC?


Das Diorama wird wahlweise analog oder digital gesteuert. Die Ampelschaltung wird deshalb getrennt vom Bahnstrom aufgebaut.


Gruß, Max


 
MU5T4N6
CityNightLine (CNL)
Beiträge: 1.820
Registriert am: 28.10.2013
Ort: England
Gleise |:| & ||
Spurweite H0, Z, 0, 00, 1
Stromart AC, DC, Digital, Analog


RE: Bedarfsgesteuerte Ampelschaltung für Trambahn mit Arduino

#9 von MicroBahner , 25.03.2021 10:23

Schau dir mal mein Tutorial zum Arduino an. Da werden solche Abläufe anhand einer Verkehrsampel erklärt. Der Aufwand, dies um die Tramampel zu erweitern dürfte sich in Grenzen halten. Letzendlich bedeutet es, dass ein Teil der Abfolge ( die Tramampel ) normalerweise übersprungen wird, und nur ausgeführt wird, wenn die Tram den Abfahrtsauftrag hat.


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Bedarfsgesteuerte Ampelschaltung für Trambahn mit Arduino

#10 von franz_H0m , 25.03.2021 12:00

Hallo Franz-Peter,

dein Tutorial für den Zustandsautomaten kannte ich noch nicht, danke dafür! Ja, ich dachte im Prinzip an genau so eine Lösung, auch wenn meine Liste oben eher ein "Schrittschaltwerk". Zustandsautoamten tue ich mich etwas schwer mit, da kommt Dein Tutorial genau recht.


Grüße, Franz

Mitglied bei den Lundarallarna.
Avatar: MAN-Zugmaschine der Ottensener Industriebahn (Foto: Dr. Ullrich Huckfeld).


 
franz_H0m
InterCity (IC)
Beiträge: 552
Registriert am: 02.11.2008
Ort: Lund, Sweden
Gleise Tillig/Eigenbau
Spurweite H0m
Steuerung z21PG DCC
Stromart Digital


RE: Bedarfsgesteuerte Ampelschaltung für Trambahn mit Arduino

#11 von Gelegenheitsbahner , 25.03.2021 12:17

Hallo Max,

vom Prinzip her kannst du den Ampelzyklus als festen Ablauf schreiben. Das ist nicht die hohe Kunst der Programmierung (damit tue ich auch schwer) aber es funktioniert. Dafür findet man auch genug Arduino-Beispiele. Damit dein Straßenbahnsignal schaltet wäre eine if-Abfrage denkbar.

Also bildlich gesprochen: Liebes Programm, schalte alle PKW-Ampeln in dieser Abfolge durch. Falls eine Straßenbahn da ist, dann schalte Straße A nicht auf grün sondern das Straßenbahnsignal. Falls nicht, schalte Straße A auf grün.

Ob eine Straßenbahn da ist oder nicht kannst du mit einem Gleisbelegtmelder prüfen und als Datensignal an den Arduino schicken.

Auf jeden Fall ein schönes Thema, ich bleibe mal dabei.

Viele Grüße

Thomas


Planungsthread Anlage 2.0:
Vorstadtbahnhof mit Straßenbahn

Umbau TGV:
Vom Einsteigermodell zur 10-teiligen Einheit


Gelegenheitsbahner  
Gelegenheitsbahner
InterRegioExpress (IRE)
Beiträge: 301
Registriert am: 20.11.2014


RE: Bedarfsgesteuerte Ampelschaltung für Trambahn mit Arduino

#12 von MU5T4N6 , 25.03.2021 12:18

Also, ich habe soweit die Ampelsteuerung schon hinbekommen, die habe ich von hier genommen: https://hartmut-waller.info/arduinoblog/zwei-ampeln/
Das habe ich auch schon getestet, soweit so gut.
Nur weiß ich noch nicht, wie ich die Trambahnampel (grün/rot) mit Taster in den Ablauf integrieren kann.


Gruß, Max


 
MU5T4N6
CityNightLine (CNL)
Beiträge: 1.820
Registriert am: 28.10.2013
Ort: England
Gleise |:| & ||
Spurweite H0, Z, 0, 00, 1
Stromart AC, DC, Digital, Analog


RE: Bedarfsgesteuerte Ampelschaltung für Trambahn mit Arduino

#13 von Gelegenheitsbahner , 25.03.2021 12:58

Hallo Max,

für dein Straßenbahnsignal musst du dir nur eine Tritte Ampel definieren. Überall wo Ampel L oder Ampel R auftaucht auch einen entsprechenden Absatz mit Ampel T. Nach dem Beispiel wären die unteren beiden Absätze im loop ein Teil der if Abfrage. Du musst dir nur einen Eingang für den Button definieren (gibt´s unzählige Tutorials).

if "Button nicht gedrückt" -> Ampel R, else -> Ampel T

Viele Grüße

Thomas


Planungsthread Anlage 2.0:
Vorstadtbahnhof mit Straßenbahn

Umbau TGV:
Vom Einsteigermodell zur 10-teiligen Einheit


Gelegenheitsbahner  
Gelegenheitsbahner
InterRegioExpress (IRE)
Beiträge: 301
Registriert am: 20.11.2014


RE: Bedarfsgesteuerte Ampelschaltung für Trambahn mit Arduino

#14 von MU5T4N6 , 25.03.2021 13:21

Hallo Thomas,

Zitat

für dein Straßenbahnsignal musst du dir nur eine Tritte Ampel definieren. Überall wo Ampel L oder Ampel R auftaucht auch einen entsprechenden Absatz mit Ampel T. Nach dem Beispiel wären die unteren beiden Absätze im loop ein Teil der if Abfrage. Du musst dir nur einen Eingang für den Button definieren (gibt´s unzählige Tutorials).

if "Button nicht gedrückt" -> Ampel R, else -> Ampel T



Danke, das macht für mich schonmal Sinn. Aber wenn die if-Abfrage am Ende des Loops steht, würde der Taster auch erkannt und die Trambahnampel geschaltet werden wenn ich den Taster am Anfang des Loops drücke? (oder das Gleisbelegtsignal kommt).


Gruß, Max


 
MU5T4N6
CityNightLine (CNL)
Beiträge: 1.820
Registriert am: 28.10.2013
Ort: England
Gleise |:| & ||
Spurweite H0, Z, 0, 00, 1
Stromart AC, DC, Digital, Analog


RE: Bedarfsgesteuerte Ampelschaltung für Trambahn mit Arduino

#15 von Enkelbahner , 25.03.2021 13:42

Hallo Max,

das Problem: im DELAY macht der Arduino nix, auch keine Schalterabfrage.

Wenn Du mit delay arbeiten möchtest musst du eine Subroutine in dieser Art schreiben:

1
2
3
4
5
6
7
8
9
10
 

// Kein Code nur Funktionsdemo !!!!
my_delay(nr)
(
for 0 to nr
(
if schaltergedrückt -> Tram_Flg = true
delay(1)
)

 



Am Ende des Ampelloop kommt dann sowas:

1
2
3
4
5
6
7
8
9
10
11
12
13
 

// Kein Code nur Funktionsdemo !!!!
if (Tram_Flg == true)
{
Tram_Flg = false
cycle ampel_down() // Funktion: L+R Ampel werden sauber auf rot gesetzt (mit Gelb-Phase)
Delay (sicherheitszeit)
Tram "GRÜN"
Delay (Tramlosfahrzeit)
Tram "ROT"
Delay (sicherheitszeit)
cycle ampel_up() // Funktion: L+R Ampel sauber auf Eingangsbedingung setzen
}
 



Ich hoffe ich habe es verständlich genug rübergebracht .

Gruss

Ulli


(M)ein bisschen 3D-Druck : etwas bergisches...


Enkelbahner  
Enkelbahner
InterRegioExpress (IRE)
Beiträge: 320
Registriert am: 09.04.2020


RE: Bedarfsgesteuerte Ampelschaltung für Trambahn mit Arduino

#16 von franz_H0m , 25.03.2021 14:07

Hallo,

sowie Ulli geschrieben hat, trickst Du das delay() quasi aus. Kann man machen und reicht auch. Der Trick ist, wann immer möglich den Taster abzufragen und ein Flag zu setzen, und dann wenn das Flag gesetzt ist an der entsprechenden Stelle in die Tram-Ampel zu verzweigen.

Das ist das gemeine an diesen delay() Beispielen - man kommt leicht rein und schwer wieder raus, weil man im delay() nichts anderes machen kann und dann tricksen muss.

Eventuell lohnt es sich, wenn Du dich von Anfang an mit der Weise ohne delay() vertraut machst, und Franz-Peters Tutorial ist da auch ein guter Weg.
Sonst such mal nach "Arduino blinken ohne delay()".

Viel Spass noch, die Lernkurve ist steil aber befriedigend.


Grüße, Franz

Mitglied bei den Lundarallarna.
Avatar: MAN-Zugmaschine der Ottensener Industriebahn (Foto: Dr. Ullrich Huckfeld).


 
franz_H0m
InterCity (IC)
Beiträge: 552
Registriert am: 02.11.2008
Ort: Lund, Sweden
Gleise Tillig/Eigenbau
Spurweite H0m
Steuerung z21PG DCC
Stromart Digital


RE: Bedarfsgesteuerte Ampelschaltung für Trambahn mit Arduino

#17 von MU5T4N6 , 25.03.2021 14:10

Ja, in die Delay Falle bin ich schon längst getappt und auch gemerkt, dass das doch recht limitierend ist Ich arbeite mich gerade durch die MobaLEDLib und die MobaTools von Franz-Peter.
Mal sehen, was ich daraus gewinnen kann.


Gruß, Max


 
MU5T4N6
CityNightLine (CNL)
Beiträge: 1.820
Registriert am: 28.10.2013
Ort: England
Gleise |:| & ||
Spurweite H0, Z, 0, 00, 1
Stromart AC, DC, Digital, Analog


RE: Bedarfsgesteuerte Ampelschaltung für Trambahn mit Arduino

#18 von e69-fan ( gelöscht ) , 25.03.2021 16:40

Hallo,

wenn Ihr schon die MobaTools von MicroBahner einsetzt, verwendet doch bitte auch den "MoToTimer". Das Teil ist ideal für die Programmierung ohne dem kritischen "delay". Die MoToButton auch nicht aus dem Auge verlieren, da es das Tasterprellen egalisiert.

Also erstmal die einzelnen Beispiele der MobaTools testen und dann nach Bedarf zusammenstellen. Alles aus einer Hand.


e69-fan

RE: Bedarfsgesteuerte Ampelschaltung für Trambahn mit Arduino

#19 von Enkelbahner , 27.03.2021 08:37

Hallo Max,

es gibt noch einen anderen Weg den Taster einzubinden: Per Interrupt.

Der ist leider Hardware abhängig und man muss wissen, wie der vom vorliegenden Arduino unterstützt wird. Ist aber dafür in wenigen Zeilen erledigt, bedeutet aber auch einen tieferen Einstig in die Materie. Beispiele gibt es genug, auch Tabellen welcher Arduino an welchem Pin Interrupt kann. Nur die Denkweise weicht bei diese Art der Steuerung stark vom normalen Arduino-Sketch ab, da der Arduino scheinbar zwei Dinge gleichzeitig macht und man keinen Einfluss auf die Synchronisation von Hauptloop und Interruptloop (also eine 1 x Loop) hat.

Meine persönliche Meinung: Ein paar Lämpchen schalten und einen Schalter abfragen geht auch mit Bordmitteln ohne aufwändige Tools, die Timingungenauigkeiten von DELAY + Code zu einer Timerlösung kann man bei einer Ampel tolerieren, es sei denn es ist die Startampel für 1/4 Meile Race . Aber wenn es Spaß macht ist ja alles möglich, auch ein TTL-Grab oder ein Walzenschaltwerk .


@e69-fan: Schalterprellen ist hier kein Problem, die Anzahl der Tram-Anforderungen wird ja nicht gezählt und bis die Tram losgefahren ist sollte auch der schlechteste Schalter Ruhe geben.



Gruss

Ulli


(M)ein bisschen 3D-Druck : etwas bergisches...


Enkelbahner  
Enkelbahner
InterRegioExpress (IRE)
Beiträge: 320
Registriert am: 09.04.2020


RE: Bedarfsgesteuerte Ampelschaltung für Trambahn mit Arduino

#20 von MicroBahner , 27.03.2021 09:09

Zitat

es gibt noch einen anderen Weg den Taster einzubinden: Per Interrupt.

Ein Interupt ist die schlechteste Lösung einen Taster einzulesen. Interrupts sind für Dinge, wo es auf schnelle Reaktion ankommt. Die Behalndlung eines Tasters ist aus Prozessorsicht ein extrem 'langweiliger' Prozess. Man handelt sich da im Zweifelsfall mehr Probleme ein als die Sache wert ist.

Zitat

... man keinen Einfluss auf die Synchronisation von Hauptloop und Interruptloop (also eine 1 x Loop) hat.

Es gibt keinen 'Interruptloop' - im Interrupt 'loopt' nichts. Man sollte die DInge nicht falsch bezeichnen, das verwirrt nur.

Zitat

... die Timingungenauigkeiten von DELAY + Code zu einer Timerlösung kann man bei einer Ampel tolerieren,

Bei der Verwendung von delay() geht es nicht um Timing-Ungenauigkeiten, sondern darum, dass der Prozesser während der gesamten delay-Zeit blockiert ist und nichts anderes tun kann.

Die beste und effektiveste Möglichkeit ist es immer noch, sich mit blockadefreier Programmiertechnik auseinanderzusetzen und dies zu lernen. Dann werden viele Dinge plötzlich ganz einfach.


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Bedarfsgesteuerte Ampelschaltung für Trambahn mit Arduino

#21 von Enkelbahner , 27.03.2021 10:40

Hallo Franz-Peter

Zitat

--SCHNIPP/SCHNAPP--
Die beste und effektiveste Möglichkeit ist es immer noch, sich mit blockadefreier Programmiertechnik auseinanderzusetzen und dies zu lernen. Dann werden viele Dinge plötzlich ganz einfach.
--SCHNIPP/SCHNAPP--



Kann ich so zustimmen, aber wenn ich hier richtig mitgelesen habe handelt es sich um einen Arduino Neueinstieg. ich habe versucht das mit einfachen Worten darzustellen, deshalb die Ungenauigkeit mit der 1 x Loop. Ist mir scheinbar nicht so gelungen flaster: .

Nur schaue doch bitte mal in #12. Die Ampel gibt es schon und der Schalter soll eingebunden werden. Das war die Frage und dafür wird eine Lösung gesucht. Da kann man aus meiner persönlichen Sicht in diesem Fall einen kostbaren Interrupt "opfern" oder das DELAY in Zeitscheiben schneiden um den Schalter abzufragen. Alles Lösungen um mit DELAY zu arbeiten, die im Ampelsketch reichlich genutzt werden. Mehr muss das Ding nicht können, die Rechenzeitverschwendung für DELAY steht also hier reichlich zur Verfügung.

Das man das alles besser und strukturierter machen kann ist unbestritten, dann muss man sich aber von der vorhandenen Ampelschaltung trennen und neu beginnen.

P.S. Der Smiley hinter dem Satz mit der Timingungenauigkeit war dafür gemeint.

Gruss
Ulli


(M)ein bisschen 3D-Druck : etwas bergisches...


Enkelbahner  
Enkelbahner
InterRegioExpress (IRE)
Beiträge: 320
Registriert am: 09.04.2020


RE: Bedarfsgesteuerte Ampelschaltung für Trambahn mit Arduino

#22 von MicroBahner , 27.03.2021 13:13

Hallo Ulli,
das kann grundsätzlich natürlich jeder machen wie er möchte. Meistens bleibt es aber nicht bei einem Projekt, wenn man einmal die Möglichkeiten des Arduino kennengelernt hat. Und dann ist es besser, sich so früh wie möglich eine blockadefreie - und damit 'zukunftsorientierte' Progammiertechnik anzueigenen.
Von Interrupts sollten mMn gerade Einsteiger erstmal die Finger lassen. Es gibt da einfach zu viele Fallstricke. Ich bin ja auch in reinen Arduino-Foren aktiv, und was man da oftmals in der Hinsicht sieht... .

Zitat

Nur schaue doch bitte mal in #12. Die Ampel gibt es schon

Einen fertigen Ampelsketch in blockadefreier Variante gibt's ja in meinem Tutorial auch. Den kann man dann als Basis hernehmen und um den Tramschalter erweitern. Ist gleich eine schöne Übung für weitere Projekte


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Bedarfsgesteuerte Ampelschaltung für Trambahn mit Arduino

#23 von franz_H0m , 27.03.2021 13:30

Zitat

Von Interrupts sollten mMn gerade Einsteiger erstmal die Finger lassen. Es gibt da einfach zu viele Fallstricke. Ich bin ja auch in reinen Arduino-Foren aktiv, und was man da oftmals in der Hinsicht sieht... .



Komplett OT: Welche Foren findest Du gut? Ich lande da immer wo anders und habe noch kein gutes Zuhause gefunden, wo ich aucn mal was vorstellen würde. Manche Elektronikforen haben einen ganz grausigen Umgangston...


Grüße, Franz

Mitglied bei den Lundarallarna.
Avatar: MAN-Zugmaschine der Ottensener Industriebahn (Foto: Dr. Ullrich Huckfeld).


 
franz_H0m
InterCity (IC)
Beiträge: 552
Registriert am: 02.11.2008
Ort: Lund, Sweden
Gleise Tillig/Eigenbau
Spurweite H0m
Steuerung z21PG DCC
Stromart Digital


RE: Bedarfsgesteuerte Ampelschaltung für Trambahn mit Arduino

#24 von Enkelbahner , 27.03.2021 14:23

Hallo Franz-Peter,
danke für Deine Rückantwort. Nur um es klar zustellen, der Sketch der Ampel aus #12 ist nicht vom mir und ich habe versucht auf die Frage dort zu Antworten.

Obwohl ich grad keine Ampel mit Arduino plane, habe ich mir Deinen Sketch angeschaut und auch ich bin ein Freund der Trennung von Code und Daten, lediglich das Timing würde ich bei einer Ampel mit festem Zeitraster anders lösen (fester Takt wie im Maschinenbau vielfach genutzt), um der Timervielfalt zu entgehen. Aber jeder so wie er mag und der Erfolg zählt, ansonsten sehr gutes Tutorial von Dir.


Gruss
Ulli


(M)ein bisschen 3D-Druck : etwas bergisches...


Enkelbahner  
Enkelbahner
InterRegioExpress (IRE)
Beiträge: 320
Registriert am: 09.04.2020


RE: Bedarfsgesteuerte Ampelschaltung für Trambahn mit Arduino

#25 von MicroBahner , 27.03.2021 14:29

Hallo Ulli,

Zitat

der Sketch der Ampel aus #12 ist nicht vom mir

Das war mir schon klar

Zitat

das Timing würde ich bei einer Ampel mit festem Zeitraster anders lösen

Ein Problem, 5 Programmierer, >6 Lösungen - war schon immer so .


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


   

Frage zu 9 V Lithium Ionen Akkus
Lokschuppentor mit Arduino und Servo

  • Ähnliche Themen
    Antworten
    Zugriffe
    Letzter Beitrag
Xobor Einfach ein eigenes Forum erstellen
Datenschutz