Está en la página 1de 3

Cambiar el voltaje de referencia de las lecturas analógicas

Ya comentamos en el capítulo 2 el concepto de “voltaje de referencia”.


Básicamente, es un valor que define la precisión con la que se convierte
una señal analógica (leída en una entrada analógica con analogRead())
a una señal digital equivalente (transformada por el conversor interno
de la placa Arduino). Cuanto menor sea ese voltaje de referencia, mayor
es la exactitud en la conversión. Por defecto, este valor es de 5 V, pero
si la precisión que nos ofrece no nos es suficiente (ya que con 5 V de
referencia se llega a una distancia entre valores digitales contiguos de
aproximadamente 4,9 mV), lo podemos reducir haciendo uso de la
función analogReference() y, opcionalmente, del pin AREF de la placa.

analogReference(): configura el voltaje de referencia usado para la


conversión interna de valores analógicos en digitales. Dispone de un
único parámetro, que en la placa Arduino UNO puede tener los
siguientes valores: la constante predefinida DEFAULT (que equivale a
establecer el voltaje de referencia es 5 V –o 3,3 V en las placas que
trabajen a esa tensión–, el cual es el valor por defecto), o la constante
predefinida INTERNAL (donde el voltaje de referencia entonces es de
1,1 V) o la constante predefinida EXTERNAL (donde el voltaje de
referencia entonces es el voltaje que se aplique al pin AREF –“Analogue
REFerence”–). Es muy importante ejecutar siempre esta función antes de
cualquier lectura realizada con analogRead() para evitar daños en la
placa. Esta función no tiene valor de retorno.

Si usamos la opción de utilizar una fuente de alimentación externa para


establecer el voltaje de referencia, deberemos conectar el borne
positivo de esa fuente al pin-hembra AREF de la placa y su borne
negativo a la tierra común. Para no dañar la placa, es muy importante
que el voltaje de referencia externo aportado al pin AREF no sea nunca
menor de 0 V (es decir, invertido de polaridad) ni mayor de 5 V.

Rebajar el voltaje de referencia es útil cuando sabemos que los valores


de las entradas analógicas no alcanzan nunca los 5 V. Por ejemplo, si
sabemos que el valor máximo de una determinada señal de entrada es
de 2,5 V, podríamos rebajar con una fuente adecuada el voltaje de
referencia a 2,5 V, para hacer así que cada valor digital se
correspondiera con su valor analógico respectivo en una precisión de
2,5V/1024≈2,5 mV, doblando pues así la resolución utilizada. Hay que
tener en cuenta, no obstante, que los efectos del ruido aumentan a
medida que aumentemos la resolución en los valores leídos.

Podemos construir una fuente de referencia externa fácilmente (¡y muy


barata!) con un simple divisor de tensión. Por ejemplo, si queremos que
el voltaje de referencia sea de 2,5 V, podemos utilizar los 5 V que aporta
el pin “5V” de la propia placa Arduino para reducirlo mediante dos
resistencias idénticas conectadas en serie (no importa su valor numérico
concreto, lo que importa es que sean iguales) y utilizar el voltaje
presente entre las dos (reducido a 2,5 V por simple Ley de Ohm) como
entrada del pin AREF. Es decir, diseñar un circuito como este:

Se deberían usar resistencias de baja tolerancia (1%) para que la señal


de referencia sea lo suficientemente precisa. Aunque la manera más
exacta de proporcionar una señal rebajada y estable sería usando un
regulador de tensión apropiado.

El siguiente código muestra cómo utilizar un voltaje de referencia


externo. Necesitamos un circuito con un potenciómetro, la patilla
central que ha de estar conectada al pin analógico de entrada nº 2.
Supondremos que la fuente externa de referencia proporciona por
ejemplo 1,8 V (y por tanto, dividiendo entre 1024 tendríamos 1,75
milivoltios de resolución entre cada lectura de analogRead()).

También podría gustarte