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!