Go Down

Topic: Anomalia in lettura analogica con Eth Shield (Read 297 times) previous topic - next topic

Simo77

Innanzi tutto ciao a tutti, mi chiamo Simone e nel tempo libero (poco) cerco di realizzare qualche progettino (banale) con questa fantastica piattaforma.

Ho da poco acquistato l'Ethernet Shield e fino ad ora mi sono limitato a vedere come si comporta usandolo come "pass through" e basta. Mi sono subito accorto che leggendo una tensione attraverso di esso il valore letto è leggermente superiore a quello che rilevo direttamente con l'Arduino Uno.

Misurando la tensione di una batteria stilo AA con un multimetro leggo un valore di 1,6V.
Facendo la lettura con Arduino Uno rilevo una tensione di 1,59
Aggiungendo l'Eth Shield la tensione misurata sale a 1,66!! Una bella differenza direi, qualcuno mi riesce a spiegare "l'anomalia" ? Se V è aumentata vuol dire che è aumentata o R o I, ma per quei 2cm di pin in aggiunta mi pare inverosimile un aumento della resistenza. Aiuto!

La stilo viene collegata con il pin A0 e ovviamente GND.

Vi ringrazio in anticipo.




const int batteryPin = 0;

void setup() {               
  Serial.begin(9600);   
}



void loop() {
  int val = analogRead(batteryPin); //Legge i volts dal pin preposto
  float volts = ((float)val / 1023.0) * 5.0; //Calcola la proporzione
  Serial.println(volts,2); //Scrive sulla seriale il valore letto
}

uwefed

Arduino di standard prende i 5V dell' alimentazione come riferimento per il ADC. Se aumenti il consumo di corrente (ethernet Shield) aumenti le perdite sul transistore di comutazione e sul fusibile e percui si abbassa la tensione di alimentazione che arriva al ATmega. Questo significa che una tensione viene letta piú alta.
Soluzione: usa il riferimento interno di 1,1V e metti un partitore resistivo con resistenza non troppo alta (sotto i 10kOhm) per portare le tensioni da leggere sottoi 1,1V di lettura massima.
Ciao Uwe

Simo77


Simo77

Con Vref settata su 1.1 ho risolto il problema. Però ho notato che sul mio Arduino UNO, all'uscita del regolatore IC2 ho sempre 4,95V; anche se alimento il tutto con 12V.
Il problema non sembra esserci sull'Arduino Uno R2. Lì misuro sempre i 5V, anzi qualcosina di più....
I 4,95 rientrano nel range accettato o i 50mV in meno potrebbero creare problemini di instabilità dell'AVR?

Go Up