Nieuws:

Bekijk onze nieuwe Stichting 3rail kleding lijn! Mooi voor evenementen en meet & greets op beurzen : 3railforum shop

Dag nacht schakeling nieuwe stijl...

Gestart door leendert maandag 24 maart 2014, 14:37:50

0 leden en 1 gast bekijken dit board.
Dag nacht schakeling nieuwe stijl...
Nieuwe dag nacht schakeling
Weliswaar heeft de oude dag nacht schakeling niet heel lang gefunctioneerd en eigenlijk deed hij het toch best wel goed. Maar waarom dan toch een nieuwe schakeling en uitvoering. Een paar overwegingen en leerpuntjes. Ik zag het artikel met ongeveer de gelijke strekking van John, maar ach, ik heb het al gemaakt, dus ik publiceer het toch ook maar hier. En wie weet inspireert het John nog, of andersom!

De ledstrips. Ach, ze zijn zo mooi en toen ik bij de Zweedse meubelgigant voor een appel en een ei, althans voor de euro variant daarvan, een stripje aan kon schaffen was ik om: dat wil ik ook graag.
En zo ontstond het idee om de geleerde lessen dan meteen maar mee te nemen in de nieuwe schakeling.

En de oude schakeling en gloeilampen? Indien er een liefhebber is, hij meldt zich maar, voor een vriendenprijs en de zekerheid dat er iets mee gebeurt, mag je het hebben.


Wat zou ik beter willen in de nieuwe schakeling
De oude schakeling kende de cyclus: Dag/Avondrood/Nacht. Was verder niet configureerbaar en werd door Koploper met een signaal steeds van cyclus gewisseld.  Iets meer flexibiliteit en mogelijkheden zeer gewenst dus.
Hoe het nu is, staat in onderstaande afbeelding:  Meer verschillende cycli en en elke element is nu individueel instelbaar: hoe lang het bv dag blijft en hoe lang het faden duurt. Dat alles in te stellen tussen de 1 en 99 seconde.


In de nieuwe schakeling wil ik graag meer zelfstandigheid, maar met de mogelijkheid dat de status gemeld wordt zodat Koploper (of zijn opvolger, dat hangt bij mij toch wel in de lucht) gewoon het signaal op kan pakken. Daarnaast wil ik ook nog een cyclus ?diep nacht?. Dat is dan speciaal om een deel van de verlichting weer uit te schakelen, maar bv op het industrie terrein, dat een soort 7x24 uur economie uitstraalt, wel aan te laten.
Technisch had ik in de vorige schakeling ook nog 1 redeneerfoutje. Ik had een vrij lange leiding tussen de uitgang van de controller en de opto coupler op de stuurprint naar de lampen. Dat pikte soms storing op die leidde tot het resetten van de controller. In de nieuwe opzet heb ik gekozen voor seriële communicatie en wel via RS485, zodat storingen niet meer leiden tot bijeffecten. Overigens kan het gewoon via het bestaande draadje dat er nu ligt, wat weer een voordeel is.
Gaandeweg is er, mede dankzij wat sparren met een collega, nog een verbetering ontstaan: de toevoeging van een ?warm wit? strip. Want het wit van een RGB led is toch wel heel erg ?koud-wit? en gebuikt daarnaast ook eens veel stroom, want om wit te maken heb je zowel de R, de G als de B nodig. Vandaar de toevoeging van tweede rij, met uitsluitend warm wit. Betekent echter wel dat er een klein printje voor de sturing van de warm-wit bij gekomen is, wat aan de processorprint wordt bijgeprikt.
Een nog mooiere uitbreiding is gekomen door het nabootsen van oost-westgang van de zon, dus van de zonopkomst tot en met de inzet van de schemer. Hoe het werkt? Er zijn vier secties van ledstrips. De hele cyclus begint bij ledstrip 1 (bv: wit fade langzaam in), een seconde later op ledstrip 2, idem voor 3 en 4. En zo ontstaat een soort ?vloeiende? zons op- en ondergang. Mijn baan is relatief groot en vooral rechthoekig en dus leent het zich ook wel om een oost-west cyclus te hebben. En nee, er verschijnt dus niet een echt zonnetje?. Het is meer het gevoel dat door de ruimte schuift.


