Sunteți pe pagina 1din 4

ENTRADAS ANALÓGICAS EN ARDUINO

En entradas anteriores hemos visto cómo emplear las entradas digitales de nuestro Arduino. También
hemos usado estas entradas para leer el estado de un pulsador. En esta entrada vamos a ver las entradas
analógicas, su funcionamiento y características.Las entradas analógicas funcionan de una forma
similar a las entradas digitales, por lo que en la práctica el montaje y código final son muy similares.
Por tanto, es de aplicación la mayoría de lo que vimos en esta entrada. Sin embargo en ciertos
aspectos son radicalmente distintos, por lo que para entender correctamente su uso y funcionalidad
es necesario veamos un mínimo de teoría.

¿QUÉ ES UNA ENTRADA ANALÓGICA?


Una señal analógica es una magnitud que puede tomar cualquier valor dentro de un intervalo –
Vcc y + Vcc. Por ejemplo, una señal analógica de tensión entre 0V y 5V podría valer 2,72V, o
cualquier otro valor con cualquier número de decimales. Por contra, recordemos que una señal digital
de tensión teórica únicamente podía registrar dos valores (en el ejemplo, 0V o 5V).

Por norma general en los autómatas las entradas analógicas son más escasas, más lentas y más
caras que las entradas digitales. En el caso de Arduino uno disponemos de un número variable de
entradas analógicas, que en el caso de Arduino Uno y Mini Pro son 6, y en el Arduino Mega son 16.
Este es un número más que respetable de entradas analógicas, que rivaliza o supera a autómatas
tradicionales de coste muy superior.

Como vimos al explicar las entradas digitales, una entrada digital supone un proceso de
transformación de una señal en un valor digital, atribuyendo un valor HIGH a las medidas que superen
un valor umbral, y LOW a lo que quedan por debajo. Por el contrario, una entrada analógica
proporciona una medición codificada en forma de un valor digital con un número N de bits.

Es importante entender que en el mundo real cualquier señal de tensión es siempre analógica. Un
valor digital es un concepto, una abstracción. Sin embargo conviene señalar que la medición que
proporciona una entrada analógica también es un valor digital, por lo que igualmente es una
abstracción. Esto nos lleva al concepto de precisión de la medición.

PRECISIÓN DE LA MEDICIÓN
Para entender la precisión de una entrada analógica es necesario entender cómo funciona un conversor
analógico digital (ADC), que es su componente fundamental. Un ADC es un dispositivo que
convierte una medición analógica en una medición digital codificada con un número N de bits.

Existen muchas formas de construir un ADC, pero lo importante es entender que en realidad no
medimos el valor analógico con todos sus decimales, sino que lo “clasificamos” dentro de 2^N
niveles, que definen 2^N-1 intervalos. El ancho de este intervalo medido en mV es la precisión de
la señal. Cuanto mayor sea el número de bits, mayor será el número de intervalos, menor será el
ancho del intervalo, y por tanto mejor la precisión de la medición.

En el caso de Arduino Uno, Mini Pro, y Mega, las entradas analógicas disponen de 10 bits de
resolución, lo que proporciona 1024 niveles digitales, lo que a 5V supone una precisión de la
medición de +-2,44mV. Arduino Due tiene una resolución de 12bits, 4096 niveles digitales, lo que
supone una precisión de 0,61 mV.
PRECISIÓN RELATIVA
Hasta ahora hemos supuesto un autómata alimentado entre 0V y 5V, que mide una señal analógica
de tensión entre 0V a 5V. En este caso, con un ADC de 10 bit tenemos una precisión de 4,88mV, lo
que supone una precisión relativa respecto a la señal de entrada de 0,1% (1/1024).

Sin embargo, supongamos que medimos una señal que varía entre 0V y 1V. En este caso, con el
mismo ADC de 10 bit tendríamos la misma precisión absoluta de 4,88mV, pero una menor precisión
relativa respecto a la señal, que caería hasta 0,5%.

Es decir, si realizamos una medición a una señal que varía en un límite inferior a Vcc estamos
perdiendo precisión relativa. Esto es la consecuencia de no aprovechar todo el rango de la medición,
por lo que en realidad el ADC se comporta como si tuviera un número inferior de bits.

REFERENCIA DE TENSIÓN ANALÓGICA (AREF)


