Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Misurare corrente tramite uC isolato

Elettronica lineare e digitale: didattica ed applicazioni

Moderatori: Foto Utenteg.schgor, Foto UtenteIsidoroKZ, Foto UtenteBrunoValente, Foto Utentecarloc

1
voti

[1] Misurare corrente tramite uC isolato

Messaggioda Foto UtenteAleEl » 29 set 2020, 17:50

Ciao a tutti.
In un topic precedente (https://www.electroyou.it/forum/viewtopic.php?f=1&t=81935) avevo chiesto come misurare una tensione tramite uC isolato, arrivando alla soluzione nel circuito seguente. (Corretto e sistemato gentilmente da Foto Utenteelfo, il quale ringrazio nuovamente).
Il circuito restituisce in uscita una frequenza variabile, in funzione della tensione misurata.
Con il uC basta quindi leggere questa frequenza e trasformarla in tensione tramite la formula presente nel datasheet.



Ora, l'altro problema: vorrei leggere, oltre che la tensione, anche la corrente: vorrei peró avere una risoluzione di 10 bit se possibile. (Risoluzione dei pin analogici del uC Arduino).
Il range di corrente che viene letto varia da zero Ampere a 6 Ampere.

Esiste anche per questa cosa un integrato dedicato?
Credo che, alla fine, l'integrato possa comunque essere un Voltage to Frequency Converter, tuttavia dovrebbe lavorare con tensioni piccole. (A causa della resistenza di shunt che, per forza di cose, dovrei mettere piccola. A tal proposito, ho in casa una resistenza da 0,1 Ohm, che potrebbe farmi comoda. Da tenere conto che, a 6 Ampere, i Watt dissipati sono 3,6.)


Grazie in anticipo
Avatar utente
Foto UtenteAleEl
543 5 12
Sostenitore
Sostenitore
 
Messaggi: 577
Iscritto il: 9 ago 2016, 20:22

0
voti

[2] Re: Misurare corrente tramite uC isolato

Messaggioda Foto UtenteAleEl » 30 set 2020, 15:34

Nessuno con qualche idea..?
Avatar utente
Foto UtenteAleEl
543 5 12
Sostenitore
Sostenitore
 
Messaggi: 577
Iscritto il: 9 ago 2016, 20:22

1
voti

[3] Re: Misurare corrente tramite uC isolato

Messaggioda Foto UtenteMarcoD » 30 set 2020, 17:01

Qualche idea l'avrei, ma non concretizzata e conclusiva in uno schema.
Qualche domanda:
Il circuito precedente con la misura di tensione, nl'hai montato e provato?
Hai disponibile la funzione misura di frequenza di arduino? Che prestazioni ha ?
Una risoluzione di 10 bit ossia 1024 valori, corrisponde all' 1 per mille.
La resistenza di shunt ha una tale precisione al variare della temperatura in seguito alla dissipazione.?
Se prendi per buone la R 0,1 ohm a 6 A hai 0,6 V, potresti amplificarla con un operazionale
reazionato per un guadagno 10, otterresti una tensione di 6 V, che applicheresti al circuito precedente.

Però se vuoi anche misurare anche la tensione, alloras è meglio un integrato convertitore A/D a più cANALI
pilotato con bus I2C optoisolato, come discusso precedentemente.
O_/
Avatar utente
Foto UtenteMarcoD
7.613 4 8 13
Master EY
Master EY
 
Messaggi: 3468
Iscritto il: 9 lug 2015, 16:58
Località: Torino

0
voti

[4] Re: Misurare corrente tramite uC isolato

Messaggioda Foto UtenteAleEl » 30 set 2020, 17:29

MarcoD ha scritto:Il circuito precedente con la misura di tensione, nl'hai montato e provato?


No, ho ordinato in negozio i componenti. Devono ancora arrivare

MarcoD ha scritto:Hai disponibile la funzione misura di frequenza di arduino? Che prestazioni ha ?


Non so dirti le prestazioni sinceramente, peró ti lascio qui un link di riferimento: (Parla di Audio Frequency meter, poi su internet si trovano altre centinaia di esempi diversi, mi sto documentando ora)
https://www.arduino.cc/en/Tutorial/Simp ... uencyMeter

MarcoD ha scritto:La resistenza di shunt ha una tale precisione al variare della temperatura in seguito alla dissipazione.?
Se prendi per buone la R 0,1 ohm a 6 A hai 0,6 V, potresti amplificarla con un operazionale
reazionato per un guadagno 10, otterresti una tensione di 6 V, che applicheresti al circuito precedente.


Non saprei, devo vedere se trovo il datasheet.
https://datasheet.lcsc.com/szlcsc/18111 ... 252911.pdf

MA452750FR100FZ

0,1 Ohm 5 Watt 1%
TCR: <= +/-50


Ok, ho guardato per la lettura di frequenza.
C'é la funzione pulseIn(); che legge gli impulsi e restituisce un tempo.
https://www.arduino.cc/reference/en/lan ... o/pulsein/

Da quel che leggo restituisce il tempo in microsecondi
Returns
The length of the pulse (in microseconds) or 0 if no pulse started before the timeout. Data type: unsigned long.

The timing of this function has been determined empirically and will probably show errors in longer pulses. Works on pulses from 10 microseconds to 3 minutes in length.


Utilizzeró quindi questo metodo, fai finta che il link precedente (Audio frequency meter) non esista

Qui un esempio dell'utilizzo nel caso ti interessasse: https://create.arduino.cc/projecthub/am ... ino-1e4896

La questione dei 10 bit non ha quindi piú senso, dato che non utilizzo piú un pin analogico ma un pin digitale
Avatar utente
Foto UtenteAleEl
543 5 12
Sostenitore
Sostenitore
 
Messaggi: 577
Iscritto il: 9 ago 2016, 20:22

0
voti

[5] Re: Misurare corrente tramite uC isolato

Messaggioda Foto UtenteMarcoD » 30 set 2020, 18:25

Nello schema elettrico del tutorial
https://www.arduino.cc/en/Tutorial/SimpleAudioFrequencyMeter/

non ho capito la connessinoe della alimentazione del LM358 al pin IOREF che non conosco
(non conosco l'arduino zero, solo arduiono 2009 e Uno).
Lo avrei collegato al pin +5 V.
La scala del convertitore A/D dovrebbe essere 0-1 V ? (Se fosse 0-5V, forse onn andrebbe bene)

La funzione pulseln( ) mi pare abbia caratteristiche migliori. Nel caso di frequenza zero si sblocca dopo 1 secondo. Ti va bene?

Inizia a provarla usando come riferimento la tensione a 50 Hz per esempio 5Veff di un trasformatorino, o meglio un generatore di segnali. Attento a mettere sull'ingresso un circuito di protezione per sovratensioni (un resistore da 4,7 kohm in serie e due diodi (uno a massa , l'altro al +5 V)
O_/
Avatar utente
Foto UtenteMarcoD
7.613 4 8 13
Master EY
Master EY
 
Messaggi: 3468
Iscritto il: 9 lug 2015, 16:58
Località: Torino

0
voti

[6] Re: Misurare corrente tramite uC isolato

Messaggioda Foto UtenteAleEl » 30 set 2020, 20:32

MarcoD ha scritto:non ho capito la connessinoe della alimentazione del LM358 al pin IOREF che non conosco
(non conosco l'arduino zero, solo arduiono 2009 e Uno).
Lo avrei collegato al pin +5 V.


IOREF sarebbe proprio un +5V. Sul perché abbiano deciso di utilizzare quel pin e non il 5V classico, non ti so dire

MarcoD ha scritto:La scala del convertitore A/D dovrebbe essere 0-1 V ? (Se fosse 0-5V, forse onn andrebbe bene)


Perdonami ma non ho capito a cosa ti riferisci

MarcoD ha scritto:La funzione pulseln( ) mi pare abbia caratteristiche migliori. Nel caso di frequenza zero si sblocca dopo 1 secondo. Ti va bene?


Si, da software quando spengo il circuito e so quindi per certo di avere tensione zero (quindi frequenza zero), ometto la lettura con pulseIn();.
In ogni caso non penso raggiungerá mai frequenza zero, se non erro l'ic parte da una frequenza base. (Ma potrei tranquillamente sbagliarmi)

MarcoD ha scritto:Inizia a provarla usando come riferimento la tensione a 50 Hz per esempio 5Veff di un trasformatorino, o meglio un generatore di segnali. Attento a mettere sull'ingresso un circuito di protezione per sovratensioni (un resistore da 4,7 kohm in serie e due diodi (uno a massa , l'altro al +5 V)
O_/


Appena ho tutti i componenti inizio a fare i test. Quando poi vedo che é tutto ok, disegno il PCB ed inoltro l'ordine.
Comunque... Con diodi quali intendi? Gli Zener?
Grazie!


Poi ho una domanda: io leggo la tensione dalla resistenza e poi la amplifico con l'operazionale (stessa cosa per leggere la tensione, con la differenza di non avere l'op amp)
Il dubbio che ho peró é il fatto che io il carico lo controllo in PWM, quindi alla fin fine sono impulsi pari al VCC ripetuti tante volte in modo veloce.
Non é che l'ic legge sempre e solo la tensione VCC, e quindi io mi ritrovo a leggere in pratica due frequenze? (Ovvero quella con V = 0 e quella con V = VCC)

