Voor mijn spoorbaan gebruik ik: ROCRAIl - LOCONET - ARDUINO.
( Met dank aan youtube, vooral de info op het internet, van Peter Gilling.)
Dit alles nog in een test face.
Zo ook de aansturing van mijn seinen.
Om een kort overzicht te geven ,heb een filmpje gemaakt.
( Iets wat ik ook wel eens wou proberen.)
https://youtu.be/JZdDi5xEfwI
Leuk project.
Alleen jammer dat je in het filmpje de lichtkleur oranje noemt. De officiële naam voor deze kleur is geel.
Leuk gedaan!
tof filmpje, mooi om het vergelijk met de echte treinen te zien. Heel mooi gedaan!
Een paar tips, zoek eens naar de SoftPWM library. Daar kan je normaal 4 seinen (volledig) per Nano mee aansturen en op alle leds PWD doen.
Ik zou ook proberen af te stappen van delay() in code. Tijdens zo een delay kan je niets anders doen, dus ook niet luisteren naar inputs of andere leds laten veranderen.
Ik ben hier ook mee bezig, maar gebruik de output van iTrain om de seinen aan te sturen.
Kan je dat ook niet via Rocrail doen? En de arduino naar DCC laten luisteren?
Citaat van: perk op 28 november 2021, 23:38:49 PM
En de arduino naar DCC laten luisteren?
Er is een libray die de arduino DCC laat afhandelen.
https://www.arduino.cc/reference/en/libraries/nmradcc/
grt Piet.
Mooi gedaan. Perfecte knipper frequentie. Maar ik heb toch de indruk dat het veranderen van seinbeeld te plots is. Naar mijn gevoel moet het meer in de richting gaan van, één seinbeeld langzaam uit en het ander langzaam aan met een kleine overlapping omdat, volgens de informatie die ik destijds van infrabel gekregen heb, er steeds een seinbeeld actief moet zijn (stroomdetectie). Het actieve seinbeeld dooft over één seconde, terwijl het andere begint op te lichten over dezelfde seconde. Maar het kan ook aan mijn afnemende gezichtsscherpte te wijten zijn hoor.
Groeten.
Ludo.
Die langzame overgang ontstaat vanzelf doordat het gloeilampen zijn met een vrij lage spanning. Ik weet niet hoe de ontwikkelingen in België zijn, maar in Nederland worden de gloeilampen vervangen door leds, en die geven een vrij abrupte overgang.
Leuk filmpje en goed gedaan.
Alleen nu nog gebruik maken van een sein voor tegenspoor (paneel andersom) en het is in orde. :)
Trouwens , de knipperfrequentie is niet overal hetzelfde hoor. Ik heb al afwijkingen gezien hoor. ;D
Als je echt overgangen wil, de SoftPWM library die ik gebruik laat zachtjes aan en uit faden per kanaal toe. Allemaal instelbaar met een paar simpele parameters.
Probleem soms met libraries zijn conflicten, ik ben er niet in geslaagd DCC, servosturing en SoftPWM in 1 Arduino tesamen aan de praat te krijgen. Dus in de toekomst ga ik het simpeler houden met als voordeel _misschien_ een universeler inzetbare Arduino bouwsteen.
Het blijft leuk zo te zien op de baan, 'k brengt meer leven in de brouwerij
Klaas, Oranje ipv Geel is inderdaad een DOMME schrijffout.
Patrick, van de SoftPWM library had ik nog niet gehoord. Zal dit zeker nog eens bekijken in de toekomst.
De delay is opgenomen in het prog. om een tijd te creéren, namelijk hoe langzaam moet de led aan of uit gaan.
Het totale programma is gebaseerd op het lezen van verschillende IF-State's, met een WHILE-Loop gevolgd.
( Zie basis van het programma.)
De delay is 1 milliseconde. ( 1/1000 van een sec.)
Het PWM signaal met een teller, teller op nul, led uit. Teller op 255, led brandt op max waarde.
Dit geeft "1 getal van de teller is 1 millisec "+ delay van 1 millisec , geeft 2 millisec x 255 = 510 ofwel ongeveer een halve
seconde.
Als ik de opgenomen beelden van het Sein bekijk frame per frame, 24 frame's per sec.
Geeft dit bij het tegenspoor sein dat het gele licht ietsjes meer dan één seconde voor de volledige cyclus van de knipperende
lichten.
Waar ik dan nog eens een delay van 150 millisec heb toegevoegd tussen het uit zijn en terug aan gaan.
om de juiste frequentie te bekomen.
In ROCRAIL kan je actie's gebruiken om van alles te laten gebeuren door bijvoorbeeld melders.
Misschien kan Albert hier meer over vertellen. ( Ik ben nog niet zo ver met het testen.)
Ludo, Ik weet ook niet 100% zeker hoe het tijdverloop is.
Het volledig wisselen van de lichten geel naar rood duurt wederom iets meer dan een seconde.
Maar er is inderdaad een overlapping van 3 frame's,
dat beide lichten geel en rood samen aan zijn. 3 frame's geeft 150 millisec, anderhalf tiende van een seconde.
Claudio, Ik heb dit inderdaad ook al gemerkt, dat alle seinen niet overal gelijk zijn, wat de knipperfrequentie betreft.
Dus het is kiezen wat je als voorbeeld neemt.
Ik heb eens bij het station van Buizingen 's avonds op het viaduct van de Alsembergsesteenweg gestaan. Daar kon je mooi meerdere tegenspoorseinen zien knipperen. De frequentie was bijna gelijk, maar je zag ze langzaam uit de pas lopen. Mijn conclusie is dat elk sein een eigen knipperrelais heeft en dat ze dus niet uit een centrale knipperschakeling worden gestuurd.
Een afzonderlijk knipperrelais is al zeker een puzzelstukje ter voorkoming van common cause failures.
Citaat van: Klaas Zondervan op 29 november 2021, 21:55:16 PM
Die langzame overgang ontstaat vanzelf doordat het gloeilampen zijn met een vrij lage spanning.
Dag Klaas,
Begrijp ik het goed dat lampen op een lagere spanning langzamer doven? Wat is daar de verklaring voor?
Ik heb me ook al wel eens afgevraagd of die lampen wel echt volledig uit gaan. Zou de levensduur niet langer zijn als ze niet volledig uitgaan tijdens het knipperen?
@Patrick: lampen voor een lage spanning hebben een dikkere gloeidraad die langzamer afkoelt.
Voor de levensduur maakt het knipperen weinig uit. Ik heb een tijdje onderhoud gedaan aan verkeerslichtinstallaties en daarbij hield ik een logboek bij van alle aanpassingen en reparaties. Daaruit bleek dat de rode lampen het vaakst stuk gingen. Dat kan ik alleen maar verklaren doordat rood de meeste branduren maakt. Maar de gele lampen die de hele nacht stonden te knipperen gingen niet vaker stuk dan gele lampen die 's nachts uit waren.
Bedankt Klaas, ik heb weer iets bijgeleerd ;).
Zeer knap gedaan en leuk om naar te kijken ! (L29 ?) :)
Vraagje: in de code zie ik staan status_blok1A == 0. Is dat de info van de bezetmelding, die mee verwerkt zit in de code, om het seinbeeld 'rood' te behouden of te forceren ? Verder neem ik aan dat in de laatste regel een schoonheidsfoutje is gesloopt (j1 = j1;). ;)
Ben er een paar jaar geleden ook mee bezig geweest, zie https://youtu.be/iyn76IQXba8 (https://youtu.be/iyn76IQXba8)). Toen heb ik voor de sturing een low-cost PIC-µcontroller gebruikt. Ondertussen ben ik ook overgeschakeld op Arduino, wat ideaal is om hiervoor te gebruiken.
Groetjes, Jan.
Jan
Met de code zin " ( status_blok1A == 0 ) " wordt er in de code gecontroleerd of blok1A bezet of onbezet is.
" j1 = j1; " In de code wordt elke led aangestuurd met een teller , J1 in dit geval.
Je moet deze code regel als volgt lezen .
if ( j1 >= 255){
j1 = j1 ;
}
Als teller J1 groter is of gelijk aan het getal 255, dan stopt de teller met tellen. ( J1 = J1 )
In dit geval, teller op 255, brandt de led op volledige spanning. 5 volt gegenereerd met het PWM signaal.
Hopelijk geeft dit een meer duidelijker beeld van hoe de code juist werkt.
Luc