Lettura sballata sensore acs

Ciao a tutti! Ho collegato Arduino UNO al mio impianto fotovoltaico ad isola. Per ora vorrei misurare i watt prodotti e i watt prelevati dalla batteria tramite un inverter. Ho messo un sensore acs758 da 200A bi-direzionale sul cavo che dai pannelli va verso la batteria, e un'altro sensore sul cavo che porta corrente all'inverter. Il sensore sulla produzione funziona bene, metre quello sull'inverter che dista circa 8 metri, mi segnala valori sballati. Va da un 450W a un meno 30w , 1900w....-340w..non so proprio da cosa possa dipendere. incollo li programma che ho creato, forse l'errore è lì. Grazie della vostra collaborazione!

#include <LiquidCrystal.h>
LiquidCrystal schermo(12,11,5,4,3,2);
float corrente;
float voltaggio;
float consumo;

void setup ()
{
  schermo.begin(16,2);
  schermo.setCursor(0,0);
  schermo.print("Imp. STAND-ALONE");
  schermo.setCursor(3,1);
  schermo.print("BY  ANGELO");
  delay(2000);
  schermo.clear();

 
  
}

void loop()
{
  schermo.setCursor(0,0);
  schermo.print("A"); //Produzione Fotovoltaico
  schermo.setCursor(2,0);
  corrente=analogRead(A2);// Sensore Corrente Campo Fotovoltaico 200A fs.
  corrente=(((corrente-509)*0.004487)*100);
  schermo.print(corrente);
  schermo.setCursor(8,0);
  schermo.print("W");
  voltaggio=analogRead(A0);//Tensione  Banco Batterie
  voltaggio=(((5.0*voltaggio*10.0)/1023+2)*1000);
  schermo.setCursor(10,0);
  schermo.print((voltaggio*corrente)/1000);//ProduzioneCampo Fotovoltaico espresso in Watt
 
  //Seconda riga dello schermo. Assorbimento espresso in Watt dell'Inverter
  
  schermo.setCursor(0,1);
  schermo.print("A");
  schermo.setCursor(2,1);
  consumo=analogRead(A1);
  consumo=(((consumo-508)*0.004487)*100); //Leggi Sensore Corrente Inverter 
  schermo.print(consumo);
  schermo.setCursor(8,1);
  schermo.print("W");
  voltaggio=analogRead(A0);//Tensione  Banco Batterie
  voltaggio=(((5.0*voltaggio*10.0)/1023+2)*1000);//Leggi Tensione Batterie
  schermo.setCursor(10,1);
  schermo.print((voltaggio*consumo)/1000);//ProduzioneCampo Fotovoltaico espresso in Watt
  delay(2000);//Attenti due secondi
}

Saluti!

Forse perché la corrente che l' inverter prelieva dalla Batteria non é costante.
Che tensione misuri in continua e in alternata sul uscita del sensore di corrente tra battteria e inverter?

Ciao UWe

Ciao, allora ti posso dire che anche quado il consumo dell'inerter è costante ho degli sbalzi enormi. Per esempio ora sto prelevando dalle batterie 10A in continua (leggo questo valore da un'amperometro analogico), e in uscita dell'inverter ho 223Watt,metre arduino fluttua da 19A 3A 8A 21A 0,009A 4A 9A.......................ho misurato la tensione di ritorno del sensore ed è costante se non ricordo male 2,35v......quindi forse è il mio programma che non và.......

leggi 2 volte
consumo=analogRead(A1);
e prendi solo il la seconda lettura.
Sei sicuro che il circuito sia giusto?
Ciao Uwe

Ciao! Grazie della risposta. Come faccio a prendere la seconda lettura? Devo togliere la seconda lettura della tensione?

Fai

...
consumo=analogRead(A1);
consumo=analogRead(A1);
...

cosí legge 2 volte e la prima lettura viene sovrascritta dalla seconda.
Ciao Uwe

Ok! Grazie! Domani provo e vi tengo informati. Grazie e buonanotte!

Ciao ragazzi! Qualche giono fà ho scambiato i due sensori per vedere se era il sensore difettoso. Risultato? Uguale =(
Allora mi è venuta l'idea di mettere un piccolo condensatore elettrolitico tra il segnale e il GND, per cortocircuitare eventuali segnali spuri. Visto che il sensore si trova a circa 8 metri dall'arduino, nel locale batterie. Risultato? XD Funziona!!!!
Il condensatore è un 22microfarad 16v.
Ora devo collegare la scheda SD all'arduino per poter memorizzare i dati provenienti dai due sensori. Ho fatto il partitore di resistenze da mettere tra l'arduino e la scheda SD. Un dubbio, nello schema dice di collegare i pin 12,11,13,10. Il fatto è che i pin 12 e 11 li uso per il display! Come posso fare? Grazie a tutti e buona serata.

Sposta i pin del display su pin liberi e modifichi l'inizializzazione. Anche il 6 e 7 se liberi vanno bene.

LiquidCrystal schermo(....,....,5,4,3,2);

Controlla per la SD se ti serve il pin 10 o il 4. Nel caso del 4 dei eliminarlo dal display e spostarlo su un'altro pin.

Quelli della SD sono fissi perché dipendono da una periferica interna al micro, quelli del display li puoi cambiare a piacere.

PaoloP karma++;

Grazie tante. In questi giorni faccio il cambio. Domani di dovrebbe arrivare un display 20x4 con solo 4 connessioni per il collegamento all'arduino. Se ho difficoltà chiederò senz'altro consigli! Grazie mille per ora! :smiley: