Cuando se trata de obtener los datos una señal analógica para introducirlos en un circuito digital, sin duda vamos a necesitar un ADC (conversor analógico a digital). En muchas ocasiones, conectaremos nuestra señal analógica directamente a la entrada del conversor analógico a digital, como el caso de usar un potenciómetro. Sin embargo otras veces suele ser interesante modificar un poco la señal antes de entrar en el ADC para aprovecha el ADC al completo.
Características del ADC
Los ADC tienen distintos parámetros y características que los hacen especiales y que los diferencian entre sí. Un ejemplo ya clásico es el ADC integrado en el microcontrolador Atmega328 de Arduino Uno el cual es de 10 bits y en la placa funciona con un rango de entrada de 0 a 5v (aunque puede ser cambiado).
Que tenga un rango de entrada de 0 a 5 voltios implica que la señal que se inyecte en el conversor analógico a digital, nunca debe ser inferior a 0v ni superior a 5v.
Como norma general esta condición se cumple ya que probablemente si se usa el ADC para obtener la lectura de un sensor, la alimentación del mismo casi nunca superará la alimentación del micro.
Sensores y sus salidas
En ocasiones cuando el objetivo es medir una señal procedente de un sensor, este proporcionará una salida de tensión que variará entre un máximo y un mínimo que serán muy cercanos a los límites de alimentación.
Un ejemplo es considerar un potenciómetro que se puede estar usando para medir la posición o el ángulo de giro de un objeto o de la articulación de un robot. Aunque no es la mejor técnica para medir ángulos o posiciones, para este ejemplo es útil. Los terminales extremos del potenciómetro se encuentran conectados a +5v y a masa, que son las tensiones de alimentación del circuito. La patilla del cursor es la salida del potenciómetro y se conecta al ADC.
Si el potenciómetro se encuentra girado totalmente a la izquierda, la salida de tensión será 0v y si se encuentra a la derecha, la salida de tensión se encontrará a 5 voltios.
Sin embargo, en raras ocasiones ocurre que la salida del sensor recorra todas las posiciones de tensión desde el principio hasta el final.
Un ejemplo de esto último es el uso del sensor de temperatura LM335 el cual proporciona, una vez calibrado, una sensibilidad de 10 mV / K. En este transductor de temperatura, al variar la temperatura, varía la tensión de salida, pero nunca llegará a acercarse a los límites del conversor analógico a digital y por tanto nunca aprovecha el ADC.
En el vídeo vemos como si queremos aplicar este sensor para medir la temperatura de una habitación, la variación de tensión a la salida es muy pequeña. Considerando que la mínima temperatura que se alcanzará en la habitación es de 10ºC y que la máxima es de 30ºC, se aprecia que la tensión de salida del sensor variará entre 2.832 v para 10ºC y 3.032 v para 30ºC.
La resolución de un ADC
Todo este proceso está basado en que en la mayoría de aplicaciones se debe optimizar la resolución del sistema de medida. La resolución es el número que nos indica cual es la mínima variación de tensión que el ADC puede medir a su entrada. La calculamos como:
(1)
Siendo n el número de bits del conversor. De esta manera suponiendo que el conversor es de 10 bits, la resolución en tensión será de 0.00489 v, es decir 4.89 mv. Teniendo en cuenta que el sensor tiene una sensibilidad de 10 mV/K, esto implica que la mínima variación de temperatura que se puede registrar con el ADC es de 0.489 K.
Supongamos que esto es mucho y que para la aplicación en la que estamos trabajando, necesitamos una resolución menor, entonces tenemos dos posibilidades, o reducir el intervalo de tensión de entrada del ADC o amplificar la ganancia del sensor.
Juega con la ganancia y el offset y aprovecha el ADC
La clave, es jugar jugar con la ganancia y el offset del sensor ya que de esta manera se puede llegar a convertir el mínimo del sensor en el mínimo del ADC y el máximo del sensor en el máximo del ADC.
Siguiendo con el ejemplo anterior, realizar esta conversión implica que los 2.832 voltios del sensor deben convertirse en 0 v tras salir del circuito acondicionador y los 3.032 v deben convertirse en 5 v.
Para llevar a cabo esta heroica tarea se necesita un circuito acondicionador en el cual se introduzcan ganancia y offset en la señal. El offset ayudará a convertir el mínimo del sensor (2.832 v) en 0v y la ganancia ayudará a convertir los 3.032 en los 5v.
Existen distintos circuitos que permiten realizar esta tarea, para este artículo se usará uno basado en un amplificador no inversor.

