buongiorno,
io sto provando il seguente componente nell'impianto di casa , acs712 20A col seguente sketch.
Tutto funziona abbastanza bene fino a 2500w poi si perde.
praticamente se attacco un utensile di 2000w più uno da 1000w più 300wdi utensili vari mi da 2700w.
se gentilmente qualcuno mi può aiutare , (magari stò sbagliando componente).
grazie in anticipo
void setup() {
Serial.begin(9600);
}
float watt0; // Potenza letta dal sensore su A0
void loop(){
watt0 = rilevaConsumo(sensorPin2); // Rilevazione dal Sensore A0
}
float rilevaConsumo(const uint8_t sensore){
// float lettura;
float totLetture=0;
// double rmsLetture;
// float ampere;
for(int i = 0; i < 1000; i++) {
totLetture = totLetture + sq(((float)analogRead(sensore)) – 511);
delay(1);
}
return 220 * ((float)((double)sqrt(totLetture/1000)) * .048828) * .9;
Serial.println("totLetture");
}
dovresti scaricare il data-sheet e verificare se la risposta del sensore è lineare per tutta la gamma, in caso contrario devi compensare via software.
Per calcolare esattamente la Potenza Attiva o Reale (P) bisogna conoscere tensione, corrente e angolo di sfasamento tra tensione e corrente (fi) espresso da cos(fi).
Infatti, P = V * I * cos(fi) ove V ed I possono essere calcolati come la radice quadrata della somma di N campioni al quadrato diviso N, ovvero RMS (Root Mean Square).
Nel tuo sketch hai fatto alcune assunzioni:
1 - tensione rete costante a 220V (in realtà sono 230V)
2 - sfasamento costante cos(fi) = 0.9 (in realtà dipende dal carico)
3 - tensione ADC 5V costanti (in realtà può essere leggermente diversa, ad esempio 4.9 oppure 5.1)
4 - N periodi in esame con N intero, cioè multipli di 20ms (in realtà con 1000 campioni, essendo la velocità 8620 campioni/secondo, N non sarà intero)
Tutte le assunzioni portano a degli errori, alcuni tollerabili, altri meno.
In particolare, l'errore più grande è quello del cos(fi) costante.
quindi mi stai dicendo che è praticamente impossibile trovare i watt giusti, perchè dovrei sapere il cos fi e le varie cadute di tensione che variano a seconda del carico?
Esatto, imponendo il cos(fi) = 0.9 in pratica riduci del 10% la Potenza Apparente (Papp = V * A).
Facciamo un esempio.
Supponiamo che il carico sia 2000W e di tipo resistivo (una stufetta) e che la tensione sia costante a 230V.
E' facile calcolare la corrente che circola: 2000W / 230V = 8.7A
Con il tuo circuito ed il tuo sketch (trascurando anche gli altri errori) misurerai un potenza del 10% inferiore e cioè 1800W.