Arduino gecontrolleerde dimbare TL-ballast

Hallo, ik neem op het laatste moment een project over en ik heb moeite om het juiste circuit te vinden om een ??dimbare ballast en TL-fluorescentielamp te dimmen ([Philips HF-R 258 ????TL-D EII 220-240V] [1] )

De ballast heeft een 0-10v dim-ingang die ik aanstuur met een PWM via een opamp LM385.
Onderstaande code werkt met een led en laat de TL lamp aan en uit gaan. Maar dimt het niet echt.

Ik vraag me af hoe ik het circuit kan verbeteren. (Een betere ADC-chip toevoegen? Sluit deze aan voor de OPAMP?)

Of zie ik iets over het hoofd en is er een andere reden waarom dit niet werkt?

Dit is het circuit:

https://i.stack.imgur.com/B05Jz.png

Eenvoudige testcode:

//pwm from pin 5 slowly increases,
//then decreases repeatedly

//Initializing LED Pin
int led_pin = 5;
void setup() {
//Declaring LED pin as output
pinMode(led_pin, OUTPUT);
}
void loop() {
//Fading the LED
for(int i=0; i<255; i++){
analogWrite(led_pin, i);
delay(10000);
}
for(int i=255; i>0; i--){
analogWrite(led_pin, i);
delay(10000);
}
}
[1]: https://www.lighting.philips.be/prof/voorschakelapparatuur/fluorescent…
[2]: https://i.stack.imgur.com/VbqvG.png
[3]: https://i.stack.imgur.com/yjsBu.png

Arco

Special Member

Duty-cycle van de pwm veranderen moet gewoon werken. 'Dimt niet echt' is ook wel wat vaag...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Op 26 september 2021 11:59:19 schreef Arco:
Duty-cycle van de pwm veranderen moet gewoon werken. 'Dimt niet echt' is ook wel wat vaag...

Wel met 'Dimt niet echt' wil ik zeggen als ik de vertraging/delay (Duty-Cycle) naar 50 breng dan flikkert de lamp gewoon. Als de delay op 10000 staat dan blijft de lamp gewoon branden en dimt ze dus niet. Zet ik de delay ergens daar tussen en dan doet de ballast/lamp een beetje raar. Gaat uit en aan, blijft aan, maar zonder consistentie die die code uitstuurt.

Beter kan ik het niet uitleggen denk ik :/ :)

Ik maakte ooit deze schets:

Het aardige is dat het zo op een enkele 5V voeding kan.

c code:


// pwm van pin 5 neemt langzaam toe,
// neemt dan herhaaldelijk af

// Initialiseren van LED-pin
int led_pin = 5;
ongeldige instelling () {
// LED-pin als output declareren
pinMode (led_pin, UITGANG);
}
lege lus () {
// De LED vervagen
voor (int i = 0; i <255; i ++) {
analogWrite (led_pin, i);
vertraging (10000);
}
voor (int i = 255; i> 0; i -) {
analogWrite (led_pin, i);
vertraging (10000);
}
}

Ik begrijp weinig van de code. Wat zijn die functies? Volgens mij zitten er torren in.
In het algemeen is het handig zo eenvoudig mogelijk te beginnen, bijvoorbeeld met de pin declaratie en een enkele analogWrite(100).

[edit]
- Is het soms fout vertaald?! Void setup -> ongeldige instelling?!
- 42 minuten op- en neer lijkt mij vrij lang voor een snelle test.

Even opletten met dit soort 0-10V sturingen.

Heb zelf ook al eens lopen zoeken waarom iets niet werkte.
Weet niet of het specifiek voor deze ook opgaat.

Als ergens bij een ingang staat dat dit geschikt is voor 0-10V dan ga ik er vanuit dat je dus 0-10V moet aanbieden.

Lijkt bij dit soort apparaten toch anders in elkaar te zitten.
De 0-10V (ingang) wordt dan aangesloten op een potentiometer....

Het VSA levert inderdaad 140 uA stroom. Dus open = vol aan, kortsluiten naar gnd = maximaal gedimd.
Dat is handig want dan hebben de knoppen geen eigen voeding nodig.

Het komt meer voor, ik weet eigenlijk niet of er een naam voor deze interface bestaat.

Op 26 september 2021 12:10:02 schreef Aart:
Ik maakte ooit deze schets:
[bijlage]

Het aardige is dat het zo op een enkele 5V voeding kan.

c code:


