hoe spanning meten van aangesneden sinus


Er zat een inschakelvertraging in van ik meen 4 sec. maar als nadat de zon terug is er na 5 seconden weer een wolk is, is het relais precies 1 sec in. Dat geeft dus geklapper.

Een schakeling om je boiler te vullen is wel wat anders dan een beveiliging voor je zekering.

[Bericht gewijzigd door stortbak op 21 mei 2021 14:05:13 (22%)]

Hier ook een wattmeter van de website van Mikrobasic, ik heb die vroeger eens gedownload om te bekijken maar ik doe niet aan basic ;)

Volgens mij zijn er 2 versies, met en zonder interrupts

LDmicro user.

Op 21 mei 2021 13:42:41 schreef Arco:
In de interruptroutine (bijv. iedere mS) zet je zoiets:

Dank voor de poging.
Proton accepteert het alleen niet
res is een beschermde "naam"
endif hoort er niet achter
word[10] kent hij niet
en er ontbreekt een =

Kan je wellicht wat uitleg geven over de pic's in het algemeen?
En dan over de 18F46K22 http://www.datasheet-pdf.com/PDF/PIC18F46K22-Datasheet-MicrochipTechno

Ik heb dit ingegeven.

FOSC = HSMP met kristal
PLLCFG = OFF oscillator used directly
PRICLKEN = ON primary clock is always enabled
.
.
.
.
XTAL = 16
.
.
.
.
OSCCON.6 = 1
OSCCON.5 = 1
OSCCON.4 = 1 is 16MHz
.
OSCCON.1 = 1
OSCCON.0 = 0 is int osc block............00 is prim clock
.
.
.
T0CON.0 = 1 is prescaler 1:4
T0CON.1 = 0
T0CON.2 = 0
T0CON.3 = 0
T0CON.4 = 0
T0CON.5 = 0 is Fosc/4........ 1 is kristal en waarom geeft dat geen verschil
T0CON.6 = 0
T0CON.7 = 1

T1CON.0 = 1
T1CON.1 = 1
T1CON.2 = 0
T1CON.3 = 0
T1CON.4 = 0 is prescaler 1:4
T1CON.5 = 1 is Fosc/4
T1CON.6 = 0
T1CON.7 = 0

T2CON.0 = 1 is prescaler 1:16
T2CON.1 = 1
T2CON.2 = 1
T2CON.3 = 1 postscaler 1:1 (?)
T2CON.4 = 0
T2CON.5 = 1
T2CON.6 = 0
T2CON.7 = 0

T3 en T5 zijn gelijk aan T1
T4 en T6 zijn gelijk aan T2

Nu lijkt het er op dat T2 de interne klok is, want als ik die verander gaat het programma sneller of langzamer. Display ververst ook veel sneller.
Als ik die in de interruptroutine (zoals je hierboven mogelijk bedoelde) een zelfbenoemde variabele laat verhogen, gaat die als een speer.

IF TMR2IF = 1 THEN
INC VAL_TIMER
TMR2IF = 0
ENDIF

Maar loopt heel het programma niet meer stabiel.(waarschijnlijk gaat het veeel te snel en zijn de adin tijden te kort voor een juiste meting.
waarin dan staat:
Limit_Timer = 430
IF VAL_TIMER > Limit_Timer then val_timer = 0
IF val_timer = 0 then puls1 = 1
IF puls1 =1 then TMR_1 = TMR_1 + 1
puls1 =0
Ik meende dat T0 voor intern was en dat T1,2,3,4,5 en 6 voor eigen gebruik waren.
Hoe zit dat.
Wat is nu de interne clock, de prim clock en de FOSC?

Dus wat is de basis clock wat is de FOSC
Wat is de prim clock
En welke timers van hierboven zijn NIET verstorend voor de afloop van het programma

Hieronder de boiler regeling tot nu toe.
Gaat een beetje lang duren, maar bij 2,45 gaat de zon wel snel aan en uit.
https://www.youtube.com/watch?v=0MylvEKiheM

en eentje met net afschakelende belasting.
https://www.youtube.com/watch?v=mQOuGqKDqdw

Dank voor de poging. Proton accepteert het alleen niet

Is ook Mikrobasic, aanpassen mag je zelf doen... ;)

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

Op 21 mei 2021 15:26:57 schreef Arco:
[...]
;)

Die taal spreek ik net zo als jij basic spreekt.

En de rest van het timer vraagstuk, kan je daar wel wat op zeggen?

