readVcc() non torna con il voltaggio delle batterie collegate...

ciao,

utilizzando questo codice riscontro un valore di readvcc di circa 3270mV, ma le batterie in ingresso danno in 5000mV misura con il tester…

che cacchio è che non va…

long readVcc() {
  uint8_t low;
  uint8_t high;
  long result;
  // Read 1.1V reference against AVcc
  // set the reference to Vcc and the measurement to the internal 1.1V reference
#if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
  ADMUX = _BV(REFS0) | _BV(MUX4) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
#elif defined (__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)
  ADMUX = _BV(MUX5) | _BV(MUX0);
#elif defined (__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__)
  ADMUX = _BV(MUX3) | _BV(MUX2);
#else
  ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
#endif
  delay(2); // Wait for Vref to settle
  ADCSRA |= _BV(ADSC); // Start conversion
  while (bit_is_set(ADCSRA, ADSC)); // measuring
  low  = ADCL; // must read ADCL first - it then locks ADCH
  high = ADCH; // unlocks both
  result = (high << 8) | low;
  result = 1125300L / result; // Calculate Vcc (in mV); 1125300 = 1.1*1023*1000
  return result; // Vcc in millivolts

}

Prova con uint16_t high;

sto approfondendo un pò la faccenda…

all’ingresso di arduino ho 4 batterie AA da 1,2V … con batterie cariche quindi 5.6V(1.4x4) senza carico, collegando il pacco batterie scendo a 5V, perchè se misuro i V dal pin 5V di arduino ottengo 3,2V ? che poi sarebbero quindi i 3200mV circa che dicevo prima?

troppo pochi i 5V in ingresso?

grazie

Non va bene misurare 5V con un riferimento 1,1V.

simosere:
troppo pochi i 5V in ingresso?

... ma su QUALE ingresso ? E di QUALE Arduino ?

Guglielmo

Arduino nano con il sensor shield che linkato nell’altro topic… alimento il tutto con il jack dell’alimentazione

Non ricordo quale è "l'altro topic", comunque, che tensioni in ingresso accetta il jack di alimentazione? Perché se è come quello di Arduino UNO, minimo devi dare 7V dato che il regolatore lineare, di per sé, introduce una caduta di tensione di quasi 2V ... ::slight_smile:

Guglielmo

Sto da cell guglielmo... quello dove chiedevo dell shield del mega...

A questo punto mi conviene alimentare direttamente dal pin vin... baipassando il regolatore...

In quella shield hai ....
il connettore di alimentazione e un diodo in serie al Vin. Quindi al Vin arrivano circa 0.8Volt in meno.
Poi c'è da sommare la caduta di tensione che c'è sul regolatore della nano e qui si perde circa un'altro volt

Le opzioni quindi sono:

  1. Entrare direttamente sul Vin, ma minimo con 6 Volt ( 5 batterie in serie ), ma sei un pò preciso
  2. Entrare dal connettore sulla shield , ma minimo con 6 batterie in serie

Ok grazie dell’aiuto

simosere:
Arduino nano con il sensor shield che linkato nell'altro topic... alimento il tutto con il jack dell'alimentazione

Allora 3,2V al posto dei 5V é il valore che mi aspetto.
Ciao Uwe