En el esquema del circuito se aprecia dos amplificadores operacionales. El de la derecha es el que lleva a cabo el proceso de conversión. En la patilla no inversora se conecta la entrada del sensor y en la inversora se conectan las resistencias de entrada (R1) y de realimentación (R2). A la resistencia de entrada, se conecta una tensión de Offset, procedente de un potenciómetro.
Para evitar efectos de carga, entre el potenciómetro y la resistencia de entrada (R1) se coloca un amplificador operacional en configuración de buffer también conocido como seguidor de tensión. Si no conoces que es un buffer, te animo a que veas este vídeo.
Este circuito funciona solo si calculamos cual debe ser el valor de las resistencias R1 y R2 así como el valor de offset, es decir, la tensión a la salida del potenciómetro. Para ello recurrimos a la ecuación que caracteriza este circuito, la cual no me voy a detener a explicar de dónde viene, pero si te interesa, házmelo saber en los comentarios.
(2)
Lo cual se puede simplificar como:
(3)
A partir de la ecuación (3) podemos plantear un sistema de ecuaciones evaluando las tensiones del sensor y las tensión de salida que deseamos
La solución a este sistema de ecuaciones es: G = 25.44 y Voffset = 2.943 v. Considerando que G = R2 / R1 hacemos una aproximación y usamos G = 24, de esta manera podemos usar R2 = 24 KΩ y R1 = 1 KΩ.
Para configurar la tensión de offset, se puede colocar un polímetro en la salida del seguidor de tensión y ajustar el potenciómetro hasta alcanzar los 2.943 voltios.
Calculo de la tensión real
Hemos hecho una conversión de tensiones y por tanto la tensión que mide el ADC no es realmente la tensión que hay a la salida del sensor. Para calcular la tensión en el sensor debemos resolver la ecuación del circuito despejando la tensión de entrada.
(4)
Donde Voffset es 2.943 voltios y G es la aproximación que habíamos hecho, es decir, G = 24.
Imagina que el ADC está midiendo 1 voltio en su entrada, eso significa que la salida del sensor será de 2.865 v.
Al aplicar este método en un circuito, por ejemplo al leer con un microcontrolador, se debe incluir la ecuación en el programa del microcontrolador para revertir el efecto y poder saber la tensión real en el sensor.
Que se gana y que se pierde
Al introducir este circuito, se aprovechan las mayoría de combinaciones del conversor ADC ya que se usa casi todo el rango disponible.
Por contra perdemos estabilidad ya que siempre que se introducen circuitos analógicos existe la posibilidad de distorsionar la señal y que la salida de tensión no sea exactamente la que debe por efecto de la realidad.
¡¡Recuerda!!
La realidad es dura. ¡No existen los componentes perfectos!
Otras configuraciones
En ejemplo hemos usado una configuración no inversora con offset, sin embargo también se puede usar otras configuraciones, como cambiar la posición de la señal, conectandola a la entrada del buffer y conectado el potenciómetro a la entrada no inversora del amplificador.
Otra posibilidad puede ser usar un amplificador inversor con offset.
Sea cual sea la configuración que uses, debes resolver la ecuación correspondiente para cada circuito. La que hemos visto un poco más arriba solo sirve para esa configuración, si cambias de posición las señales o usas un amplificador inversor, la ecuación cambiará.
Muchas gracias por el aporte Enrique. Tengo una duda, Mi señal de entrada va de 0v a 0,05v. Por lo que entiendo en tu explicación, mi offset es 0?, y la ganancia me sale 99. Con lo que R2 sería 100k y R1 1k….. y en este caso, no me sobra U1 en el circuito?. Es correcto o estoy muy perdido. Gracias!
recurrimos a la ecuación que caracteriza este circuito, la cual no me voy a detener a explicar de dónde viene, pero si te interesa, házmelo saber en los comentarios.
Me interesa y mucho. Si no te importa comentarlo. Intuyo que aplicas superposición al restador.
Gracias y muchas gracias
Me gustaria saber de donde proviee la ecuacion que caracteriza al circuito, gracias.
Excelente aporte. Tengo una pregunta, es posible usar esta configuración para convertir una señal +/-10V a una salida de 0-5v? Saludos y gracias.
Es posible. Tienes que solucionar las ecuaciones con los valores que propones.y usar una amplificador simétrica, probablemente +12v y -12v. Un saludo.
Muchas gracias Enrique, exelente aporte. Una duda, si quiero regular mi voltaje desde el Arduino (dimmer) como podría hacerlo, la etapa de potencia ya la tengo pero no carburo para sacarlo del Arduino utilizando 3 pines
Puedes usar un filtro y una señal PWM para generar una señal de referencia. https://www.rinconingenieril.es/pwm-salida-analogica/
Hola Enrique, excelente aporte
Estoy acondicionando la señal de un acelerómetro para leerla desde un Adc cuyo rango es de 0-5v, el máximo de señal que espero es de 1 voltio y el mínimo -1 voltio.
¿Qué configuración me recomiendas para que la señal quede en el rango de 0 a 5voltios y pueda aprovechar al máximo el Adc?
¿Se puede utilizar amplificador con alimentación simple 0-VCC?
Hola Enrique, muchisimas gracias por tu artículo!!. Tengo una duda, el tema de fondo es similar.
Resulta que tengo una celda de carga la cual tiene un rated output de 2 mV/V+-0.1%. La idea es conectarla a un ADC de +- 10 V. ¿Cómo puedo diseñar ese amplificador? ¿qué parámetros y ecuaciones debo buscar para amplificar esa señal análoga? Llevo poco tiempo estudiando sobre este tema, asi que estoy un poco perdido. Muchas gracias!
Al tratarse de una celda de carga, imagino que es una galga extensiométrica (o varias). La primera etapa puede ser un amplificador diferencial de instrumentación. Con él puedes eliminar la componente continua y amplificar solo la señal del transductor. Después de esa etapa puedes usar algo como lo de este post para llegar al rango del ADC.
hola Enrique, que amplificador usaste ? y lo alimentaste con 5v y gnd?
saludos
Tl071 alimentado entre 0 y Vcc.
Hola Enrique. Excelente artículo. Una duda, ¿hay forma de tener una tensión de entrada de 0v a -12v y que por medio de opamps me pueda dar una salida de 0v a +5v? esto con el fin de llevarlo a la entrada de un microcontrolador el cual su ADC funciona con este rango (0-5)v
Sí, yo lo haría en dos etapas. En la primera invertiría el signo de la señal de entrada para que quedara de 0 a 12v. En la segunda haría la reducción de [0,12] a [0,5].
Hola Enrique, estoy trabajando con un circuito que me da una señal AC de +-2.2V y quiero llevarla al rango de los (0 – 5V). Con este circuito podría solucionarlo? No es necesario en mi caso que los valores sean exactamente 0v y 5v ya que solo necesito que sean valores positivos de hasta 5V max para lograr conectar la entrada analogica de arduino
Sí, te valdría.
¡Buen post! Me ha servido mucho. Gracias 😉
Hola Enrique, quisiera saber cómo calculas te el Voffset y la ganancia así mismo te comento que estoy haciendo algo similar para un sensor MPx5500dp el cual lo estoy ocupando en un recipiente de 4 litros por lo que cuando está vacío me da un voltaje de 0.19 v y cuando está lleno me otorga 0.21v no sé si algo como esto me pueda servir para cuando esté vacío me de 0 y cuando esté lleno me de 5v te agradecería mucho si pudieras ayudarme aclarar mi duda gracias.
Hola José, en principio si te puede servir, solo asegúrate de calcularlo todo correctamente. La ganancia y el offset se calculan en el apartado Juega con la ganancia y el offset y aprovecha el ADC
«
Hola Enrique!, muy buen post!, oye si quisiera realizar un convertidor de Corriente a Voltaje, y después utilizar tu circuito para adecuarlo al Arduino, como recomiendas que se diseñe el circuito convertidor para no perder mucha Resolución al convertir la señal.Saludos.
Es muy relativo a la señal que estes tratando. Investiga sobre los amplificadores de transimpedancia.
Hola Enrique, si quisiera realizar esta misma acción (transformar un potencial analógico a uno entre [0,5] V) pero mi potencial analógico es negativo ¿Cómo podría hacerlo?
Muchas gracias por tu ayuda.
Técnicamente puedes usar los mismos circuitos o incluso invertir el signo de la señal, convertirlo en positivo y luego pasarlo por este circuito.
cual es la eccuacion 4, no la muestra
Corregido, gracias por avisar.