Magari é una ca....ta e sono io che sbaglio, peró ci pensavo oggi pomeriggio e preferisco chiedere a te che ne sai di piú
Avatar utente
Foto UtenteAleEl
543 5 12
Sostenitore
Sostenitore
 
Messaggi: 577
Iscritto il: 9 ago 2016, 20:22

0
voti

[7] Re: Misurare corrente tramite uC isolato

Messaggioda Foto UtenteMarcoD » 1 ott 2020, 8:47

Comunque... Con diodi quali intendi? Gli Zener..

No intendevo diodi normali 1N4004 oppure 1N4148.
Però il tuo suggerimento è buono, migliore:
se hai degli zener da 4,7 V, ne basta uno in parallelo fra ingresso e massa.

MarcoD ha scritto:La scala del convertitore A/D dovrebbe essere 0-1 V ? (Se fosse 0-5V, forse non andrebbe bene) Perdonami ma non ho capito a cosa ti riferisci


Sono stato poco chiaro: l'uscita dell'LM358, alimentato a 5V, può variare solo fra 0,2 e 4,3 V, l'ingresso dell'A/D vuole 0-5 V per l'escursione fra 0 e 1023 (10 bit), il tutto funziona ugualmente ma non è ottimizzato. In alternativa si potrebbe selezionare la modalità dell'A/D con scala 0 - 1 V.

