Bepaal het uur van de dag met een LDR ?

algemene C code
Gebruikers-avatar
Berichten: 1738
Geregistreerd: 06 Aug 2016, 01:03

Bepaal het uur van de dag met een LDR ?

Berichtdoor Koepel » 30 Okt 2017, 10:31

Graag zou ik het uur van de dag willen bepalen met een LDR.
Overdag komt die LDR soms in het donker, en 's nachts krijgt de LDR soms lamplicht.

Ik wil niet dat als 's avonds een lamp aan is, dat de tijd gaat verschuiven. De tijd dat de lamp aan en uit gaat varieert.

Het signaal van de LDR zet ik om naar een percentage. Helaas zit dat 's zomers al snel op 100%, maar 's winters maximaal 80%. Het lamplicht zit nu op 40%. Die getallen kunnen echter flink variëren, dus ik kan echt niet kijken naar een bepaald percentage. Aan de hand van een aantal samples wil ik de grote bubbel van het daglicht detecteren, zonder het lamplicht mee te nemen.

Bij het aanzetten moet hij natuurlijk sneller synchroniseren.
Dus ik zou willen beginnen met bijvoorbeeld de tijd 100% vertragen of versnellen, en dat na een aantal dagen geleidelijk terug brengen naar een paar procent.

En het zou ook nog moeten werken als de Arduino draait op een X-tal, of de interne oscillator, en zelfs wanneer de Arduino in sleep mode op de WatchDog oscillator draait (hoeveel afwijking had die, 20% of zo ?).

Een bestaande 'time' library gebruiken wordt ingewikkeld. Ik hoef alleen maar een getal van 0...23 te hebben.

Dit is een brein-kraker waar ik al een paar jaar aan denk. Ik heb er namelijk een voorbeeld van gezien, maar dat heb ik nooit meer kunnen vinden. Iemand een goed idee ?

Advertisement

Gebruikers-avatar
Berichten: 249
Geregistreerd: 15 Nov 2015, 11:54

Re: Bepaal het uur van de dag met een LDR ?

Berichtdoor Gij Kieken » 30 Okt 2017, 14:12

Hi Koepel,
Ik denk dat je een database moet aanleggen van de voorbije dagen en dan nog wat regelaars instellen.
P-regelaar, D-regelaar, Pid-regelaar, kortom wat het best schikt om het zaakje wat te integreren, de pieken er dus uitfilteren.

Gebruikers-avatar
Berichten: 1738
Geregistreerd: 06 Aug 2016, 01:03

Re: Bepaal het uur van de dag met een LDR ?

Berichtdoor Koepel » 30 Okt 2017, 16:55

Als ik het puur wiskundig ga filteren, dan zou de tijd kunnen verschuiven met lamplicht.
Ik kan op zoek gaan naar een soort van gausiaanse curve van het daglicht, maar die is 's zomers veel langer dan 's winters.

Gebruikers-avatar
Berichten: 249
Geregistreerd: 15 Nov 2015, 11:54

Re: Bepaal het uur van de dag met een LDR ?

Berichtdoor Gij Kieken » 30 Okt 2017, 17:34

Is het niet een beetje vergezocht?
Zou je dan de standaart afwijking berekenen en opslaan (misschien in Eprom)

Berichten: 2381
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Bepaal het uur van de dag met een LDR ?

Berichtdoor shooter » 30 Okt 2017, 18:11

Je kunt ook naar de nuldoorgangen kijken, ofwel het midden van de tijd dat de sensor aangaat en uitgaat.
natuurlijk moet je de zaak afschermen voor kunstlicht, maar dat kan simpel door de sensor in een buisje naar boven te plaatsen.
Je hoeft maar 1 keer per uur te kijken want dan kun je zeggen hoe lang het heeft geduurd en daar pak je het midden van, dan zit je op middaguur.
Houd wel rekening met de schrikkelseconde he (geintje)
paul deelen
shooter@home.nl

Gebruikers-avatar
Berichten: 1738
Geregistreerd: 06 Aug 2016, 01:03

Re: Bepaal het uur van de dag met een LDR ?

Berichtdoor Koepel » 30 Okt 2017, 21:27

Afschermen tegen lamplicht gaat helaas niet lukken.
Ik wil het ook kunnen verplaatsen. Op het noorden krijgt het natuurlijk veel minder licht.

De "lichtenergie" is het oppervlak onder de curve.
Als het 's winters ongeveer 9 uur lang daglicht is, en ik het gemiddelde van een aantal dagen neem, dan zoek ik dus de grootste bult in de grafiek van minimaal 9 uur. Dat gaat misschien wel lukken.

De afgelopen jaren heb ik regelmatig gedacht dat het handig zou zijn om zo iets toe te voegen. Op dit moment zou ik het aan een project willen toevoegen dat planten in de gaten houdt.

Sommige planten sluiten 's nachts hun bladeren, en die planten weten wel hoe laat het is :!: Als het 's morgens nog donker is, dan gaan ze al een beetje hun bladeren openen, omdat ze weten dat het daglicht er aan komt. Mijn lamplicht schijnt dat niet te verstoren. Best slim dus. Heel raar woord: "Nyctinasty" (https://en.wikipedia.org/wiki/Nyctinasty).

Bij mijn Nextion klok heb ik een LDR om de backlight 's nachts te dimmen. Die LDR zou ik kunnen gebruiken om testen te doen. Ik heb nog wel ruimte op de Nextion hoofpagina om wat tekst toe te voegen.

Gebruikers-avatar
Berichten: 1738
Geregistreerd: 06 Aug 2016, 01:03

Re: Bepaal het uur van de dag met een LDR ?

Berichtdoor Koepel » 05 Nov 2017, 19:49

Mijn methode is als volgt:

Ik reken per uur. Dus ik heb 24 avg_samples.
Ik neem een sample per uur, maar ik kan ook het gemiddelde nemen van meerdere samples per uur.
Na een uur voeg ik het sample via een filter toe aan een van de avg_samples.

Ieder uur ga ik 24 tijdelijke waarden berekenen die "gewogen" zijn.
Vanaf een paar uur terug tot een paar uur vooruit krijgt een uur een extra percentage van de naastliggende waarden.
Op die manier is het maximum ook het midden van de dag, ook al staat de lichtwaarde vele uren te clippen op de maximum lichtwaarde. Het onregelmatige lamplicht krijgt op die manier minder punten.

Vervolgens stel ik in of de tijd sneller of langzamer moet gaan lopen. Om dat via een PID te doen, dat zie ik nog niet zitten.

Deze korte beschrijving resulteert in een grote hoeveelheid code met veel te veel variabelen en het werkt nog niet. Ik weet nog niet of het gaat lukken op deze manier.

Terug naar C code

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 1 gast