Hola Amigos.
Estoy censando dos entradas analógicas con un arduino UNO, de las cuales una de ellas varía entre 0-5VCC mientras que la otra, de otro sensor distinto, varía sólo de 0-1VCC.
Mi pregunta es si existe la forma, a partir de programación, de usar la funcion "analogReference" para llevarlo a 1,1VCC, pero sólo para una entrada analógica.
Por hardware sé como se hace, pero no quiero, ... busqué por todos lados y no puedo encontrar la respuesta a hacerlo por soft...
Muchas gracias
Bueno, te habia respondido que solo se podía hacer en el setup pero cuando llegan preguntas de este tipo, justamente aprovecho para estudiar el tema y sorpresa... se puede pero solo hay que descartar una lectura hasta que la nueva referncia se establezca sino tendras lecturas anómalas
Esta persona @Jiggy-Ninja dice haber escrito un tutorial o documento que no he encontrado hasta ahora pero si encontré este comantario, esta rutina ejemplo fue extraída de este link Re: How to feed one analog pin with 1.0-1.1V and keep other analog pins at 5V
float readTemperatureK( int adcPin )
{
analogReference( INTERNAL );
// Dummy read to set the new reference.
analogRead( adcPin );
// may not be necessary to stabalize the new ADC reference,
// but this delay is a "just in case" sort of thing"
delay( 10 );
int tempSense = analogRead( adcPin );
// Temperature sensor is calibrated to read Celsius.
float celsiusTemp = tempSensorToCelsius( tempSense, vRefTemp );
// Covert to Kelvins.
return temperatureCtoK( celsiusTemp );
}
float readPressureKPa( int adcPin )
{
analogReference( DEFAULT );
analogRead( adcPin );
delay( 10 );
int pressSense = analogRead( adcPin );
return baroSensorToKPa( pressSense, vRefPress );
}
Bueno justamente hace algo como lo que pides, tal vez no sean los sensores pero tu sabrás adecuarlo a tu necesidad.
Gracias Surbyte, me imaginé que podía venir por ese lado.
Voy a probar como sale, y a la brevedad comento los resultados.
un abrazo!
Probado, una cosa nueva que anda y que se puede compartir.
Funciona perfectamente
Hice básicamente dos sentencias por separado, a las cuales las invoco en el loop en distintos momentos, pero dentro de la sentencia, para una uso
analogReference( INTERNAL );
y para la otra:
analogReference( DEFAULT );
muy útil para el uso de varios sensores con rangos diferentes de toma de datos... estaría ya solucionado el hilo @surbyte?