Per misurare la corrente media, si potrebbe mettere un condensatore in parallelo al resistore da 0,1 ohm, ma servirebbe un valore troppo grande 10000 uF ?; meglio un condensatore in parallelo
alla rete di reazione dell'amplificatore che dovresti dimensionare.

Le tue domande, mostrano il limite del forum: fai domande apparentemente slegate fra loro,
in realtà ti servirebbe il progetto completo di un qualcosa che però non descrivi bene.

perché non cerchi un progetto/articolo competo fra le riviste per hobbisti?
O_/
Avatar utente
Foto UtenteMarcoD
7.613 4 8 13
Master EY
Master EY
 
Messaggi: 3468
Iscritto il: 9 lug 2015, 16:58
Località: Torino

1
voti

[8] Re: Misurare corrente tramite uC isolato

Messaggioda Foto UtenteAleEl » 1 ott 2020, 13:12

MarcoD ha scritto: Sono stato poco chiaro: l'uscita dell'LM358, alimentato a 5V, può variare solo fra 0,2 e 4,3 V, l'ingresso dell'A/D vuole 0-5 V per l'escursione fra 0 e 1023 (10 bit), il tutto funziona ugualmente ma non è ottimizzato. In alternativa si potrebbe selezionare la modalità dell'A/D con scala 0 - 1 V.


In realtá a me poco importa di quel circuito, dato che alla fine utilizzeró un pin digitale con la funzione pulseIn();


MarcoD ha scritto:Per misurare la corrente media, si potrebbe mettere un condensatore in parallelo al resistore da 0,1 ohm, ma servirebbe un valore troppo grande 10000 uF ?; meglio un condensatore in parallelo
alla rete di reazione dell'amplificatore che dovresti dimensionare.

