Go Down

Topic: Misuratore di corrente AC con ATtiny84. (ora SO quanto mi costi!) (Read 38771 times) previous topic - next topic

leo72

@Mike:
vabbé, ho capito. contro un prof non la si può aver vinta  :smiley-sweat:

Michele Menniti


@Mike:
vabbé, ho capito. contro un prof non la si può aver vinta  :smiley-sweat:

ma va! :) Ora esco un paio d'ore, ho un mal di testa :smiley-eek-blue:, sto sviscerando il reference del 328 per l'articolo teorico sull'HV ;)
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

fabpolli

@dalubar
Ciao, volevo chiederti come mai la scelta del trasduttore di corrente è ricaduta su
http://it.rs-online.com/web/p/trasduttori-di-corrente/4995378/
e non ad esempio su questo che è più economico:
http://it.rs-online.com/web/p/trasduttori-di-corrente/6668198/
controllando le specifiche sembra che ambedue andrebbero bene o sbaglio?

Grazie e ciao

dalubar

@fabpolli: i trasduttori sono entrambi della LEM e hanno (quasi) le stesse caratteristiche; quando acquistai quello che ho, avevo in mente, tra le altre cose, di fare esperimenti di misura anche con correnti differenziali (vedi la presenza del "buco" al centro del componente) ed è stato per quello che ho scelto quel modello più costoso.
Stai sicuro che se dovessi realizzare un altro esemplare del circuito comprerei senza esitazione quello da te indicato :)
Ciao.

acik

Finalmente e' arrivato anche a me il misuratore di corrente.
Moduletto basato su ACS712T tarato per 30A. Come microcontroller uso un Atmega8 con clock di 8MHz.

Immagino che per la calibrazione devo agire su questa riga:
-current = int((IP(LTSR_Vout) / SQRT2)*10) / 10.0F;

1) Ma che fondoscala ha il misuratore che hai usato tu ? (mi serve per sapere come variare i valori)
2) Avendo cambiato la frequenza del micro, devo agire nella parte che legge dall' ADC ?
3) Leggendo lo sketch mi viene un dubbio... Se metto una lampada da 100W, verra' rilevato un consumo di 100W..... ma se poi con un dimmer regolo a meta' la potenza, non e' che con il tuo sistema mi verra' rilevato comunque un consumo di 100W ? (Imax dovrebbe restare invariato...)





acik

4) Me la spieghi sta cosa ? current = int((IP(LTSR_Vout) / SQRT2)*10) / 10.0F

dalubar

Quote
Finalmente e' arrivato anche a me il misuratore di corrente.

acik, sono contento per te, e devo dirti che posso distintamente avvertire anche una certa "impazienza" nel volerlo utilizzare  :)

Ma veniamo alle tue domande:
Quote
1) Ma che fondoscala ha il misuratore che hai usato tu ? (mi serve per sapere come variare i valori)

Quello del sensore, ovviamente, con 80A si avrebbe in uscita la max escursione tensione compresa tra 0,5V e 4,5V.

Quote
2) Avendo cambiato la frequenza del micro, devo agire nella parte che legge dall' ADC ?

Si, devi calcolare opportunamente la tempistica per un numero sufficiente di campionamenti.

Quote
3) Leggendo lo sketch mi viene un dubbio... Se metto una lampada da 100W, verra' rilevato un consumo di 100W..... ma se poi con un dimmer regolo a meta' la potenza, non e' che con il tuo sistema mi verra' rilevato comunque un consumo di 100W ? (Imax dovrebbe restare invariato...)

In TEORIA si, in pratica 100W sono molto vicini al limite minimo di rilevamento per il mio misuratore; esso è dimensionato per stare a monte di una utenza elettrica per misurare e monitorare gli assorbimenti di una certa consistenza.

Quote
Immagino che per la calibrazione devo agire su questa riga:
-current = int((IP(LTSR_Vout) / SQRT2)*10) / 10.0F;

No, quella è la formula per il calcolo della corrente efficace.

Quote
4) Me la spieghi sta cosa ? current = int((IP(LTSR_Vout) / SQRT2)*10) / 10.0F