Waarom zelf een dag nacht schakeling bouwen
Natuurlijk kan je dingen kant en klaar kopen, maar soms is het gewoon leuk om zelf iets te bouwen. Ook al dekt wat er nu ?te koop? is, niet alle ?eisen? die ik had. En zelf doen is toch ook leuk. Enfin, dat is tenslotte een deel van onze hobby en ons plezier. En inderdaad is ook in dit project een puist aan werk gaan zitten en is het toch weer meer tijd gaan kosten dan aanvankelijk gedacht en zo. Maar ach, wat geeft het. Een hobby hoeft nooit af en er is geen haast mee. En je leert er weer heel veel van. Zo ook deze keer weer.

De uitvoering
De elektronica bestaat uit twee delen: de besturing van de ledstrips en de stuurprint van de dag/nacht schakeling zelf. Bij beide printen is het hart een krachtige micro controller die eigenlijk al het werk voor zijn rekening neemt. Zo heb je met veel power in een chip weinig extra elektronica nodig.

Dimmerprint
Een LED strip bestaat uit een aantal RGB leds, dus dat betekent ook dat er 3 signalen naar de strip toegaan. Elke strip is 5 meter en met de strips die ik gebruik betekent op volle sterkte dat iedere tak dan 1 Ampère gebruikt. Iedere tak wordt via een mosfet aangestuurd. Maar bij elkaar is dat toch een behoorlijk vermogen en dus warmte. En om de hobby in rook op te zien gaan, nee dat nou toch liever ook weer niet. Daarom heb ik er voor gekozen om per print de last wat te verdelen zodat er twee ledstrips aangestuurd worden. Rondom mijn baan heb ik een koof, dus dat maakt ook dat je zo?n print mooi in het midden kan plaatsen en zo prima een verdeling kan maken over de twee strips. Met een voeding van een laptop die in dit geval 6A bij 12 volt levert, voldoet het precies aan wat het moet doen. Mijn baan is vrij groot, dus ook de koof, vandaar dat ik twee van dit soort opstellingen.
In een artikel elders heb ik al eens iets geschreven over het dimmen van LEDs, via bit amplitude modulatie. Deze methode bevalt me heel erg goed en heb ik natuurlijk ook hier weer toegepast. Met nog wat meer efficiency in de code is het nu echter gelukt om 12bits diepte te krijgen en met een mooie gamma-correctie geeft het een mooi soepel licht en kleurverloop. Echt heel erg leuk om te zien dat bv bij een sturing de kleinste stap wit licht naar de strip optisch gewoon wit licht geeft, maar uiteraard met een hele lage intensiteit. Maak je vervolgens een foto van de RGB led, dan zie je daar gewoon individueel de RGB delen van de SMD LED aangelicht worden. Kortom, dat werkt erg secuur en legt nauwelijks beslag op de capaciteit van de processor. Op de print zit nog een uitbreidingsconnector voor zowel een LCD display als een USB poort, maar op dit moment gebeurt daar niets mee.
Op de print worden de commando?s ontvangen met een nummer, in mijn geval  1, 2, 3 en 4 gevolgd door de bijbehorende RGB waarde. Dat maakt het weer heel flexibel. Komt er in de toekomst nog een printje bij, dan zou die bv 5 en 6 als volgnummer krijgen.
Het protocol is dus behoorlijk eenvoudig: het is een serieel stroompje met een dimmer ID, 4 bytes met de RGB en Wit-waarde en een checksum. Als deze ontvangen worden en de checksum klopt met wat de controller zelf berekent, wordt de waarde overgenomen en heeft de ledstrip de opgegeven kleur. Mocht de checksum niet kloppen, houdt de print de oude waarde vast.