Le tue domande, mostrano il limite del forum: fai domande apparentemente slegate fra loro,
in realtà ti servirebbe il progetto completo di un qualcosa che però non descrivi bene.

perché non cerchi un progetto/articolo competo fra le riviste per hobbisti?
O_/


Al condensatore, mi son perso.
Scusa se ti rispondo solo ora ma, essendo a scuola, non potevo risponderti. O meglio, avrei potuto farlo ma avrei dovuto omettere una cosa importante che volevo inviarti: lo schema.



Lo schema é un casino, lo so. E non sono sicuro che tutti i componenti siano nominati in modo corretto (Magari c'é qualche doppione).
In linea di massima, questo é il circuito completo.

La mia preoccupazione, indipendentemente dal fatto di leggere la tensione o la corrente, é che in uscita io mi ritrovi due frequenze e basta, e non un intervallo di frequenze idealmente infinito.
Ma questo tu credo l'abbia giá capito.




La mia preoccupazione é che l'integrato LM331 legga il PWM sulla Resistenza Rs, restituendo quindi in uscita Fout 1 quando é sul Ton, ed Fout 0 quando é sul Toff.
In questo modo io posso fare ben poco, perché avrei semplicemente solo due frequenze in ingresso, che non mi servono a niente.
L'ideale sarebbe leggere una tensione lineare, per avere quindi una relazione lineare della frequenza.
La soluzione quale potrebbe essere? Un filtro RC sull'uscita della Rs?

Poi magari sono io che non capisco un tubo e sto tirando su un casino inutile
Avatar utente
Foto UtenteAleEl
543 5 12
Sostenitore
Sostenitore
 
Messaggi: 577
Iscritto il: 9 ago 2016, 20:22

0
voti

[9] Re: Misurare corrente tramite uC isolato

Messaggioda Foto Utentemarioursino » 1 ott 2020, 15:16

Forse ho perso qualche pezzo.. è chiaro che la corrente devi leggerla (tramite la lettura di frequenza) solo quando M1 è acceso, ed eventualmente dopo un periodo di "settling" di LM331. Questo presuppone anche che la frequenza di switching di M1 sia molto minore di quella di LM331 nel range di interesse.

Altra cosa: dallo schema entrambe le uscite vanno ad A1 uc?
Avatar utente
Foto Utentemarioursino
5.192 3 9 13
G.Master EY
G.Master EY
 
Messaggi: 1531
Iscritto il: 5 dic 2009, 4:32

0
voti

[10] Re: Misurare corrente tramite uC isolato

Messaggioda Foto UtenteAleEl » 1 ott 2020, 15:22

marioursino ha scritto:Forse ho perso qualche pezzo.. è chiaro che la corrente devi leggerla (tramite la lettura di frequenza) solo quando M1 è acceso, ed eventualmente dopo un periodo di "settling" di LM331. Questo presuppone anche che la frequenza di switching di M1 sia molto minore di quella di LM331 nel range di interesse.


Ciao Mario, grazie dell'interessamento.
Purtroppo mi son perso con ció che hai detto...
Nel senso: ovviamente la corrente viene letta quando M1 é acceso, altrimenti si sa che é zero.
Non ho capito il periodo di setting che intendi.

La mia preoccupazione é semplicemente il fatto che, lavorando in PWM e non in lineare, alla fin fine la tensione che c'é sulla resistenza é sempre la stessa no?
Insomma, non so se mi sono spiegato e non so neanche se sto tirando su un polverone per niente...
Forse mi son spiegato male io, non lo so

La frequenza di switching di M1 si aggira sulla decina di kHz comunque, avevo dimenticato di precisarlo


marioursino ha scritto:Altra cosa: dallo schema entrambe le uscite vanno ad A1 uc?


Non é "A1" ma "Al"
L'uC é sempre lo stesso, ma ovviamente i pin utilizzati sono diversificati. (Es. D3 per la tensione e D5 per la corrente)
Avatar utente
Foto UtenteAleEl
543 5 12
Sostenitore
Sostenitore
 
Messaggi: 577
Iscritto il: 9 ago 2016, 20:22

Prossimo

Torna a Elettronica generale

Chi c’è in linea

Visitano il forum: Google Adsense [Bot] e 44 ospiti