Franco ( snipped-for-privacy@hotmail.com) ha scritto:
::: E come faccio a calcolare il modulo del segnale in uscita ::: (vedi riferimenti nel primo messaggio) dal sensore?
:: Se puoi fai una calibrazione ad ogni accensione: con corrente :: zero vedi che valore ti da` l'a/d (magari facendo piu` :: acquisizioni e mediandole), e il risultato e` il punto di zero, che :: memorizzi da qualche parte. Poi ad ogni conversione sottrai il :: punto di zero per avere il risultato corretto, positivo o negativo :: a seconda del verso di percorrenza della corrente.
E se il sensore di corrente si scalda e cambia il punto di zero? Magari dovrei vedere quando vi è assenza di carico sulla linea (ovvero assenza di corrente) e rilevare ad opportuni intervalli il punto di zero?
:: Una volta che hai il valore del segnale, guardi se e` positivo e :: lo sommi a un accumulatore, se invece il risultato della :: conversione-sottrazione e` negativo, lo sottrai al valore medio :: che stai calcolando.
Diventa quindi una somma algebrica (sottraggo un valore < 0)? Potresti farmi un esempio pratico (pseudocodice con i numeri magari), per favore?
:: L'accumulatore lo resetti ad ogni ciclo, per essere pronto a :: calcolare il valore medio per il ciclo dopo (Oppure ogni N :: cicli, se vuoi il valore medio del modulo della corrente :: mediato su un periodo piu` lungo)
Quindi mi occorre una variabile che chiamiamo accumulatore e una variabile che rappresenta il valore medio?
::::: Un paio di consigli pratici. Il campionamento dovrebbe ::::: avvenire in modo sincrono con la rete (ad esempio 32
::: Con "sincrono" intendi dire a intervalli regolari vero?
:: A intervalli regolari agganciati alla rete. Ad esempio puoi :: provare con un timer che fa partire ciclicamente la :: conversione, ad esempio 32 (vedi` pero` dopo) volte ogni :: 20 ms. L'aggancio alla rete non e` proprio indispensabile, :: io facevo cosi`: guardavo gli impulsi di conversione con :: un oscilloscopio agganciato alla rete. Se erano fermi OK, :: se si muovevano cambiavo il divisore del timer per averli :: fermi.
Praticamente settavi una linea del micro quando acquisivi con l'ADC e la resettavi terminata l'acquisizione, in modo da vedere gli impulsi con l'oscilloscopio?
Il risultato che ottieni rimane valido (cioè gli impulsi di conversione restano fermi) anche se l'apparecchio lo colleghi alla rete elettrica di un'abitazione ubicata in un'altra città? Spero di essermi spiegato...
In alternativa, per agganciarmi alla frequenza di rete in modo da campionare regolarmente, mi converrebbe usare un rivelatore di passaggio per lo zero?
Ho trovato questo: Avago HCPL 3760 ->
formatting link
a metà pagina trovi il datasheet e l'application note 1004. Si può collegare direttamente alla linea 220V e tramite un fotoaccoppiatore mi da in uscita un impulso che posso rilevare tramite interrupt dal micro...
:: Se hai una corrente sinusoidale con valore 1A di picco, :: ne calcoli il valore efficace, ottieni 0.707A circa. :: Se della stessa corrente misuri il valor medio del modulo :: ottieni 0.636A circa. Allora con la media leggi 0.636A :: mentre, sapendo che la forma d'onda e` sinusoidale, :: vorresti leggere 0.707A. Non ci sono problemi, basta :: moltiplicare per 1.11.
Quindi tu mi consigli di calcolare il valore medio del modulo, come mi hai indicato più su nel messaggio, e poi moltiplicarlo per 1.11, giusto? (sfruttando il trucchetto dello shift e del numero fissato di acquisizioni)
:: In realta` la frazione 71/64 non e` cosi` importante perche' :: se poi hai ancora una normalizzazione da fare ti serve :: comunque una moltiplicazione, e quindi tanto vale :: includere il valore 1.11 nella normalizzazione finale.
Quale altra normalizzazione potrei avere?
Per farla breve, io sto usando i sensori di corrente ad effetto Hall della Allegro: ACS706ELC-05C e ACS706ELC-20A, qui
formatting link
puoi trovare i datasheet, che misurano correnti positive e negative entro un certo range: il primo +-5A e il secondo +-20A.
L'uscita è compresa tra 0 e 5V e il punto di corrente zero è situato a 2.5V circa (osserva la caratteristica Vout=f(Ip) a pag.5). Io, per esempio, dovrei misurare anche correnti di
300mA picco-picco sulla linea elettrica a 220V, in modo da rilevare assorbimenti di 50W da parte del carico a valle del sensore.
Per il sensore da 5A ho una variazione di Vout pari a
500mV (da 2.5 a 3V) quando ho un assorbimento pari a
4A sul carico. Quindi, stando alla sensibilità del sensore, dichiarata nella tabella a pag.10 (133mV/A), se il carico assorbe 300mA ho una variazione di Vout pari a 39.9mV!
Pur filtrando il rumore, con un RC dimensionato a 0.6kHz (posso filtrare a 300Hz magari?) come indicato nella stessa tabella, ottengo (nella migliore delle ipotesi) un rumore di circa 2mV picco picco senza contare quello ambientale. Il sesnore è sensibile alle variazioni di temperatura e a pag.6 in alto è riportato il grafico di Vout al variare sella temperatura: se la temperatura varia da
20°C a 60°C (durante assorbimento di corrente da parte del carico) tale variazione si ripercuote sulla Vout facendola aumentare di circa 10mV (che non è poi così poco: è un 25% di errore se rapportato ai 40mV di prima).
Mi conviene trattare il segnale Vout in modo analogico prima di acquisirlo in digitale con l'ADC del micro (magari amplificarlo)? Tu come affronteresti questo problema di acquisizione?
Ti ringrazio molto per le risposte già date e per quelle che mi darai.
Saluti.