De Daydreamer
De Daydreamer, dat is de naam die ik verzonnen heb voor deze toepassing, is het hart van het systeem. Daar wordt de 24-uurs cyclus gevormd en bewaakt en wordt de overeenkomstige kleurwaarde berekend, inclusief de fading effecten die er zijn in schemer, avondrood en ochtendgloren. Dat is best een krachtpatser met wat daar op die print gebeurt.
De bediening gebeurt via een zgn. Touch screen. Dat scheelt een boel extra knopjes en schakelaars en ziet er nog eens fraai uit. We krijgen toch allemaal wat mee in het tablet geweld dat op ons afkomt, nietwaar? Voor het instellen van de werkelijke kleur(waarde) maak ik nog gebruik van één vertrouwde potmeter. Dat is in de praktijk toch handiger dan een Touch screen.

Het Touch screen is een grafisch scherm, dus alles wat daar gebeurt wordt eerst nog even keurig als plaatjes gemaakt. Heel werkje, want alle code is in machinetaal gemaakt, dus dat zijn behoorlijke tabellen. Ook de tekst die op het scherm staat, is eerst in een lettertabel gemaakt en in zowel een smalle uitvoering als een vet. Voor specifieke zaken als bladeren op opslaan zijn icoontjes gemaakt met pijltjes en schijfsymbolen.  Voor de bevestiging dat er een ?toets?, ook al is deze dan virtueel, is ingedrukt, klinkt uit de buzzer een kort piepje.

Een uitstapje op de Daydreamer: hoe werkt zo?n Touch screen
Het hier gebruikte Touch screen is een LCD scherm met daarin geïntegreerd een soort XY potmeter, die uitgelezen wordt, waarbij de XY de coördinaat is, waar op dat moment de vinger opgelegd werd (of de pen). In wezen werkt het heel simpel: Stel het je voor als een schilderij met vier latjes. Tussen het bovenste en het onderste latje is de weerstandwaarde te meten, op moment dat je op het scherm drukt. Dat doe je dan via het rechter of het linker latje. Daarmee heb je de Y positie te pakken. Vervolgens meet je tussen het linker en het rechter latje door het boven- of onderlatje uit te lezen en je hebt de X positie.
De processor schakelt in de software snel ingangen tot uitgangen om en vice versa en leest de analoge waarde op de input poort, zodat met vier draadjes dit volledig te realiseren.

