Onverwachte lichtmetingen

Ik probeer een probleem met mijn lichtmetingen op te lossen.

Ik gebruik een microchip voor de volgende opstelling.

Ik heb een LED als lichtbron en een digitale sensor. In tegenstelling aan een analoge sensor moet je bij een digitale sensor de opname/integreer tijd instellen. In dit geval is de keuze 100msec, 200ms en 400 msec.

Hoewel ik het niet verwacht, kan het zijn dat het licht van de diode op sterkte moet komen. Daarom wacht ik , na aanzetten van het licht, 1-3 seconde alvorens te gaan meten. De stroomsterkte van de diode wordt niet veranderd in alle metingen. Ik verwacht dus een constante lichtstroom.

De opstelling ijk ik met een 3 seconde wachttijd en krijg dan een intensiteit Int1. Gedurende de verdere metingen wacht ik slechts 1 sec en meet dan een intensiteit Int2.

Maar nu krijg ik het merkwaardige volgende resultaat:
Bij een integratie van 100msec en 200 msec vind ik, zoals te verwachten:
- met Iint1(200ms) = 2 * Iint1(100ms): Iint1= Int2
Echter bij 400 msec vind ik onverwachts:
- met Iint1(400ms) = 4 * Iint1(100ms): Int2 = 0,4 * Int1
Dus slechts 40% van de lichtintensiteit meet ik nu.

Zoals gezegd, de diode heeft geen “opwarm” tijd, immers de 1s- en 3s metingen bij 100msec en 200 msec vertonen geen verschil.
Dan zou het aan de sensor moeten liggen. Maar dan verwacht je eerder problemen bij korte integratie tijden (100 msec) dan bij lange integratie tijden (400 msec).

Grote vraagteken blijft over.

Heb jij een goede inval?

Groetjes

Jan Lichtenbelt

Arco

Special Member

Ik gebruik een microchip voor de volgende opstelling.

Wat voor microchip? (een microcontroller?)

Hoewel ik het niet verwacht, kan het zijn dat het licht van de diode op sterkte moet komen.

Dat is onzin. Een led is geen gloeilamp...
Er moet iets mis zijn in je hardware en (eventuele) firmware. Zonder nadere gegevens valt daar niets over te zeggen...

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

Heb je een buffer opamp tussen je ADC van de uC en je sensor ?

Foutje, niet goed gelezen, sensor is I2C