Basic is basic. Als je kunt programmeren stelt dat omzetten niks voor.
(maar ik ben niet van plan om me in protonbasic te gaan verdiepen)

T0 is timer 0, T1 is timer 1, en T2 is Timer 2. Timer 2 is de meest universeel toepasbare.

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

Op 21 mei 2021 15:43:59 schreef Arco:

(maar ik ben niet van plan om me in protonbasic te gaan verdiepen)

Dat weet ik al, maar blijkbaar weet je ook niet hoe een pic werkt en welke klok hij intern gebruikt. |:(

Dat moet jij nodig zeggen, je snapt er zelf de ballen niet van... :) :) :)

T0...T6 zijn timers, die hebben niks met de clock te maken. Interne clock is Fosc / 4.

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

Op 21 mei 2021 16:16:04 schreef Arco:

T0...T6 zijn timers, die hebben niks met de clock te maken. Interne clock is Fosc / 4.

Waarom zeg je dat dan niet gewoon?
Wist jij bij je geboorte alles al?
Heb jij niets hoeven vragen en leren?
Doe toch niet zo uit de hoogte als een gevorderde nitwit wat vraagt?

Je zegt dat de interne klok Fosc/4 is.........
Wat doet de Fosc dan, waarom bestaat die dan als die 4 keer sneller loopt, waar is dat dan goed voor?
Waarom staat in de RTFM ook "primary clock" is dat ook fosc/4
Waarom noemen ze dat gedeeld door vier. Wat is het origineel dan?

Wie legt uit wat het verschil is?

SCS<1:0>: System Clock Select bit
1x = Internal oscillator block
01 = Secondary (SOSC) oscillator
00 = Primary clock (determined by FOSC<3:0> in CONFIG1H).

Hoeben

Golden Member

Op 20 mei 2021 16:23:51 schreef stortbak:
Dank voor de reacties.
Ik ga maar eens kijken of ik een paar metingen kan doen per 10 ms en die dan in de pic met elkaar vermenigvuldigen en dan een gemiddelde nemen.
Lijkt me wel te doen.

Doe het met een oscilloscope:

Sample met een hoge rate, bv 1 kHz of hoger en pak maar 1 sinus. Een paar metingen per 10 ms gaat niet werken, de golfvorm van de stroom is veel te krom, je krijgt daar geen goede integratie die gecorreleerd aan je sinus is.

Wat doet de Fosc dan, waarom bestaat die dan als die 4 keer sneller loopt, waar is dat dan goed voor?

Verdiep je eens in hoe een controller werkt.
De inctruction cycle clock (in dit geval Fosc/4) is de cyclus waarin 1 instructie behandeld wordt (z.g. fetch-decode-execute cycle)

Wie legt uit wat het verschil is?

Dat hoeft niet, de tekst spreekt voor zich... (interne osc/secundaire 32kHz osc/osc volgens config)

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

Op 21 mei 2021 21:41:27 schreef Arco:
[...]
Verdiep je eens in hoe een controller werkt.

Dank voor de geweldige tip

Op 21 mei 2021 21:41:27 schreef Arco:

Dat hoeft niet, de tekst spreekt voor zich...

Was eigenlijk een foute opmerking van mij, maar ik was dermate teleurgesteld in je reactie, die weer geen antwoord was, dat ik zomaar wat intiepte.
Want je geeft nog steeds nergens antwoord wat de intern gekozen en dus gebruikte klok is.
Is dat het signaal dat uit de CLOCK SWITCH komt? Wordt dat de Fosc genoemd?
Sluit je een xtal aan van 16MHz en verandert daar niets in de osccon komt er uit die switch de 16MHz en is dat dan de Fosc?

Ik zag naast fos/4 ook fosc/2 gebruikt worden voor TMR

In een blokdiagram mag je ook al is het simpel toch wel een blokje verwacht /4 en /2............

Voor de TMR0 wordt een externe klok OF de Fosc/4 gebruikt. In mijn geval dan 16/4 is 4 MHz

Heb ik dat nu goed?

Op 21 mei 2021 21:18:02 schreef Hoeben:
[...]
Doe het met een oscilloscope:

Wat een opmerkelijk voorstel om in de meterkast een scope te hangen.
Welk type raad je aan en hoe krijg ik dan het vermogen dat hij aangeeft naar buiten?
Liefst een signaal van 0-4 volt, want dan kan ik dat in de pic gebruiken.

Op 21 mei 2021 21:41:27 schreef Arco:
[...]
Verdiep je eens in hoe een controller werkt.