// pwm van pin 5 neemt langzaam toe,
// neemt dan herhaaldelijk af

// Initialiseren van LED-pin
int led_pin = 5;
ongeldige instelling () {
// LED-pin als output declareren
pinMode (led_pin, UITGANG);
}
lege lus () {
// De LED vervagen
voor (int i = 0; i <255; i ++) {
analogWrite (led_pin, i);
vertraging (10000);
}
voor (int i = 255; i> 0; i -) {
analogWrite (led_pin, i);
vertraging (10000);
}
}

Ik begrijp weinig van de code. Wat zijn die functies? Volgens mij zitten er torren in.
In het algemeen is het handig zo eenvoudig mogelijk te beginnen, bijvoorbeeld met de pin declaratie en een enkele analogWrite(100).

[edit]
- Is het soms fout vertaald?! Void setup -> ongeldige instelling?!
- 42 minuten op- en neer lijkt mij vrij lang voor een snelle test.

Code is aangepast!!

5v op een 0-10 volt ingang. Dat kan de Arduino toch niet??
Ik gebruik een verstelbare 12+ voeding.

Arco

Special Member

De EVSA levert al 10v via pull-up of currentsource, je hebt alleen een transistor nodig om de ingang laag te trekken.
(let wel: met een enkele NPN werkt de duty-cycle net omgekeerd)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

De ballast heeft een 0-10v dim-ingang die ik aanstuur met een PWM via een opamp LM385.

Waarom ga je een 0->10 volt ingang aansturen met een pwm signaal?

Dei ingang is waarschijnlijk gemaakt om aangetuurd te worden met een constante spanning. 5V er in betekend lamp op halve kracht. En 7,5 dus drie kwart van de lichtsterkte.

Een PWM signaal op halve kracht is een blokgolf die aan en uit gaat. Dan gaat de lamp dus heel even op volle kracht en daarna weer helemaal uit. Als je dat doet met een normale lamp gaat die dus voor oog oog zachter branden. Door de traagheid van de gloeidraad wordt het pwm signaal als het ware geïntegreerd naar een constante vermogensafgifte van de lamp.

Helaas heb jij geen normale gloeilamp maar een tl met een vsa ervoor. En die kan dat snelle geschakel dus totaal niet volgen. Hij raakt waarschijnlijk zelfs volledig de kluts kwijt en kan hierdoor sneuvelen.

Aart geeft hier een hele leuke oplossing. Het pwm signaal wordt netjes geïntegreerd (met behulp van C4,R9 en R8) naar een gelijkspanning waarvan de waarde evenredig is met de pwm verhouding. Door de slimme opampschakeling komt die uitgangsspanning ook nog tussen de 0 en 10 volt te liggen.

zo'n evsa werkt al met een potmeter van 100kohm, de originele 0-10V dimmer is niet meer als een regelbare stroombron. deze ballasten dimmen niet verder terug als 1% en zorg dat de aarding van de evsa ook goed is, anders legio problemen met dimmen en uitval enz. de buis laten starten op 100% geeft ook minder problemen, zeker als deze koud zitten.

dat anno 2021 nog projecten met tl-d worden gemaakt overigens, dat is niet meer van deze tijd, en 0-10V is als sturing ook niet bijster modern meer.

waar rook was, werkt nu iets niet meer

Eens. Mijn schetsje is uit 2007, dat was een tijd dat CO op een of andere manier vol zat met aquariumisten met TL buisjes. Ik weet overigens niet meer of het ooit succesvol getest is.

Ok volg ik, ik heb het materiaal doorgekregen via de vorige maker.

Wat zou de beste aanpak zijn op vlak van installatie? Let wel ik heb een sensor die de dimming moet triggeren. Deze heb ik met Arduino gemaakt, maar zijn wel industrie grade beam sensoren en kunnen dus heel waarschijnlijk met andere toepassingen, logica, controllers gebruikt worden.

Ik sta open voor alles!

Dit zijn de sensoren die ik gebruik trouwens: https://export.rsdelivers.com/product/rs-pro/pr18-tm10dnr/rs-pro-throu…

De emitter en receiver. Hier werkt alles en heb ik de logica al geprogrammeerd. Maar als de lamp niet dimbaar is heeft het weinig zin via deze weg.
Zeker als ik een werkweek in ga en volgende week dit project moet klaar zijn. Dan neem ik liever de eenvoudige (duurdere) keuze.

Alvast bedankt voor jullie advies en kennis!