ecco un altra prova. in questo caso arudino è isolato con un trasformatore toroidale.
ha 2 secondari uno da 9Vac che raddrizzati diventano 12 e alimenta arduino e un altro duale da 21Vac/ramo, però ho usato gli estremi cioe avevo 42Vac ai capi del trasformatore che vanno nella scheda convertitore AC-DC
sul PIN 0 ho 0.600mV che ovviamente variano
vedro di avere 2.30V pari alla rete cosi ho da guadagnare sul ingresso arduino che fare i moltiplicatori interni.
per esempio adesso ho dovuto moltiplicare per 412 per avere quelle cifre e sul display, ma alzando il guadagno ce piu errori e sbalzi per via delle basse tensioni e interferenze che ci sono al giro.
vout = (value * 412.0) / 1024.0;
dopo il filmato ho aggiunto una rez da 1k tra PIN 0 e GND per stabili e abbasamento piu veloce infatti nel filmato si vede che varia lentamente per via di un grande condensatore da 6,3V a 3300uF
sketch completo:
#include <LiquidCrystal.h>
#define RS 8
#define EN 9
#define D7 7
#define D6 6
#define D5 5
#define D4 4
/* Definizioni globali */
float vref = 1.1;
LiquidCrystal lcd( RS, EN, D4, D5, D6, D7 );
int analogInput = 0;
float vout = 0.0;
float vin = 0.0;
int value = 0;
/* Impostazione dell'hardware */
void setup()
{
Serial.begin(9600);
analogReference( INTERNAL );
pinMode(analogInput, INPUT);
lcd.begin( 4, 20 );
}
void loop()
{
lcd.clear();
value = analogRead(analogInput);
vout = (value * 412.0) / 1024.0;
vin = vout ;
// print result to lcd display
lcd.print("Vin=");
lcd.setCursor(4, 0);
lcd.print(vin);
lcd.print("Vac");
int valore = analogRead(0);
Serial.print("valore=");
Serial.println(vin);
// sleep...
delay(1000);
}