Para resolver esta situación Arduino permite cambiar la tensión tomada como referencia por el
conversor analógico digital. El valor de la referencia se cambia con la función AnalogRef, y los
valores posibles son:

 DEFAULT: Valor por defecto, correspondiente con Vcc (5V o 3.3V, según modelos)

 INTERNAL: Corresponde a 1.1V (en Atmega 168 y 328)

 EXTERNAL: Voltaje aplicado de forma externa en el pin Vref (siempre entre 0 y Vcc

 INTERNAL1V1 y INTERNAL2V56, correspondientes a 1.1V y 2.56V (sólo en Mega)

En el caso de usar la referencia de tensión externa (EXTERNAL), si sabemos con total seguridad que
una señal no va a superar de un cierto valor de tensión, por ejemplo 0.7V, podemos proporcionar
este valor como referencia a través del Pin Aref . La medición se realizará tomando esta tensión
como referencia en lugar de Vcc, por lo que recuperamos toda la precisión relativa.

Si modificamos la tensión de referencia, debemos definir el modo mediante la función AnalogRef antes
de realizar cualquier lectura analógica.
En caso de introducir un valor de tensión en el pin Aref no debemos superar este valor en las entradas
analógico. Además, en ningún caso superaremos la tensión de alimentación de Arduino. De lo
contrario podríamos dañar los pines analógicos.
CONEXIÓN DE ENTRADAS ANALÓGICAS EN ARDUINO
Supongamos que dispongamos un sensor analógico que proporciona una señal analógica entre
0V a 5V. El esquema de conexión es similar al que empleamos para realizar la lectura digital.
LECTURA DE VALORES MAYORES DE 5V
En caso de necesitar leer una entrada de nivel de tensión superior, por ejemplo de 12V, debemos
realizar una adaptación de tensión. La forma mejor de realizar la adaptación es emplear un simple
divisor de tensión.

Con esta configuración el pin digital de Arduino recibirá una tensión que varía entre 0 a 3,84V por lo
que, como hemos explicado, estaríamos perdiendo precisión relativa. Una opción sería ajustar las
resistencias para que los límites estén lo más cercanos posible a 0 y 5V, o usar otro divisor de tensión
para alimentar el pin Aref.

Los valores de las resistencias a emplear dependen del voltaje que queremos leer, y de la impedancia
del sensor. En general, deben cumplir las siguientes condiciones:

 Deben convertir la señal en un rango inferior pero similar a la tensión de alimentación.

 Deben ser muy superiores a la impedancia equivalente del dispositivo a medir.

 Deben despreciables respecto a la impedancia de la entrada Arduino.

 Deben limitar la corriente que circula por ellas para minimizar pérdidas.

 Deben ser capaces de disipar la potencia que van a soportar.

Podéis ayudaros de la calculadora de divisores de tensión para calcular valores de resistencia


que cumplan estos requisitos.

No empleéis este sistema para leer tensiones superiores a 35V, o para dispositivos de corriente
alterna sin estar muy seguros de lo que estáis haciendo. Es muy posible que las resistencias no
aguanten.
En la siguiente entrada veremos cómo emplear las entradas analógicas para leer el estado de un
potenciómetro o el valor de una resistencia variable, algo habitual a la hora de leer sensores cuya
lectura se realiza a través de la medición de su resistencia.

SALIDAS DIGITALES EN ARDUINO


En tutoriales anteriores hemos visto cómo usar las entradas digitales y las entradas analógicaspara
recibir señales del mundo. Así, podemos leer el estado de un pulsador, realizar la lectura de
sensores, leer el valor de una resistencia o la posición de un potenciómetro. Sin embargo, si solo
pudiéramos realizar lecturas los automatismos tendrían mucha menos utilidad de la que realmente
tienen. Ahora vamos a aprender a emplear las salidas de Arduino para poder realizar acciones en
el mundo. De forma similar a como hicimos con las entradas, vamos a empezar por las salidas
digitales dado que son más sencillas que las analógicas.

SALIDAS DIGITALES EN ARDUINO


Recordaremos que una señal digital puede variar únicamente entre dos valores, que
denominamos -Vcc y +Vcc. Una salida digital es un dispositivo que permite variar su tensión a uno
de estos dos valores mediante programación, y por tanto nos permite realizar acciones con el entorno.

En Arduino, en general, los voltajes -Vcc y +Vcc corresponden con 0V (GND) y 5V. Sin embargo,
algunos modelos de Arduino operan a 3.3V, como por ejemplo algunos Mini, Nano, y las placas
basadas en procesadores ARM como Arduino Due.

Todos los pines digitales de Arduino pueden actuar como salidas digitales (por ello se denominan
I/O, input y output). Pero conviene destacar que los pines analógicos también pueden usarse como
entradas y salidas digitales.

El número exacto de salidas digitales depende del modelo de placa que estemos usando, como vimos
en la entrada ¿Qué es Arduino? ¿Qué modelo comprar?. En resumen, Arduino Uno y Nano tienen
22 pines que podemos usar como salidas digitales, Arduino Mini tiene 20, y tenemos hasta 70
salidas digitales en el modelo Mega. Esto son cifras más que respetables, superiores a la mayoría de
automatismos de tipo industrial.

INTENSIDAD MÁXIMA DE UNA SALIDA DIGITAL


En general las salidas digitales de autómatas no están pensandas para proporcionar potencia, si
no para interactuar con electrónica u otros autómatas.

La intensidad máxima que puede dar un pin es de 40 mA, si bien el valor recomendado es de 20mA.
Además hay restricciones adicionales en cuanto a la potencia, como que la suma total de todas las
salidas debe ser inferior a 300 mA, y a su vez no pueden superar 150 mA por puerto.

Esta potencia es suficiente para encender un led, un pequeño servomotor de 9g, o encender algún
sensor, pero no es suficiente para alimentar cargas mayores. Si queremos mover una carga
superior, como un motor de corriente continua, un servo, o incluso un rele, tendremos que emplear
una etapa de amplificación, como un transistor BJT.

No es conveniente forzar los límites de potencia de forma prolongada, la placa podría calentarse
y dañarse. El límite de 20 mA por salida significa que, para un voltaje de 5V, la resistencia del
dispositivo que queramos alimentar no debe ser inferior a 200 ohmnios.

Como norma general, salvo que sepamos lo que estamos haciendo, siempre que vayamos a conectar un
dispositivo a cualquier salida lo haremos a través de una resistencia de al menos 300 ohmnios.

S-ar putea să vă placă și