Terug naar de Daydreamer-stuurprint
Op deze print zit ook nog een set aan uitgangen die de status aangeeft (Dag/Nacht, Schemer, Diepnacht, Ochtendgloren). Deze kunnen aan een S88 gekoppeld worden en zo in elk systeem, bijvoorbeeld Koploper ingelezen worden om daar dan iets mee te doen. Er zijn vier standen naar buiten gebracht (zoveel passen er precies in een quad opto coupler..) en met wat combinatie uitvraag is er op de model baan een mooi schouwspel te maken.
De print voorziet in een ?automaat? en een handmatige instelling, zodat gewoon bij ?werk aan de baan? ook de verlichting als werkverlichting gebruikt kan worden, of even een ?live demo? zonder de wachttijden.
Daarnaast is er ook een klokje geïntegreerd. Gewoon omdat ik het leuk vond. Daar haal ik ook de 1 seconde tijdbasis uit, maar dat had ik uiteraard ook op een andere manier kunnen doen nl. met de microcontroller zelf. Op de een of andere manier ben ik dol op klokjes en zo is er in beeld altijd te zien hoe laat het is. Deze is op de I2C bus aangesloten van de processor.
Ook zit er ook de RS485 uitgang op die naar de dimmerprinten gaat en de RGB waardes doorstuurt. De stuurprint berekent dus de waardes, de dimmerprinten vertaalt het naar de daadwerkelijke lichtwaardes.
In te stellen is - per setting - Dag, Schemer, Avondrood, Nacht, Diepnacht, Ochtendgloren: hoe lang dit duurt (in seconden), welke RGB en Wit kleur dit is en hoe lang de fading tijd is na de volgende setting.
Het spreekt vast tot de verbeelding dat de kleur ?Dag? een tamelijk felle warm-wit instelling heeft en dat als de schemering inzet, dit in zijn geheel wat teruggaat en vervolgens er wat avondrood bijkomt. Allemaal zeer eenvoudig in te stellen en aan te passen. De kleur ?Nacht? kent vooral een blauwe gloed die het erg goed doet op de modelbaan.? Diepnacht? brengt deze kleur iets terug in intensiteit en bij ?Ochtendgloren? gaat dat blauw weer over in opkomend daglicht.
Uiteraard worden de ingestelde waarden allemaal opgeslagen in het eprom geheugen van de processor, zodat het maar eenmalig ingesteld hoeft te worden, maar ook daarna nog steeds volledig op smaak te brengen is.
Voor het faden van de ene naar de andere waarde heb ik gekozen om per seconde in 16 stappen (meer is met het blote oog toch niet waar te nemen) te werken. Dat betekent dat eerst het verschil per R, G,  B en wit-waarde bepaald wordt (dat kan maximaal 255 zijn, maar is meestal een deel daarvan) en dat wordt per kleur over een aantal opgegeven secondes uitgesmeerd die dan per seconde in 16 delen opgeknipt wordt. Bij iedere stap wordt dat dus een klein beetje verhoogd of verlaagd. Dat geeft, zo heb ik geconstateerd, een heel soepele overgang tussen de kleuren. Het maximum aantal seconde dat een fade of hold periode kan duren gemaximeerd op 99 seconde, anders past het getal net niet op het schermpje (hoe praktisch kan het soms wezen?), want hij kan intern echt tot 255. Maar het blijft een modeltijd hè, dus zo heel veel langer dan 99 seconde heb ik toch niet nodig voor een fade tijd dus 99 is al een hele hoge waarde.  Vervolgens wordt ook de ?hold? tijd ingezet. Ook die kan tussen 1 en 99 seconde om de eerder genoemde display reden?
Zoals gezegd wordt dit aan de eerste ledstrip aangeboden en de rest van de strips ijlt een poosje na, om zo het oost-west effect te krijgen. De duur van de oost-west cyclus is niet instelbaar, alleen de code op de stuurprint aan te passen. Voor de programmeurs onder ons: hoe dat gerealiseerd is? Er is een queue gemaakt die 244 waardes kan opslaan. Iedere keer als er een nieuwe RGB en W waarde wordt berekend, wordt deze boven op de queue geplaatst en schuift de rest 1 positie op. In de ?verstuur? routine wordt dan waarde 1, 81, 161 en 241 uit die queue, naar respectievelijk Dimmer 1, 2, 3 en 4 gestuurd.  Het fade mechanisme is op basis van Bressenham algoritme gemaakt. In oorsprong is die bedoeld om met weinig rekenwerk lijnen te tekenen, maar het faden van een waarde in de tijd is in wezen niets anders dan een lijn. Alleen is dan de x as niet in coördinaten, maar in tijd.
De 485 chip zit hard aangesloten: op de stuurprint op versturen en op de dimmerprint op ontvangst. Er was toch geen reden voor tweeweg verkeer, dus ik heb het hier mezelf makkelijk gemaakt en de overeenkomstige ingangen dus hard aan hoog cq. laag gehangen.

Praktische uitvoering
In mijn geval heb ik in de koof een kunststof wit hoekprofiel 20x20 mm gelijmd en daarop de RGB strip en de warm-wit strip geplaatst. Gekocht  bij de Formido. De ledstrips zelf hebben een plakstrip, dus monteren gaat heel makkelijk. Hoe zich dat op de lange termijn houdt, geen idee, maar vooralsnog zit het als een huis. De uiteinden, die op zich nog wat onder spanning staan omdat de strip van een rol afkomt, heb ik even extra vastgezet met een witte paperclip, wat toch niet opvalt. Uiteraard niet over een led, maar net naast de led?

