Pagina 1 di 1
Circuito per ACS712
Inviato: 2 lug 2011, 1:10
da andrea1984
Salve a tutti,
ho acquistato il sensore di corrente Allegro ACS712, ma ho delle difficoltà ad interfacciarlo ad un PIC per poter calcolare il valore RMS della corrente (a 50Hz).
Il datasheet comprende anche una serie di applicazioni, ma non le ho trovate molto utili.
Il problema principale è che il sensore dà in uscita una tensione AC proporzionale alla corrente, nel mio caso 100mV/A (è la versione 20A).
Usare un diodo (applicazione 4 del datasheet) a mio avviso elimina la maggior parte della dinamica del segnale, che va da 0 a 2 volt.
Il mio intento è quindi di amplificare e traslare il segnale in modo che sia tutto tra 0 e 5V (tensione massima per l'ADC del PIC16f87), oppure raddrizzarlo sempre nella stessa gamma di tensioni (che è anche meglio perché mi aumenta la sensibilità).
Vi ringrazio per l'aiuto.
Re: Circuito per ACS712
Inviato: 2 lug 2011, 7:12
da g.schgor
Puoi rettificare il segnale con una configurazione
ad amplificatore operazionale come illustrato
qui.
Attenzione però che facendone poi la media (con filtro)
abbassi la risposta dinamica, quindi bisogna fare
un compromesso fra precisione e velocità di risposta.
Re: Circuito per ACS712
Inviato: 2 lug 2011, 8:42
da andrea1984
Si ma bisogna usare un raddrizzatore a doppia semionda, altrimenti viene malissimo.
Mi sono dimenticato di dire che io ho solo una alimentazione, 5V, per cui non so se si riesce a fare un raddrizzatore a doppia semionda.
Attualmente avevo pensato ad un opamp a singola tensione, con amplificazione unitaria (tanto il segnale di ingresso oscilla tra -2 e 2, quindi 4 volt di dinamica), che trasla a 2 volt. In questo modo ho il segnale sempre positivo (0 - 4 volt) e posso fare acquisizione dal PIC per ricavare il valore RMS.
Re: Circuito per ACS712
Inviato: 2 lug 2011, 9:18
da carloc
Direi che non devi raddrizzare proprio niente.... prendi l'uscita e la porti all'ADC -il filtro LPF anti-alias è integrato-
Il datasheet dell'ACS712 riporta che "Zero Current Output Voltage = 0.5 x Vcc"

... in pratica a riposo hai metà dell'alimentazione... proprio quello che ti serve...
D'altra parte per la corrente efficace ancora ancora poteva andare di raddrizzare di precisione ad onda intera... ma se poi aggiungi una "presa voltmetrica" per avere anche tensione, potenza attiva (secondo me miravi qui

), reattiva, cosphi.... beh allora raddrizzando rischi ambiguità sui segni...
Re: Circuito per ACS712
Inviato: 2 lug 2011, 9:44
da andrea1984
Non ci avevo proprio fatto caso, il range di escursione del segnale se alimento a 5V varia da 0.5 a 4.5, tutto entro i limiti! Io devo misurare la potenza attiva, quindi lo porto direttamente al pin del PIC, e poi campiono il segnale velocemente per stimare il valore RMS. Mi sapreste dare una frequenza di campionamento sufficiente per la stima, sapendo che il segnale è a 50Hz, che può essere anche un po' sporco essendo la rete di casa?
Re: Circuito per ACS712
Inviato: 2 lug 2011, 10:23
da carloc
Eh bella domanda.....
oltre che sporco c'è il fatto che tensioni e specialmente correnti saranno ben lontane dalla "sinusoide" -gli alimentatorei switching, praticamente tutti oggigiorno, sono spesso pessimi da questo punto di vista.
In breve armoniche a profusione....(BTW chissà che banda hanno i contatori dell'ENEL??)
Poi un discorso ben fatto non può prescindere dalla risoluzione dell'ADC, banda e tipo dei filtri anti-alias, accuratezza richiesta, derive varie...
Re: Circuito per ACS712
Inviato: 2 lug 2011, 14:56
da andrea1984
Ho anche un sensore di corrente non invasivo, SCT-013-030, 30A -> 1V, in questo caso ha senso fare lo shifting e l'amplificazione con l'operazinale in quanto il sensore è solo un trasformatore di corrente.
Secondo me un campionamento a 200Hz con 400 campioni da una buona stima dell'RMS.
Spero solo che le variabili dei PIC siano ababstanza capienti da potermi contenere la somma dei quadrati di 400 campioni...
Re: Circuito per ACS712
Inviato: 2 lug 2011, 15:31
da carloc
Ma con un TA a parte filtri, protezioni etc. etc., potresti fare semplicemente così
Per la frequenza di campionamento a 200Hz ti danno una banda di Nyquist di 100Hz, levato le non idealità del filtro anti-alias direi che non prendi neanche la seconda armonica

con 4 punti per periodo... che forma d'onda vuoi ricostruire
non ho fatto conti ma così, ad occhio, direi almeno 10 volte tanto... 2kHz
Re: Circuito per ACS712
Inviato: 2 lug 2011, 16:58
da andrea1984
L'ideale sarebbe non prenderla la seconda armonica, visto che mi interessa calcolare l'RMS.
Sto provando a simulare il PIC per vedere quanto ci mette, ma a 2kHz ci vogliono un sacco di campioni, è una cosa fattibile con un PIC?
Re: Circuito per ACS712
Inviato: 2 lug 2011, 17:13
da carloc
andrea1984 ha scritto:L'ideale sarebbe non prenderla la seconda armonica [...]
beh qui non sono d'accordo... sei vuoi calcolare qualsiasi cosa su un segnale che non è sinosoudale dovresti cercare di prendere
tutte le -quelle che si può-
armoniche...
piuttosto mica è necessario fare un sistema real time... potresti catturare tensione e corrente di un periodo... 20ms a 2kS/s sono 40+40 valori (ma potresti anche aumentare dato che il uP non deve far altro nel frattempo), poi smetti di campionare e ti fai tutti i conti che vuoi su quei dati, una volta finito ricominci.
Così avrai una frequenza di conteggio più bassa e magari ti perdi dei transitori... ma tutto non si può avere.
Comunque, non conosco bene la famiglia, ma ci sono PIC per tutti i gusti, anche piuttosto veloci e potenti
OT: non c'entra niente ma è da quando ho visto il titolo del thread che ce l'ho in testa


- AC127.jpg (31.51 KiB) Visto 5669 volte