Aref da Arduino (3.3) su Arduino Mega

Ciao a tutti,
provo a esporre il mio problema.

Ho dei sensori SCT-013-030 che leggono correnti fino a 30A, in uscita invece generano una tensione da 0 a 1 V/Ac.

Ho usato questa metodica per leggere i dati su Arduino.

Ho usato 2 amplificatori LM358 (2 porte cadauno) in modalità non invertitore.

Per calibrare il circuito ho usato un generatore di frequenza inpostando come sorgente 1 V/Ac.

All'uscita dell'Amp (tramite Potenziometro) ho regolato una tensione di 3.3 Volt.

Fatto cio ho collegato il Pin della Arduino "3.3V" al Pin Aref, con relativa immissione nello Sketch del comando AnalogRead(EXTERNAL).

Ora il mio problema, per circa 1 ora sono riuscito a leggere il segnale generato dalle sonde e amplificato dai LM358, dopodiché nisba !!!

Non ho piu nessuna sorta di segnale da parte dell'Arduino :frowning:

Ho immesso 2 volt negli Analog Input per vedere se le entrate erano bruciate, ma tutto funziona come dovere.

Il circuitino con gli LM358 amplifica funziona anche.

Unica cosa che ho notato poco fa è la seguente : Se stacco la massa che dal mio piccolo Print va sulla massa dell'Arduino, i valori riappaiono, ma penso che siano valori sballati e per di più negativi (il segnale d'uscita del mio circuito è positivo, controllato con l'oscilloscopio).
Se poi invece riattacco la massa, i valori tornano a 0 !!

Per alimentare il mio circuitino ho un alimentatore da 5 V (ma poi ne genera 7.5, meglio per me).

Ho provato anche ad alimentare L'arduino e circuito tramite stesso alimentatore, nemmeno li niente :frowning:

Qualcuno di voi sa dirmi dove sbaglio ?? Sarà l'ora tarda e sono abbastanza confuso.

Grazie e a presto

Remo

Hai questo sensore di corrente?

Questo sensore misura solo correnti alternate ma non correnti continue e da come uscita tensioni alternate. Arduino non misura tensioni negative. Si rompe. Lo hai "salvato" usando dei operazionali.

Senza il circuito preciso non so dirti di piú.
Ciao Uwe

Ciao Uwe,
grazie della celere risposta.

Si sono consapevole di quanto mi hai detto, ti confermo anche il sensore.

Lo schema che uso (se cosi si puo chiamare, lo trovi qui ...è proprio il primo della pagina. --> Invertierender Verstärker (Operationsverstärker)

Sulla R1 ho messo una resistenza da 1 KOhm mentre sulla R2 un potenziometro da 20 Kohm, calibrandone l'uscita a 3.3 Volt.

Pensi di dover rinunciare all'AREF e lavorare in modalità/range 5 Volt ?

Quello che non riesco a capire è se una volta settato il comando analogreference(External), questo rimanga sempre attivo, o si disattivi non appena viene caricato un'altro sketch di tutt'altro genere.

Grazie dei consigli e buona serata

Remo

ok, quello é un amplificatore invertente.
Come e con che tensione alimenti i LM358?
Tu sai che i LM358 non arrivano come tensione di uscita alla tensone di alimentazione positiva ma restano ca 1,5V sotto?
Come hai collegato il sensore di corrente?
Ciao Uwe

Buongiorno Uwe,

Gli amplificatori (ne uso 3) li alimento esternamente con una tensione di 7.5 Volt, la stessa tensione la uso per alimentare Arduino.

Il sensore è collegato con un polo a massa e l'altro va sul polo + dell,amplificatore. (non so come si fa ad allegare un'immagine qui nel forum).

Come detto in precedenza, ho calibrato il tutto utilizzando un Gen.di frequenza, impostando la sorgente a 1 V/ac e tramite potenziometro l'uscita a 3.3V.

Sul fatto che dici che gli Opamp restano 1.5V sotto, allora mi chiedo, perché le prime 2 ore funzionava ? O forse erano valori sballati dell'arduino ? (dovute a tutte le prove che facevo, staccando e riattaccando i sensori)

dalla mia calibrazione ne risulta un'amplificazione di 3.3 , cio che affermi, è riferito al fatto che in entrata ho un segnale alternato ? (SQRT di 2 = 1.41).

Pensi forse che dovrei aggiungere un Offset di + 1,5V nella lettura dei valori ?

Grazie per la disponibilità.

Remo

Ciao remino

