Lettura pin analogico sbagliata

Ciao a tutti!
Sto tentando di far funzionare al meglio questo sensore http://wiki.seeed.cc/Grove-Gas_Sensor-O2/ con arduino uno.
Il problema che riscontro è sulla lettura della tensione in entrata sulla porta analogica, arduino mi restituisce una tensione di 1.80v mentre con il multimetro rilevo una tensione di 2.70v ovviamente nelle stesse condizioni. Ho provato con un altro arduino e rilevo sempre 1.80v.
allego ovviamente il codice

const float VRefer = 3.3;       // voltage of adc reference

const int pinAdc   = A0;

void setup() 
{
  Serial.begin(9600);
 
    
    Serial.println("Grove - Gas Sensor Test Code...");
}

void loop() 
{
    // put your main code here, to run repeatedly:
    float Vout =0;
    Serial.print("Vout =");

    Vout = readO2Vout();
    Serial.print(Vout);
    Serial.print(" V, Concentration of O2 is ");
    Serial.println(readConcentration()/10000);
    
    delay(1000);
}

float readO2Vout()
{
    long sum = 0;
    for(int i=0; i<32; i++)
    {
        sum += analogRead(pinAdc);
    }

    sum >>= 5;

    float MeasuredVout = sum * (VRefer / 1023);
    return MeasuredVout;
}

float readConcentration()
{
    // Vout samples are with reference to 3.3V
    float MeasuredVout = readO2Vout();

    //float Concentration = FmultiMap(MeasuredVout, VoutArray,O2ConArray, 6);
    //when its output voltage is 2.0V,
    float Concentration = MeasuredVout * 0.21 / 2.0;
    float Concentration_Percentage=Concentration*100;
    float ppm = Concentration_Percentage*10000;
    return ppm;
    //return Concentration_Percentage;
}

è quello copiato direttamente dalla casa costruttrice..
grazie in anticipo!

const float VRefer = 3.3;       // voltage of adc reference

A meno di strane modifiche, il tuo Arduino Uno funziona a 5V e li usa anche come fondo scala dell'ADC, non 3.3V.

Infatti 1.80/(3.3/1024)*(5/1024) = 2.73.

per la serie la soluzione ce l'avevo sotto il naso :slight_smile: grazie mille!!