In de koof, maar uit het zicht zitten ook de dimmerprinten. Die zitten op de plek waar de aansluitingen van de twee ledstrips samenkomen, terwijl de leds op de strips onderling precies doorlopen, zodat er een constante afstand is tussen de leds. De eerder genoemde voeding is ook daar weggewerkt, de benodigde 220V was nog aanwezig van de lampen uitvoering.
De bedienprint met het Touch screen heb ik in een oude Deltacontroller gebouwd. Een neefje heeft het ooit toch voor elkaar gekregen een dergelijk ding eens kapot te krijgen en in plaats van de eindtransistoren te vervangen, heb ik het binnenwerk eruit gehaald en met de CNC er een sparing in gefreesd ter grootte van het.
De potmeter voor het instellen van de analoge waarde van de kleuren heeft een wel heel onbescheiden plekje gekregen, maar ik ga toch niet voor de industry design award 2014... Voor meer ruimte was een groter kastje nodig en dat paste dan weer niet zo mooi bij de rest van de opstelling. Nu staat hij netjes op rij met de Ecos en de twee M* transformatoren. Het oog wil ook wat, tenslotte. Kleur nog wel een beetje bijgewerkt, want het is tenslotte geen M* controller?


Hoe nu verder
Het grote genieten is nu wel een beetje begonnen. De flexibiliteit is heerlijk. De mogelijkheden zijn groot. Stabiliteit is goed, er zijn eigenlijk nog geen problemen waar ik tegenaan gelopen ben. Werkt lekker samen met Koploper, de bediening is plezierig en ziet er wel kek uit. Kortom, weer een leuk project geweest.


Voor wie zelf aan de slag wil
Met alle plezier wil ik de schema?s en de 2 printontwerpen publiceren (in Eagle). Ook de software mag iemand belangeloos hebben.

En wat gaat dat kosten
Daydreamer (40 EUR):
?   Touchscreen: 18 EUR,
?   processor: 7 EUR,
?   overige onderdelen: ca. 10 EUR.
?   Losse 9V (stekker) voeding: 4 EUR (kringloopwinkel)
Dimmerprint (20 EUR)
?   Processor: 5 EUR,
?   overige losse onderdelen: 10 EUR.
?   Losse 12v/6A voeding: 4 EUR
Overig
?    maken van de print en de printplaat zelf, 1 x daydreamer, 2 x dimmer: 8 EUR
Ledstrips (80 EUR)
?   Ledstrip WIT 1 EUR per meter,
?   Ledstrip RGB 3 EUR per meter.
Witte hoekstrips, 1 EUR per meter
Daarnaast nog wat plamuur en spuitwerk aan het Daydreamerkastje, maar dat is echt verwaarloosbaar als je een tube hebt en een spuitbus grijs van de Action..
Al met al voor ca. 9 EUR per meter een uitstekende voorziening.

Groet,
Leendert
Re: Dag nacht schakeling nieuwe stijl...
Wow! Dat ziet er goed uit!
Ik denk dat ik mijn dag/nacht schakeling eens zal moeten 'upgraden' want zo geavanceerd is deze niet. Waarschijnlijk DCC ondersteuning.


groeten Dylan
Re: Dag nacht schakeling nieuwe stijl...
Heerlijk hè, hoe een hobby een beetje uit de hand kan lopen?  O:-D

Wanneer ik de wielen heb geruild kom ik kijken.

Re: Dag nacht schakeling nieuwe stijl...
Forum Moderator
Lid sinds: 2010

offline
Re: Dag nacht schakeling nieuwe stijl...
Hallo Leendert,

Interessant om dit allemaal te lezen.  :) :) Ik zie wel verschillen met mijn schakeling, maar dat maakt het ookwel leuk.
Ga dit zeker op mn gemak nog eens nalezen.

Gr, John
Re: Dag nacht schakeling nieuwe stijl...
Speciale Gast
Lid sinds: 2006

offline
Re: Dag nacht schakeling nieuwe stijl...
Hoi Leendert.
Helemaal geweldig om te lezen (en te zien) wat voor moois je weer allemaal gemaakt hebt! :thumbup:
Het meeste gaat mij wel boven de (boeren)pet maar het grote geheel kan ik toch wel volgen.
Nu vond ik het vorige systeem al helemaal geweldig maar dit is natuurlijk "hocus pocus" van de bovenste plank! :D

Ik moet dit wonder toch maar eens gauw met eigen ogen gaan aanschouwen, dus bereid je maar vast voor! O:-D

Vriendelijke groeten,
AlbertJan.