Siccuramente é giusto collegare il sensore di corrente a un offset di 1,65V (partitore resistivo con 2 resisteze uguali messo su 3,3V). Il sensore di corrente da una tensione di 1V con 30A valore effettivo sinusoidale. Il valore massimo della sinusoide é 1,4142V. (I valori di AC sono per definizione valori effettivi se non é specificato contrariamente.

Accettando un po di perdita di risoluzione si potrebbe non usare gli operazionali e collegare il sensore direttamente all entrata analogica del arduino.

Ciao Uwe

Ciao Uwe,
escludendo gli operazionali, pensi di collegare il sensore direttamente alle entrate di Arduino ? Dando un'offset di 1.65 V su una sola parte del Sensore ?

Pensi che debba provare cosi ? Forse settando il Range dell arduino Mega su 2.56v Inteni ?

Saluti

Remo

Il collegamento intendo un polo del Sensore di corrente su un entrata analogica di arduino e l' altra sul centrale del partitore resistivo 1:1 collegato a 3,3V in modo da ottenere 1,65V (offset).
Il ref 2,56 é troppo piccolo per poter usare il range pieno del sensore. Se vuoi misurare delle correnti molto inferiori ( per esempio sotto 10A) puoi usare un offset di 0,55V e un Aref di 1,1V.
Ciao Uwe

Ciao Uwe,
grazie del chiarimento, nel tardi pomeriggio proverò a fare questo collegamento, utilizzando un solo sensore.

Grazie ancora e a risentirci.
Buon pomeriggio
Remo

Ciao Uwe,
ho fatto un Circuito volante, ora in pratica sull'analogo leggo quell'offset di 1.65V (circa 510 Step).
Dovrei ora sottrarlo e trovare il coefficiente reale che mi mostri il valore reale del sensore.

O sto sbagliando ?

Saluti
REmo

Buongiorno Uwe,
come detto ieri, tramite partitore di tensione, ho collegato le sonde.
Un polo del sensore al centro del partitore (1.65V), l'altro all'entrata dell'Arduino (A0).

Come detto ieri, leggendo l'analogo riscontro un valore di ca. 1.63 contro il valore del partitore di 1.65v.

La mia domanda, devo cominciare a lavorare partendo da questa differenza per fare i prossimi calcoli ?

Premetto che la fase in questione (ne ho 3 L1 L2 L3) era gia sotto carico.

qui cè il link dei dati accumulati nelle ultime 24 ore, premetto che sono dati di fantasia, era solo per vedere se i sensori reagivano.

So che la notte dalle 00.30 alle 2.30 il nostro boiler si accende (ed era quello che volevo monitorare).

L'unico problema, i valori del grafico sono anche in negativo (in precedenza mi avevi detto che l'arcuino poteva rompersi così).

Ecco il link --> https://api.cosm.com/v2/feeds/70506/datastreams/leistung1.png?width=730&height=250&colour=F15A24&timezone=Bern

Saluti

Remo

Ciao Remo

Per la misura devi sottrarre dal valore ADC letto l' offset (ca 511) e otterai anche valori negativi.
Se hai un carico resistivo trifase simmetrico basta la lettura della corrente su una fase.

Stai misurando alternata percui devi fare una lettura su un onda completa (20mS) per trovare il valore massimo e calcolarti il valore effettivo.

Il pin di Arduino non deve ricevere tensioni negativi o superiori alla tensione di alimentazione senó si rompe.

Non capisco il grafico che hai allegato.

Ciao Uwe

ciao Uwe,
il grafico allegato era solo per farti notare che venivano calcolati anche valori negativi.

Ora provero a calcolare il tutto e vediamo cosa ne esce.

Non ho capito quanto hai spiegato sulla Trifase.

Intanto grazie per i consigli e buon appetito

Rmeo

Un sistema trifase (con o senza neutro) a cui é collegato un carico trifase simmetrico ha su ogni fase la stessa corrente e percui non serve misurare 3 correnti ma 1 corrente. Carico simmetrico significa che le resistenze collegate alle fasi/neutro sono messe im modo uguale.

Ciao Uwe

Cio Uwe,
in pratica ho acquistato 2 Sonde di troppo ?

Al momento ho collegato le sonde rispettivamente sulla L1,L2,L3.

A quanto ne so, le Trifasi qui in Svizzera sono in modalità stella (nn en sono sicuro pero e nn so se centra).

Saluti e scusa la banalità delle mie domande...il mio studio di elettronica risale a tempi molto remoti :--)))

Remo

Anche qua in Italia.
Se un carrico é simmetrico indipendentemente se collegato in stella o triangolo la corrrente sul neutro é zero.
Se hai carichi asimmetrici c'é corrente sul neutro e devi misurare le correnti su tutti tre le fasi.
Ciao Uwe

Ricordato di inserire in setup:

analogReference(EXTERNAL); // DEFAULT (5V), INTERNAL1V1 (1,1V), INTERNAL2V56 (2,56V), EXTERNAL (0÷5V)

Ettore Massimo Albani

Buongiorno,

@ Uwe , grazie della spiegazione, vorrà dire che useró le altre 2 sonde per qualcos'altro.
Cè una formula che posso utilizzare, per calcolare la Potenza apparente ?
O posso basarmi sulla legge di OHM --> P = U*I ?

@Ettore, grazie del consiglio, lo avevo già impostato:-)

Saluti

Remo

ho trovato questa su wikipedia :slight_smile:

P = 3 * Uin * In * cos(fi)

Ora, il cos fi va da 0 a 1 , come si fa a calcolarlo ? Ho letto in giro che si aggira sui 0.9.

Saluti

Remo

Resistenze (avevi scritto che avevi un boiler) hanno un cos(fi) di 1, percui la potenza attiva corrisponde a quella apparente.

La formula é giusta ma non per la potenza apparente ma per la potenza attiva. Uin á la tensione tra neutro e fase (230V)

Se misuri o usi la tensione tra fase e fase (400V) la formula é:
P = sqr(3)* UIcos(fi)

Tutti i valori usati sono valori effettivi. Il valore effettivo di un onda sinusoidale é il valore massimo diviso sqr(2).

ps. la legge di Ohm é U=R*I

Ciao Uwe