Come utilizzare il sensore di corrente non invasivo SCT-013-020 (o SCT-013-030)

In: http://myelectronichome.altervista.org/joomla/it/il-sensore-di-corrente-non-invasivo-sct-013-020.html
uno sketch che permette di rilevare la corrente tramite un sensore di corrente, non invasivo, SCT-013-020 (o SCT-013-030)

Tra le caratteristiche principali del software:

  • poco sensibile ai picchi transitori che si presentano nella rete (grazie alla media di ogni lettura con le 4 precedenti)

  • Indicazione della potenza assorbita basata sul calcolo dell'area, e non sull'ampiezza picco picco, dell'onda rilevata dal sensore. Ovvero permette di avere valori proporzionali alla corrente anche sotto carichi elevati quale forno e phon che altrimenti avrebbero fornito valori simili.

Dettagli completi nel sito.

Ciao erasemenow
Ti stai facendo publicitá della Tua pagina Internet?

Per primo presentati nel Topic riservato alle presentazioni.
Per secondo saluta quando scrivi qualcosa.
Per terzo non aprire piú di un tread dello stesso tema. (Ho cancellato quello inglese)

Poi per il progetto sulla pagina.

Scusami se mi esprimo con parole dure, ma su quel sito sono scritte stronzate.
Chi scrive che in un sistema di corrente altenata sinosoidale come l'alimentazione elettrica della rete ENEL (o altri agenzie energetiche) la durata della semionda della corrente o la sua forma d'onda varia con il valore della corrente non capisce niente di elettricitá.

Perché da qualche prova ho notato che aumentando il carico elettrico, l’onda non aumenta il suo valore massimo più di tanto, ma invece diventa più larga.

Un utenza come un forno ha un andamento della corrente sinusoidale, un fhon ha un andamento della corente quasi sinusoidale, ma di sicuro non triangolare come riportato. I picchi che noti su qualche utenza sono reali picchi di corrente e percui per il calcolo della corrente deveono essere considerati. Questo perché, osservando la curva, non sono casuali, ma si ripetono nella semionda negative simile a quella positiva.

La misura della potenza attiva (Watt) avviene moltiplicando il valore effettivo della corrente con il valore effettivo della tensione moltiplicando per il coseno del angolo di sfasamento tra la tensione e la corrente.
Nello sketch non viene considerato ne il valore effettivo, ne la tensione, ne lo sfasamento.
La considerazione che un fhon consuma meno potenza di un forno mi sembra azzardata. Entrambi possono consumare sui 1,5kW.

Inotre lo sketch riportato non é corretto; non compila:

if (max2
           {max2=mediato;}

Il circuito di amplificazione segnale é piú che amatoriale. Per sottrarre una tensione non si usano dei diodi in serie all uscita ma un sottrattore costruito con operazionali. Il trasduttore opportunamente scelto (con tensione di uscita di 2V eff) puó essere collegato direttamente a Arduino senza dover utilizzare amplificatori.

Chi vuole fare dei tutorial o delle istruzioni deve imparare e conoscere prima di apire bocca la materia che vuole spiegare. Questa persona non sa la materia che vuole spiegare.

NB: Il ATmega328 non é una CPU ma un Microcontroller perché ha integrato CPU, diverse memorie e circuiti e interfaccie I/O.

Ciao Uwe

:astonished:

Grazie Uwefed dell'attenzione.

Devo dire che mi aspettavo una accoglienza diversa. Ma considero le sue "parole dure" come base per costruire.

A tale fine esprimo alcune considerazioni su quanto ho scritto.

Ma prima premetto che non sono abituato a scrivere e pertanto vorrei indicare che il tono della email di questo testo e del tipo "cordiale, cortese e costruttivo" ed aderente alla netiquette. Qualora dovesse sembrare di tipo "polemico", assicuro fin d'ora che non è nella mia natura e quindi non è assolutamente intenzionale.

Cominciamo.

Anche ben evidenziato e quotato. Ho dovuto rileggere il testo della mia pagina molte volte per comprendere bene il punto in cui avrei affermato che la frequenza dell'onda dipendeva dalla corrente assorbita. Alla fine, presumo di aver compreso, che il tutto derivava dal termine "larga" immediatamente sopra l'immagine delle due onde del phon e del forno al quale il termine si riferiva. Era un termine con il quale intendevo indicare che si allargava l'area dell'onda, proprio come l'immagine subito sotto metteva in evidenza e nella quale si vede che la frequenza non cambia. Non avrei mai immaginato che si potesse arrivare ad attribuire tale termine al concetto di periodo dell'onda della rete elettrica. In effetti, senza guardare l'immagine, il termine genera confusione e ambiguità. Ringrazio della segnalazione e per coerenza con questo topic aggiungero spiegazioni all'interno di una parentesi.

Ogni forma d'onda, in ogni grafico nel sito, inclusa quella del forno e del phon (quest'ultima è quella che appare triangolare) è quanto ha visto realmente la scheda Arduino collegata direttamente con il sensore. (Metodo usato: lettura continua in un ciclo for sul pin analogico con memorizzazione 400 valori in un vettore, inviato successivamente via seriale ad un pc per successiva visualizzazione con excel. Usato il vettore per minimizzare il tempo tra letture successive.)

