Lettore energia elettrica

Spero che almeno stavolta il mio topic vada bene :slight_smile:

Vorrei creare un lettore di energia elettrica (Wh) con il mio arduino, ho intensione di usare un TA12-100, e di trasferire tutto in un display lcd con driver I2C, cercando su internet mi sono imbattuto in un progetto molto interessante, unico problema, legge la potenza istantanea e non l'energia.
Se posso dopo alleghero il link, ma intanto vorrei porvi questo quesito; come posso modificare questa parte di skecht inserendo invece della potenza istantanea l'energia nel tempo? Spero di essermi spiegato e di non aver violato nessun tipo di regola (almeno stavolta)

lcd.print (" W: ");
 watt = ampere * 220;
 lcd.print (watt);
 lcd.print (" ");

iacopomartini:
Se posso dopo alleghero il link, ma intanto vorrei porvi questo quesito; come posso modificare questa parte di skecht inserendo invece della potenza istantanea l'energia nel tempo?

Beh intanto usa la parola "programma" o "listato" che "sketch", fa impicciare un po' tutti non solo il tuo "skecht", ho letto anche "skrech" (e che è un cartone animato?), o "skreech" (una frenata?)... :wink:

Battute a parte (ma mica tanto, chiamalo "programma" e via!:D), scusa, ma ti manca qualche base... Provo a "stimolarti" il ragionamento più che darti la "pappa pronta". :wink:

Secondo te dalla lettura della potenza istantanea come si calcola l'energia nel tempo? Se io per un'ora leggo continuativamente 100W, quanti Wh (watt/ora) avrò? E se leggo 100W per 30 minuti e poi 200W per gli altri 30?

Pensaci, poi dopo che ci avrai pensato leggi un po' di teoria QUI per avere conferma.

Grazie della risposta, come calcolare l'energia lo so, non so come modificare il programma, è quello il mio problema :slight_smile:

Allego comunque il link in modo da far capire meglio, al posto dei "watt istantanei" vorrei inserire Quanta energia viene assorbita dall'utenza (progressiva).

http://giocarduino.altervista.org/e53-sensore-di-corrente.pdf

iacopomartini:
Grazie della risposta, come calcolare l'energia lo so, non so come modificare il programma, è quello il mio problema :slight_smile:

Ok, ma allora intanto prova a spiegarlo qui a parole (se sei studente di un istituto tecnico dovresti saperlo formalizzare), che poi possono diventare direttamente dei commenti nel codice, e quindi ti aiuto volentieri con l'implementazione.

Ma non ci sono "pasti gratis", :slight_smile: un pochino devi aver prima studiato (o dimostrato di aver capito cosa vuoi fare, prima di capire COME farlo).

Tra l'altro se hai problemi a capire come modificare quel programma mi viene anche il dubbio che tu abbia poca dimestichezza con il linguaggio C ed Arduino in particolare, come stai messo per questo aspetto?

docdoc:
Ok, ma allora intanto prova a spiegarlo qui a parole (se sei studente di un istituto tecnico dovresti saperlo formalizzare), che poi possono diventare direttamente dei commenti nel codice, e quindi ti aiuto volentieri con l'implementazione.

Allora per trasformare i W in Wh devo moltiplicare per 3600, il problema è che vorrei sommare le letture fatte, quindi la formula sarebbe: (X1+.....Xn)x 3600.
Adesso come cambio il programma?
Nel programma che ho postato posso trasformare i W in Wh moltiplicando semplicemente x 3600 ma sarebbe comunque una lettura istantanea, io la vorrei progressiva.
Grazie ancora per l'attenzione :slight_smile:

iacopomartini:
Allora per trasformare i W in Wh devo moltiplicare per 3600, il problema è che vorrei sommare le letture fatte, quindi la formula sarebbe: (X1+.....Xn)x 3600.

Premetto che in parte ti capisco, perché io ho uno scooter elettrico che ricarico a casa ed uso proprio un misuratore di consumi per misurare quanto ha assorbito, e quindi quanto mi costa la carica (nel mio caso è però spesso zero perché ho il fotovoltaico, ma tralasciamo...:wink: ).

Per cui veniamo a noi. Se fai una lettura istantanea (più precisamente "la misurazione della corrente nell'arco di 1 secondo" dalla quale ottieni i Watt), per avere l'equivalente in Wh tu dici che moltiplichi per 3600 perché 3600 sono i secondi in un'ora. Ma quel valore significa "se la corrente resta la stessa per un'ora avrò questi Wh", ma non è questo che ti interessa immagino, no? Tu vuoi CONTARE quanta energia è passata.

Quindi per fare questo tu devi accumulare i valori delle singole letture e con la somma delle letture nell'arco di un'ora hai la potenza effettiva che è passata. Se questa misurazione vuoi farla ad intervalli di un'ora ti basta sommare 3600 letture consecutive.

docdoc:
Quindi per fare questo tu devi accumulare i valori delle singole letture e con la somma delle letture nell'arco di un'ora hai la potenza effettiva che è passata. Se questa misurazione vuoi farla ad intervalli di un'ora ti basta sommare 3600 letture consecutive.

Esatto, ma il mio problema è sapere come scrivere questo nel programma che vado ad inserire io. Non riesco proprio a trovare come si scrive, se per favore me lo puoi dire mi togli dei grandi grattacapi :slight_smile:

