Hola a todos,
tengo una duda que puede parecer básica pero no logro resolverla, al menos de una manera elegante y tratando de no llegar al extremo de hacer demasiadas modificaciones.
Construí un dispositivo que lee unos cuantos potenciometros lineales y que a su vez informa de sus estados mediante unos leds, el aparato se alimenta del puerto USB del PC y mediante serie-> USB recolecto los valores de posicion de los potenciometros y envio señales para encende o apagar un led, hasta aqui todo normal y sin inconvenientes.
Los potenciometros estan conectados a GND de un lado y a 5V del otro.
El problema es que al encender un grupo de leds varía levemente la lectura de los potenciometros, supongo que es a causa de que la corriente suministrada por el puerto USB no es lo mas fiable del mundo y varía al aplicarle un poco de consumo.
Segun lo que entiendo de la documentación, si no se configura analogReference() la referencia para el ADC es DEFAULT y toma como referencia los 5V de la alimentacion.
Aqui tengo dos posibilidades, la referencia es de 5V haya o no 5V exactos en la alimentación? O es el valor que tenga la alimentacion en ese momento (5v, 4,78V, etc)?:
1- si la referencia es "fija" a 5V estoy complicado, porque no puedo asegurar 5V estables desde un puerto USB.
2- si la referencia es "lo que haya de tensión en la alimentacion en ese momento" no se porque varía, se supone que al bajar la tensión debería acomodarse automaticamente a ese valor, variando la referencia con la lectura nada combiaría. Por las dudas puse un delay de 100us despues de leer por si el led justo encendiera en el momento que estoy leyendo el ADC y camiara la referencia, poco probable pero... igualmente no funcionó, sigue variando la lectura.
La otra que se me ocurre es conectar los 5V del arduino a la pata AREF y configurando analogReference() como EXTERNAL, esto haría (en teoría) que si desciende la tension en la alimentacion bajara también la referencia compensandose todo "automagicamente", aunque quiero conocer la opinión de alguien que sepa del tema, porque no estoy seguro.
Por ahora estoy imposibilitado de alimentar el equipo con una fuente externa, asi que no es la primera solución.
Algun comentario?
Saludos y gracias por adelantado.