Non è difficile, guardare il codice avrebbe aiutato non poco.
IP è una macro definita all'inizio dello sketch che ottiene il valore della corrente prendendo come input la tensione di uscita del sensore, ed è ricavata come formula inversa dalla relazione dichiarata dal costruttore (vedi datasheet).
Code: [Select]
#define IP(V_out)  ((V_out - LTSR_REFERENCE) * 25.0F) / 0.75F // conversione da Vout a corrente Ip; formula inversa. (vedi nota sulla costante 0.75F)

Code: [Select]
current = int((IP(LTSR_Vout) / SQRT2)*10) / 10.0F;
int(...*10) / 10.0F è un semplice modo aritmetico per ottenere l'azzeramento della seconda cifra decimale del numero ottenuto, dato che in questo contesto non sarebbe significativa.

acik

Quote

Quello del sensore, ovviamente, con 80A si avrebbe in uscita la max escursione tensione compresa tra 0,5V e 4,5V.

Ho deciso di farmi la taratura a mano, faro' scorrere 10A precisi nel sensore e poi mi faccio la lettura con l' Atmega. Cosi' compenso anche eventuali errori del'ADC e dell ACS.


Quote
Quote
4) Me la spieghi sta cosa ? current = int((IP(LTSR_Vout) / SQRT2)*10) / 10.0F

Non è difficile, guardare il codice avrebbe aiutato non poco.

Io ho guardato il codice, ma pensavo che quell' IP fosse un qualcosa di esistente nell' IDE... Ho cercato e non ne ho trovato traccia. Stessa cosa per quel 10.0F

Grazie delle spiegazioni.


giangi2

Salve , sono un neofita e vorrei realizzare il misuratore in questione ......
Complimenti comunque per il progetto ....
Il mio problema e' come programmare l'ATTINY84 con l'IDE .... avete uno schema per il programmatore ????????, Ho L'arduino  uno R3 ma credo che serve un adattatore usb-seriale a parte per la programmazione ..
Aspetto vostre info
grazie anticipate

leo72

Ti rimando a questa discussione:
http://arduino.cc/forum/index.php/topic,56772.0.html
nel 1° post trovi il link per scaricarti la mia guida per la programmazione dei chip Attiny. E' per l'IDE 0022 ma puoi adattarla abbastanza bene anche per l'IDE 1.0 (l'unica cosa che resta da provare è la libreria per la gestione dell'I2C).

fabpolli

Ciao, ispirato dal progetto ho acquistato un misuratore simile (nella fattispecie questo: http://it.rs-online.com/web/p/products/666-8198/ ) ma utilizzando il codice del progetto non riesco a far rilevare nulla al sensore. I collegamenti sembrano a posto ho provato a lasciare scollegato il pin Ref ma non rileva nulla, quindi guardando il datasheet ho provato a fargli arrivare come riferimeno 1.65 v mettendo un partitore di tensione tra i 3.3 v di arduino e il pin (Ho utilizzato due resistenze da 10K) ma nenanche così ho ottenuto il risultato sperato, paraticamente nessun carico viene rilevato (Solo attorno ai 2000W mi rileva un piccolo carico) e con il pin ref collegato adesso quando elimino il carico arduino si blocca... accidentaccio! Fin'ora non ho trovato soluzione qualcuno ha qualche idea?

Ciao

giangi2

Aiuto !!!
Allora il problema e' la compilazione del programma ... .. utilizzo IDE 1.01 (ultima versione) ... ho fatto tutto secondo la guida ma quando vado a selezionare il tipo di decice ATTINY ........ e lancio la compilazione mi va tutto in errore ... mentre lo stesso programma compilato con l'hardware ARDUINO UNO Tutto OK ... dove sbaglio ?????
aspetto info

leo72

@giangi:
Aiuto!!! Non ti capisco!!!  :P

Scherzi a parte, inizia col dire cos'hai scaricato, cos'hai fatto, che SO usi, qual è l'esatto errore che ti viene dato ecc

giangi2

Ciao Leo
Allora il package e' quello della tua guida ed ho inserito i file nella cartella dei sorgenti ..... fin qui tutto ok
carico il programma dopo aver selezionato dal menu' tools il device attiny84 (p.e.) ... pigio io tasto verifica e inizia subito una sbarcata di errori ... inizialmente di variabili non definite e poi delle librerie che non conosce
....
sono stato chiaro ????????? spero ....

Go Up