Devi anche considerare due cose:

  1. La tensione non è sempre 220V, ma può variare tra 230V e 200V, quindi devi misurare istante per istante anche la tensione.

  2. I carichi non sono puramente resistivi, perciò non assorbono la corrente seguendo esattamente la forma d'onda della tensione applicata: la lettura della potenza assorbita, quindi, deve essere fatta misurando istante per istante (più di una volta ogni millisecondo, considerando che un ciclo a 50Hz dura 20ms) tensione e corrente e facendo il prodotto. E' il problema del fattore di potenza.

Per fare tutto ciò temo che si debba necessariamente andare a parlare di mettere le mani sulla tensione di rete, discorso che non può essere affrontato in questo forum per ragioni di sicurezza.

Direi che l'OP può trovare tutte le sue risposte sia QUI che alla radice di quel sito, QUI.

Come detto da "Dataman" altre informazioni sul collegamento e su come fare NON verrano ammesse visto che coinvolgono tensioni oltre la bassissima tensione.

Lascio aperto solo ed esclusivamente per domande su evetuali formule o pezzi di codice, ma al primo accenno ai collegamenti o alla tensione di rete chiudo.

Guglielmo

Ho visto il programma, il quale non prevede librerie particolari, quindi sicuramente più veloce. Adesso lo provo e vedo le differenze con quello che usa Emonlib.h su questo sito.

Tu Guglielmo cosa ne dici?

Riformulo la domanda allora:

Come si esegue una somma di letture?
Considerando che ho questo:

lcd.print (" W: ");
watt = ampere * 220;
lcd.print (watt);
lcd.print (" ");

Come posso sommare i watt letti ogni volta?

steve-cr:
Tu Guglielmo cosa ne dici?

Non so, Open Energy Monitor è da anni che esiste, è ampiamente e diffusamente usato e non ho mai inteso di problemi, quindi ... lo consiglio sempre. ::slight_smile:

Guglielmo

iacopomartini:
Riformulo la domanda allora:

... Ti serve una variabile dove accumuli (sommi) N letture e, alla fine fai variabile/N ed hai il valore medio.

Ma già ti è stato detto che, salvo tu non abbia un carico resistivo puro, la cosa non è così banale causa lo "sfasamento" introdotto dai normali carichi per cui, noto l'angolo di sfasamento φ, la potenza attiva P = Vrms x Arms x cos(φ) ... ::slight_smile:

Continuo a consigliarti lo STUDIO di quei link che ti ho messo.

Guglielmo

Certo che per essere a un corso POST diploma siamo messi maluccio
Anche ignorare che da decenni la tensione di rete è 230 volt (tralasciamo il +7 -14%, per pura pietà )
Invece per Guglielmo, per definizione in AC non serve specificare rms (root mean square, che in Italiano sarebbe eff per efficace )
Tutte le misure AC per definizione sono "efficace", e se trifase "concatenata"

In realtà non si può più parlare semplicemente di sfasamento, poiché i carichi sono più complessi: già un semplice raddrizzatore a diodi con condensatore di livellamento assorbe la corrente a stretti impulsi (pochi millisecondi) intorno al picco della sinusoide della tensione. Solo apparati dotati di PFC (correzione del fattore di potenza) distribuiscono l'assorbimento su una parte maggiore della sinusoide ma, comunque, bisogna fare l'integrale nel tempo.

gpb01:
la cosa non è così banale causa lo "sfasamento" introdotto dai normali carichi per cui, noto l'angolo di sfasamento φ, la potenza attiva P = Vrms x Arms x cos(φ) ... ::slight_smile:

Ed infatti generalmente se si accetta un certo margine di errore e si imposta il cos phi fisso e minore di 1 (es. 0.7). Lo fanno anche i misuratori di consumi.

Standardoil:
Certo che per essere a un corso POST diploma siamo messi maluccio

Ehm, non volevo dirlo... :wink:

Standardoil:
Invece per Guglielmo, per definizione in AC non serve specificare rms (root mean square, che in Italiano sarebbe eff per efficace )
Tutte le misure AC per definizione sono "efficace", e se trifase "concatenata"

"Melius est abundare quam deficere"... :smiley:

Guglielmo

Datman:
In realtà non si può più parlare semplicemente di sfasamento ...

... visto quello che dice l'OP ... mi sembrava già troppo parlare del solo cos(φ) ... :smiley:

Guglielmo

Se vuoi fare uno strumento serio dovresti usare i chip dedicati che leggono tensione e corrente e tengono conte delle cose che ti hanno fatto notare.

Ma se vuoi semplificarti la vita, avere la massima precisione, evitare di scatenare i fulmini di Guglielmo per infrazione del Regolamento Arduinico e soprattutto evitare di rimanere attaccato al 230V, usa il contatore dell' Enel.

In alto a sinistra , di fianco al display ci sono due led rossi che lampeggiano quando c'e' consumo di energia.

Quello in alto indica l'energia attiva assorbita: un lampo = 1Wh
Quello in basso indica l'energia reattiva assorbita (non conteggiata nella bolletta delle utenze domestiche): 1 lampo = 1varh

Vedi foto allegata.

Credo che a te interessi solo la potenza attiva ... se e' cosi' ignora il led in basso ...

Ti ho dato lo spunto.
A te adesso costruire un sensore per catturare i lampi del led e scrivere il software per gestirli.

Edit

Non so quale sia la tua applicazione: quanto sopra vale ovviamente se devi raccogliere informazioni sull' energia assorbita da un utente Enel, per creare grafici, statistiche e cose del genere

Ciao
Marco

LedContatoreEnel.jpg