Met een PIC zonder fouten was het een stuk eenvoudiger geweest.
Huidige programma heb ik eerder gebruikt.
Nu copy en paste, dat scheelt typen.
Heb nu geen T2CON meer nodig, stond echter nog wel genoemd.
Zonder timer echter geen leven in de pic.
Nou denk je dan "timer omschrijven" en dan op "uit" en klaar.
Alleen niet bij deze pic. Dan loopt programma niet meer.
timer moet ON en in de interrupt moet je steeds zetten: TMR2IF = 0
Verander je de prescaler, geeft dat een andere afloop van het programma.

Terwijl deze gebruikersklok niet de interne klok is van de pic.

Wie het kan uitleggen mag het proberen.

de interrupt moet je steeds zetten: TMR2IF = 0

Da's met alle processoren zo:
De processor wil graag weten dat je klaar bent met de interruptafhandeling, en dat ziet 'ie aan het resetten van de timer flag...

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

Op 27 mei 2021 14:21:52 schreef Arco:
[...]

De processor wil graag weten dat je klaar bent met de interruptafhandeling, en dat ziet 'ie aan het resetten van de timer flag...

Ja dat snap ik, maar waarom moet ik die timer wel programmeren terwijl die niet gebruikt wordt?
Op die andere 4 timers stopt hij niet, terwijl die ook niet gebruikt worden en dus ook niet geprogrammeerd staan.
Daarom vroeg ik aan het begin: welke timer is voor intern gebruik, want als ik timer 2 verander, heeft dat invloed op de doorlooptijd van de pic.

Als je de timer niet gebruikt kun je die gewoon uitzetten (TMR2ON = 0 en TMR2IE = 0)

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

Thyristor regeling of zo'n blokje met isolatie ( Solid state relais ) prima te sturen uit een uProcessor, geen geklapper meer.

Guus@Sint-Michielsgestel

Op 27 mei 2021 15:41:23 schreef Arco:
Als je de timer niet gebruikt kun je die gewoon uitzetten (TMR2ON = 0 en TMR2IE = 0)

Alsof ik dat niet geprobeerd zou hebben........

Op 27 mei 2021 16:44:09 schreef Waters:
Thyristor regeling of zo'n blokje met isolatie ( Solid state relais ) prima te sturen uit een uProcessor, geen geklapper meer.

Mag ik het met een triac doen?
Het werkt perfect.
Al wat meer is dan de drempel die ik ingeef gaat nu van de panelen de boiler in.
Tot dat die natuurlijk vol is.
Leveren de panelen 600W gaat er 100 de boiler in, geven ze 2k, gaat er 1k5 de boiler in.
Fine tuning nog doen, want de vermogensmeting laat nog wat te wensen over.
Vandaar de grens 500W.
Een tweede wikkeling van de trafo zou wel zo makkelijk zijn.
Van de week eens kijken, ik meen nog wel een trafo te hebben liggen.

Ondertussen met de triacs op een montaprintje en wat losse draden naar de boiler, onderstaand resultaat weten te bereiken.
Als ik me nog verveel kan ik overwegen om meerdere metingen te doen en daar een gemiddelde van te nemen alvorens de uitsturing te bepalen.
Meting met de airco aan is nogal een uitdaging namelijk en geeft weleens niet geheel correcte uitsturing. (te weinig, kan dus geen kwaad, het kost geen stroom uit het net)

Maar het werkt.
Bij vermogen boven een gekozen drempel gaat 1 triac een element van beschikbaar vermogen voorzien.
Ontstaat er meer vermogen door de zon dan 1 element kan verwerken, gaat triac 1 geheel open en gaat triac2 een tweede element voeden.
Zo ook met het derde element.
(gebruikte scope is de Hantek1008. Ruim voldoende voor dit werk en kost haast niets)

https://www.youtube.com/watch?v=9iK3o0PIjdM

Heeft er echt niemand eerder aan een aangesneden sinus gemeten?
Het is nu zo dat ik de geregelde triac uitschakel om daarna een meting te doen.
Daarom ook de "dipjes" in de ampèremeter.
De triacs die gewoon open zijn laat ik open, die misvormen de stroomsinus niet.

1 periode afschakelen en vervolgens de periode daarna meten.
De meetgegevens verwerken en weer 2 secondes uitsturen.
Op de scope is de gele sinus de netspanning en de lichtblauwe de stroomsinus.

https://www.youtube.com/watch?v=i6BrDOVBp3c