[Bericht gewijzigd door Roland van Leusden op maandag 18 december 2017 16:02:34 (29%)

It's the rule that you live by and die for It's the one thing you can't deny Even though you don't know what the price is. It is justified.

Op 18 december 2017 12:23:07 schreef Roland van Leusden:
Heb je een buffer opamp tussen je ADC van de uC en je sensor ?

Zoals ik het lees heeft Jan Lichtenbelt geen analoge lichtmeter maar een digitale...

Domoticz en ESP8266, goede combo!!!

Maak je hier niet een denk fout? Je notitatie is niet duidelijk

- met Iint1(400ms) = 4 * Iint1(100ms): Int2 = 0,4 * Int1
Dus slechts 40% van de lichtintensiteit meet ik nu.

Wat is hier nu je meting en wat is je gestelde berekening?

Weet je wel zeker dat de sensor begint met meten wanneer je denkt dat hij dat doet? Misschien lees je de sensor uit en krijg je dan de waarde van de afgelopen 400ms.

Een LED heeft geen opwarmtijd die je in milliseconden zal tegenkomen, de elektronica (voeding) eromheen kan natuurlijk wel wat tijd nodig hebben.

Beste mensen

Ik begrijp jullie verwondering. Die is even groot voor jullie als voor mij.
Inderdaad een opwarmtijd voor een LED verwacht ik ook niet. Vooral omdat er aan de toestand van de LED in alle voorbeelden niets veranderd.
Maar een afwijking van de licht intensiteitsmeting afhankelijk van de integratie tijd is ook niet erg waarschijnlijk.
Zo ook de ingestelde delay-tijd van 1 resp 3 seconde moet goed werken.

Wat achtergrond info. De microcontroller is van Microchip. De LED wordt m.b.v. een BC547B geschakeld heeft een stroombron als voeding. De sensor geeft zijn waarden door aan de microcontroller m.b.v. I2C.

M.v.g.

Jan Lichtenbelt

Sensor in verzadiging ? Als het een CCD is moet op een gegeven moment de ladingen volledig weggevloeid zijn (charge coupled device).

Arco

Special Member

Er zal dan wel iets mis gaan in je berekeningen. (afronding, verkeerd type variabele,...)
Kloppen de individuele gemeten waardes wel, of gaat het daar al mis?
Sommige sensors hebben ook een wachttijd nodig (aquisition time) tussen start van conversie en beschikbaar zijn van de uitslag...

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

Het blijft onbevredigend. Moeilijk om de eigenlijke oorzaak te vinden. Maar ik kies voor een pragmatische oplossing en maakt de wachttijd 3 seconde. Dan krijg ik de goede resultaten.
Gelukkig is deze elektronica niet voor zelfdrijdende auto's maar voor mij privé.

Maar iedereen bedankt voor jullie bijdragen. Ik ga er nog eens kritisch naar kijken.

Groetjes

Jan Lichtenbelt

Arco

Special Member

Als je de originele waardes en de berekeningen/uitkomst bekijkt zie je toch zo waar je uit de rails loopt?...

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

Je kunt ook eens testen met 10 en 20 seconden. Best kans dat de gemeten intesiteit dan niet meer toeneemt. Vol = vol.

Arco

Special Member

Ikzelf zou met zo'n 'oplossing' absoluut niet kunnen leven... :)
Er is kennelijk iets grondig mis ergens. Om 3 seconden te wachten tot een led 'op sterkte' is, is griezelig. (dit omdat zoiets maar mS duurt)

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

Beste mensen,

Na een nachtje slapen kijk je er weer fris tegenaan. Ik denk dat ik weet in welke richting we moeten denken.

Maar allereerst excuses voor de gegevens die ik gegeven heb. Het probleem treedt pas op als de integratietijd van de sensor ingesteld is op 800 msec (en niet 400ms). De sensor heeft dus tenminste die 800msec nodig, maar misschien wel iets meer, zodat bij 1 seconde wachten na de LED aan is de sensor nog net niet gereed is. Echter het verschil van 200 msec mij wel erg veel lijkt.

Groetjes

Jan

fred101

Golden Member

Welk type sensor, dan kunnen we in de datasheet meekijken. Anders blijft het gokken.

Wat voor kleur led ?

[Bericht gewijzigd door fred101 op dinsdag 19 december 2017 11:17:35 (13%)

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs

Plaats even wat typenummers en codes en misschien een schets van de opstelling.

Het is geen verwijt, maar je kwam al wat warrig over met die formules en benadering en nu heb je het ineens over 800ms.

3 seconden wachten is misschien een lapmiddel dat je helpt omdat een bepaalde overflow dan niet plaatsvindt, na 12, 15 of 18 seconden krijg je het probleem misschien wel.

http://www.jensign.com/Discovery/LEDFrequencyResponse/LEDResponses.jpg

Een led reageert in nanoseconden...

Beste mensen

Als de sensor continue integreert. En vervolgens zet je de LED aan, dan zou het puur toeval zijn als dat samenvalt met het begin van de integratie tijd. M.a.w. de eerste waarde die geleverd wordt door de sensor kan niet gebruikt worden. De tweede waarde is dan goed. Bij een 800msec integratie tijd, zal je dus tenminste na 2x 800msec een goede waarde kunnen verwachten.

De sensor is de VEML6075 van Vishay
http://http://www.vishay.com/docs/84304/veml6075.pdf

Ik kan hierover niets vinden.

Groetjes

Jan Lichtenbelt

Arco

Special Member

Beetje vreemde sensor en datasheet...
Sensor schijnt geen 'conversion complete' flag te hebben, dus je weet nooit of je een nieuwe of oude waarde uitleest...
Ook nergens vermelding wat de IT (integration time) instelling precies doet. (middelen over meerdere samples?)

Beste is om de one-shot mode te kiezen. Je weet dan precies wanneer het nieuwe resultaat beschikbaar is en gaat 't altijd goed...
Link werkt niet, deze wel: https://www.vishay.com/doc?84304

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

Je weet ook dat je 4 verschillende registers uitleest voor UV licht? (dus geen zichtbaar licht). MSB/LSB goed?

Met andere woorden: een stukje van je code hoe dit ding uitleest alstjeblieft..

fred101

Golden Member

Welke led gebruik je ? De sensor is alleen gevoelig voor UVA en UVB, Heb je de boel afgeschermd voor omgeving licht ?
Voedingspanning laag/hoog genoeg ?

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs

Beste Arco

Trigeren m.b.v één meting (zet UV_TRIG byte=1 in config register) is inderdaad misschien een goede oplossing. Maar ook hier staat niet bij na hoeveel tijd je kan uitlezen. Vermoedelijk de integratietijd + een klein beetje.
Overigens de integrator is een sommator, de waarden nemen evenredig toe met de integratie tijd.

Groetjes

Jan Lichtenbelt

Intussen heb ik geprobeerd One measurement trigger te gebruiken door UV_TRIG op 1 zetten en dan te wachten tot deze weer 0 wordt. Ik hoopte dat dat na de integratie tijd zou zijn. Helaas, die wordt direkt weer op nul gezet.

In een applicatie note
http://www.vishay.com/docs/84339/designingveml6075.pdf
wordt op pagina 18-20 een C-code gegeven. Hun voorbeeld, zonder triggering, is voor een integratie tijd van 100 msec gebruiken ze een delay van 150. Ik neem aan dat de eenheden msec.zijn.

Groetjes

Jan Lichtenbelt

Ik zou alle verwarrende info over opwarmende leds en zo vergeten.

Ervan uitgaand dat UV_AF = 0 meet deze sensor continue de instraling (UVA, UVB, visible noise en IR noise) gedurende de ingestelde tijd (UV_IT): 50/100/200/400/800 ms. De resultaten worden na de meting weggeschreven in een aantal 16 bits registers. De waarden in deze registers blijven beschikbaar (en kunnen worden uitgelezen) tot er een nieuwe meting is gedaan.

Als je bij een toenemende UV_IT geen toename van de waarden in die registers ziet dan is de sensor verduisterd of defect. Of je maakt ergens een fout:

- In de hardware (1,7V < Vdd < 3,7V, SDA+SCL pullups)

- Bij het setten van UV_IT (1:0:1, 1:1:0 en 1:1:1 zijn reserved)

- Bij het uitlezen van de registers (16 bits waarde steeds in twee 8 bits registers, LSB en MSB, uitlezen met I2C repeated start)

- Bij het omzetten van de L en de H byte naar een 16 bits waarde (eerste waarde is LSB, tweede waarde is MSB)

Als je de waarden eenmaal goed ingelezen krijgt is het nog een klusje om die om te zetten naar een UV-Index. Daarover hier meer:

https://github.com/schizobovine/VEML6075

Beste Paulussie

Bedankt voor je reactie. Alles wat je beschrijft werkte bij mij reeds goed.
De grote vraag was de timing van de metingen. Intussen is wel duidelijk dat je aan de veilige kant zit als je 2x de integratie tijd wacht na het aanzetten van de LED, alvorens een meting te doen.

Groetjes

Jan Lichtenbelt

Arco

Special Member

De integratietijd heeft niets met de led te maken, maar met de tijd verstreken sinds de sample start.
Is ook nogal vreemd om de led steeds aan en uit te doen; dat is niet de bedoeling. (is een zonlicht sensor; de zon knippert ook niet... ;) )

Als je na het starten van de conversie de IT + 50mS wacht zit je altijd goed...
Nog een AN over de sensor: https://www.vishay.com/doc?84339

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