Conosco che W=VIcos() e quindi a parità di tensione 230V, la lettura in uscita del sensore dipende da I (o, essendo proporzionalmente legata, da W). Almeno presumo che sia questo quanto si intendeva. Tuttavia é il sensore che capta il campo magnetico generato dal cavo e lo fornisce come tensione di uscita. Quindi abbiamo una V legata alla formula indicata tramite una funzione F(x). Questo per dire l'abito della citata formula W=VIcos() è il cavo da misurare mentre diversa invece è la funzione che lega la potenza assorbita (o transitante nel cavo da misurare) con la tensione in uscita dal sensore. Tale funzione dipende anche dalla isteresi magnetica del sensore (che è un piccolo trasformatore di tensione) e conseguentemente non è una funzione lineare. La non linearità giustifica forme d'onda diverse a secondo del carico (I transitante).
(Tornando al precedente paragrafo tale F(x) può determinare forme d'onda differenti o traslazioni in ritardo, ma non ne cambia la frequenza e d'altronde il risultato dello sketch non è sensibile alle sole variazioni di frequenza). Pertanto se si considera solo l'ampiezza picco-picco dell'onda non si riesce a distinguere un phon da 1200W con un forno da 2000W (Erano questi i valori di riferimento delle mie apparecchiature domestiche). Fu questo il risultato di una delle prime versioni dello sketch. Da qui seguì l'analisi delle forme d'onde derivanti dai due carichi e quindi la constatazione che queste oltre a non essere sinusoidali sono dipendenti dal carico. Infatti all'aumentare del carico elettrico le creste raggiungono velocemente un livello picco-picco sul quale, una volta raggiunto, aumentano leggermente mentre l'area delle semionde si espande (il periodo rimane fisso, espansione lungo l'asse y, ai lati del picco). E' questo il motivo perchè l'onda rilevata dal sensore per il phon (1200W) e il forno (1800W), nella pagina del sito appaiono, una quasi sinusoidale e l'altra triangolare (vorrei ripetere ancora che tali onde sono rilevate direttamente tramite Arduino collegato direttamente con il sensore). Da qui l'idea di calcolare l'area (integrale) dell'onda per ricavare una indicazione della corrente transitante nel cavo.

Comprendo e apprezzo il lavoro di moderatore del sito e ancor più di analisi teorica di quanto possiamo scrivere noi "utenti". Non nascondo che diversi mesi fà, prima di provare il sensore, avrei avuto le stesse perplessità sull'evoluzione della forma d'onda.

Ringrazio per per avermi fatto notare l'errore nel programma. Ora l'ho corretto. Soliti problemi di copia e incolla. Quanto prima mettero il download direttamente al file.

Nella parte finale della pagina ho voluto descrivere una delle prime prove realizzata in hardware allo scopo di non appesantire il Microcontroller in temini di consumo di CPU. Ho riportato più volte l'indicazione "Attenzione progetto abbandonato" o "idea che ho scartato" perchè volevo far passare il messaggio che in tale prototipo gli spikes sembravano amplificati. Oltre ciò specifico anche che non ho analizzato se tale fenomemo era dipendente solo dal mio prototipo. Magari qualcuno alle prese con la stessa situazione poteva aggiungere pareri e consigli.

So bene la differenza tra microcontroller e CPU. Forse è questo il problema. Quando scrivo tendo a scindere la CPU dal resto, anche se questa fisicamente è all'interno del microcontroller. Ho comunque riletto la pagina e mi sembra di rivogermi sempre alla CPU in termini corretti. Sarei grato per le frasi ambigue affinchè possa correggerle.

La parte "Il trasduttore opportunamente scelto (con tensione di uscita di 2V eff) puó essere collegato direttamente a Arduino senza dover utilizzare amplificatori" non l'ho ben compresa. Il sensore SCT-013-020 produce 2v picco picco ma intorno alla zero e qundi da +1V a -1V. Non collegherei mai una tensone negativa ad un input dell'Arduino per paura di "bruciarlo". Tuttavia questa frase apre una lacuna nelle mie conoscenze poichè in effetti non ne conosco il comportamento in input nel caso di tensioni negative. Ho sempre creduto che non fosse un bene applicare tensione negative ad un dispositivo ideato per accettare da 0 a 5V. Tuttavia, e credo che sia riferito a questo, so anche che entro determinati range alcuni integrati accettano piccole tensioni negative. Diventa quindi una mia curiosita sapere se il microcontroller e/o il suo pin, si brucia o riesce a lavorare e nel caso positivo, fino a che tensioni si possa spingere. Caso mai, nel mio programma è sufficente eliminare la parte relativa alla determinazione dello 0V.

Per quello che riguarda la frase "su quel sito sono scritte stronzate", cortesemente faccio presente che tutto quanto ho descritto deriva da prove e controprove reali. Per quanto concerne la casa domotica la invito a venire a vederla e constatare di persona. Per quanto concerne lo sketch oggetto della conversazione, invoco il metodo scientifico, invitando anche ai lettori a verificarne le risultanze, riprodurre il sistema e quindi a condividerne i risultati (è sufficente un sensore un arduino e un pc).

Un ciao.

Caro erasemenow,
in effetti il buon Uwe è stato un po' duro con te ma non ha tutti i torti.
Da un lato c'è da lodare il tuo impegno per aver affrontato il problema, ma dall'altro cerchi di divulgare su Internet le tue esperienze senza tener conto della teoria che c'è alla base.
Hai sorvolato sul concetto di Valore Efficace e sui metodi per ricavarlo e non puoi pretendere che un esperto non storca il naso.

Ciao Cyberhs,

Nel mio progetto, serviva una indicazione certa e che non fosse compressa sulla fascia alta dei valori. L'obiettivo del progetto era quello di avere un valore stabile e superato il quale scatta un messaggio vocale che dice " troppa corrente".
Il metodo che ho utilizzato per ottenere tale valore è descritto e facile da analizzare dal programma.
Tra l'altro integro l'onda in uscita dal sensore e questo ricorda il valore efficace su un onda non sinusoidale.
Non conosco altri algoritmi per determinarlo in un onda non sinusoidale.

Nel sito non spiego mai i concetti alla base di quanto espongo. Non ne avrei tempo e oltremodo su internet c'e già qualcuno che lo ha già fatto e meglio di come potrei farlo io. Metto in vetrina quanto ho realizzato cercando di utilizzare un linguaggio per non addetti ai lavori. Mi illudo che chiunque possa riprodurre in ogni dove le cose descritte.

Tuttavia, sebbene lo sketch funzioni ed è adatto allo scopo che si prefigge, se ho già accumulato due critiche da persone, si sconosciute ma che ritengo esperte, deve esserci qualcosa che mi sfugga e per il quale chiedo cortesemente maggiori informazioni.

erasemenow:
Non conosco altri algoritmi per determinarlo in un onda non sinusoidale.

Il valore efficace non è dato da un integrale, semmai serve la derivata, e l'algoritmo per calcolarlo è descritto chiaramente dal suo nome in Inglese, ovvero rms = Root Mean Square che tradotto in Italiano vuol dire "radice della media dei quadrati".
In pratica campioni il segnale con una frequenza almeno 20 volte maggiore della sua ottenendo i valori istantanei, che da un punto di vista matematico sono il valore numerico della derivata, li elevi al quadrato, li sommi per poi fare la media di tutti i campioni presi e infine estrai la radice, questo è il valore efficace.

Formula per il calcolo del valore rms di una tensione/corrente:

Ciao erasemenow
La mia reazione dura era partita anche dal fatto che non hai nemmeno fatto un saluto o una presentazione.

Tra l'altro integro l'onda in uscita dal sensore e questo ricorda il valore efficace su un onda non sinusoidale.
Non conosco altri algoritmi per determinarlo in un onda non sinusoidale.

Per calcolare il valore efficace devi fare la media quadrata e non quella aritmetica. La somma dei quadrata dei valori diviso per il numero di elementi e poi la radice quadrata. Valore efficace - Wikipedia

Conosco che W=VIcos() e quindi a parità di tensione 230V, la lettura in uscita del sensore dipende da I (o, essendo proporzionalmente legata, da W). Almeno presumo che sia questo quanto si intendeva. Tuttavia é il sensore che capta il campo magnetico generato dal cavo e lo fornisce come tensione di uscita. Quindi abbiamo una V legata alla formula indicata tramite una funzione F(x). Questo per dire l'abito della citata formula W=VIcos() è il cavo da misurare mentre diversa invece è la funzione che lega la potenza assorbita (o transitante nel cavo da misurare) con la tensione in uscita dal sensore. Tale funzione dipende anche dalla isteresi magnetica del sensore (che è un piccolo trasformatore di tensione) e conseguentemente non è una funzione lineare. La non linearità giustifica forme d'onda diverse a secondo del carico (I transitante).

Nel Datasheed del SCT-013-020 puoi leggere:
Non linearity +/-3% (10% - 120% read input current) percui l' errore non é cosí grande da distorgere la forma d' onda del segnale letto dal trasduttore.
Il sensore in oggetto é un trasformatore di corrente che ha come primario 1 spira (il cavo che passa in mezzo) e piú spire sul secondario. La corrente del secondario dipende dal rapporto di spire tra primario e secondario. Per ottenere una tensione sul secondario é collegato una resistenza. Le correnti di magnetizzazione vengono presi dal primario e percui la tensione di uscita é abbastanza (3% di non linearitá come descritto nei dati del sensore) propozionale alla corrente del primario.
La potenza attiva dipende oltre dalla corrente anche dallo sfasamento. Per questo é necessario misuare lo sfasamento e considerarlo nel calcolo.

Il sensore SCT-013-020 produce 2v picco picco ma intorno alla zero e qundi da +1V a -1V.

Nella pagina fai vedere all inizio uno schema dove crea una tensione di 2,5V e il sensore di corrente é collegato con un polo a questo offset. Perché descrivi dopo un circuito con operazionali?

Secondo il tipo di utenza (solo resistiva o induttivo come motori) la corrente pur sempre rimanendo sinusoidale cambia lo sfasamento rispetto la tensione. Rimanendo sinusoidale basta rilevare la tensione di picco e calcolarne il valore efficace.
Il problema si ha con utenze che distorgono la corrente come alimentatori switching, inverter ecc. In quel caso si deve calcolare il valore efficace tramite misura della forma d' onda con il calcolo della media quadrata.

Nella parte finale della pagina ho voluto descrivere una delle prime prove realizzata in hardware allo scopo di non appesantire il Microcontroller in temini di consumo di CPU. Ho riportato più volte l'indicazione "Attenzione progetto abbandonato" o "idea che ho scartato" perchè volevo far passare il messaggio che in tale prototipo gli spikes sembravano amplificati. Oltre ciò specifico anche che non ho analizzato se tale fenomemo era dipendente solo dal mio prototipo. Magari qualcuno alle prese con la stessa situazione poteva aggiungere pareri e consigli.

Questo é una cosa che non ho capito dal testo del sito. Si capisce che l' hai abbandonato ma non perché. Potresti piú dettaglatamente dire di non usare tale circuito e i problemi che hai avuto per scartare questa via. L' uso di 6 diodi per abbassare la tensione non é una schelta opportuna perché anche se di poco la tensione del diodo dipende dalla corrente che ci passa e con correnti variabili cambia anche la tesione sui diodi.

non ne conosco il comportamento in input nel caso di tensioni negative.

I diodi di protezione interni dei pin con tensioni negative (maggiore di 0,5V rispetto massa) conducono e visto che non c'é limitazione di corrente si rompeá il circuito interno che pilota il pin (se si ha fortuna solo di quel pin) fino al guasto generale del Microcontroller.

Il sensore SCT-013-030 fornisce 1V quando nel cavo da misurare transitano 30A e quindi grosso modo fornisce 0,7V ben oltre ai 3KV di assorbimento standard per le case in Italia.

correggi per favore in kW

CPU: visto che parli sempre in generale del ATmega328 del Arduino puoi scrivere sempre microcontroller. Vedo sensato di parlare della CPU del Microcontroller nei casi dove si parla della architettura interna del Microcontroller.

La digitura "Watt_Indicator" é sbagliata perché lo sketch non calcolo la potenza, ma misuri e viualizzi anche se non in modo corretto la corrente assorita. Come detto la potenza attiva (Watt) viene calcolato con la corrnete, la tensione e lo sfasamento.

Il contattore scatta quando raggiunge una certa potenza:

Entra nel Mercato Libero: Offerte Luce e Gas | Enel Energia
Cosa è previsto per quanto riguarda il prelievo di potenza?

Il contatore elettronico consente, per un tempo illimitato, la disponibilità di una potenza superiore del 10% rispetto alla potenza impegnata, sottoscritta a livello contrattuale. Per esempio, per un contratto da 3 kW è possibile prelevare senza limiti di tempo fino a 3,3 kW. Inoltre, se si superano i 3,3 kW, viene data la possibilità di prelevare fino a 4 kW per almeno tre ore. Se si preleva una potenza superiore ai 4 kW, il dispositivo per il controllo della fornitura di energia elettrica scatta entro quattro minuti.

Inoltre nel imopianto elettrico é normalmente installato un interuttore differnziale e uno magnetotermico. Quest'ultimo scatta con la sua curva in funzione della corrente (e non potenza attiva)

Mi scuso per l' uso della parola "stronzate". Possiamo concordarci su "sono scritto cose scorrette"?

Vorrei correggere un errore che ho fatto:

Il trasduttore opportunamente scelto (con tensione di uscita di 2V eff) puó essere collegato direttamente a Arduino senza dover utilizzare amplificatori.

Deve essere 2V picco oppure al massimo 1,75Veff per non superare i 5V picco picco, usando un partitore resistivo che crea un offset di 2,5V.

Ciao Uwe

...poi per completezza metto qui link al progetto OpenEnergyMonitor in cui si fa largo uso dei sensori di cui si sta parlando, e che ha rilasciato una libreria completa per Arduino, oltre a svariate pagine di blog che aiutano nella calibrazione e nelal connessione dei componenti:
www.openenergymonitor.org

Ciao a tutti,

ripropongo una nuova versione della pagina html con lo sketch.

Salvo qualche modifica estetica, lo sketch è lo stesso della prima versione, ma questa volta nella parte descrittiva ho insistito molto sullo scopo del progetto e in particolare sui limiti di funzionamento.
Sviste o cantonate sono sempre possibili per cui graditi i vostri pareri.

Un saluto