marzo 29, 2024

BitCuco

¡Hola Mundo!

¿Qué son los pines analógicos Arduino?

pines analogicos arduino
Los pines analógicos de Arduino le permiten comunicarse con el mundo que le rodea, nuestro mundo, un mundo que no es digital.

¿Para que le sirven sus pines analógicos al Arduino? Nuestro mundo es analógico, pero su cerebro, así como el de cualquier sistema digital, entiende 1s y 0s. De alguna forma debe comunicarse con este mundo.

En una publicación anterior vimos que son los pines digitales de Arduino, así como la forma en que se configuran y usan. Aquí te platico en que consisten los pines analógicos de Arduino. En una publicación posterior te explicaré la forma de configurarlos y utilizarlos.

Diferencia entre analógico y digital

En primer lugar debemos comenzar por aclarar a que se refiere el término analógico. Anteriormente comentamos que los pines digitales procesan señales que sólo pueden tomar dos valores 1 ó 0.

Son los únicos que reconoce y puede procesar un microprocesador, microcontrolador o sistema digital. Todos estos sistemas se encuentran inmersos en un mundo analógico, nuestro mundo.

Los pines analógicos de Arduino envían señales no-digitales. Una señal analógica es aquella que puede tener diversos valores, no solo 1 y 0, a diferencia de las señales digitales. Estos valores pueden cambiar constantemente y tener cualquier magnitud.

Un ejemplo es la temperatura medida con un termómetro de mercurio. El valor varía constantemente, entre diversas magnitudes, pero sobretodo, no puede llegar a 39° C sin haber pasado por todos los valores anteriores.

Interacción entre el mundo digital y analógico

Como ya se ha comentado, nuestro mundo es analógico sin embargo, desde hace bastante tiempo, los sistemas digitales están inmersos en él. La interacción y comunicación entre ambos mundos se logra con ayuda de dos sistemas, DACs y ADCs.

El Convertidor de Digital a Analógico (DAC, por su traducción al inglés), toma una valor digital (1s y 0s), lo transforma y expresa en un valor continuo, un valor analógico.

El Convertidor de Analógico a Digital (ADC, por sus siglas en inglés), efectúa la operación contraria. Es decir, toma un valor analógico y lo convierte a su equivalente en digital.

pines analógicos Arduino
El mundo es analógico

De acuerdo a lo anterior, entonces el ADC puede tomar un valor del mundo que nos rodea. Por ejemplo la magnitud de una variable física, temperatura, humedad, voltaje, velocidad, etcétera.

El valor de esa variable lo digitaliza para que pueda ser entendido y procesado por un microcontrolador, como el del Arduino, por ejemplo. Ahora, si el Arduino requiere enviar información o un dato al mundo real, recurre al DAC.

Este convertidor tomara la información digital proveniente del microcontrolador y la expresará en algún valor de magnitud variable y continua.

Los pines analógicos de Arduino

Debo comenzar explicando que si bien Arduino define sus puertos como analógicos, los de entrada si involucran un ADC, pero los de salida no usan exactamente un DAC. Deja te lo explico por partes.

Pines analógicos de entrada

Respecto a los pines de entrada analógicos, internamente están conectados a un sólo Convertidor Analógico-Digital. Este ADC es de 6 canales multiplexados. Esto quiere decir que si deseamos convertir, por ejemplo 3 señales de analógico a digital, lo hará una por una.

Comenzará por leer el valor de la señal 1 y realizará su conversión a digital. Una vez que acabó con la señal 1, continuará con la señal 2 y hasta que acabe con ésta, convertirá la tercer señal.

Esta es una desventaja si se quiere velocidad de conversión de varias señales analógicas. Sin embargo, se debe considerar que este arreglo del ADC multiplexado permite economizar, en lugar de colocar 6 ADCs, lo cual elevaría considerablemente su costo.

Hay placas Arduino que ofrecen esta opción para sus pines analógicos, así como placas con otro tipo de microcontroladores como Microchip (PICs), Cypress Semiconductor (PSoCs), entre otros.

Pines analógicos de salida

Respecto a las salidas “analógicas” de Arduino, no son en sí Convertidores Digitales-Analógicos. Es decir, generan una señal PWM. La técnica de Modulación de Ancho de Pulso consiste en generar una señal que varía su salida entre 0 y 1.

pines analogicos Arduino
Señales PWM

Una señal PWM se origina de comparar dos señales, una portadora y una moduladora. Arriba la portadora es la que tiene forma de diente de sierra y la moduladora es una línea recta o valor constante. En el caso se la línea de color rojo se puede ver que tiene una magnitud casi igual al pico de la señal portadora.

Esto genera una señal como la segunda de arriba hacia abajo. Si la señal de color rojo disminuye en magnitud al nivel de la de color azul, ahora genera una señal como la tercera de arriba abajo. En el segundo caso, se dice que la señal tiene un ancho de pulso o ciclo de trabajo menor al de la tercer señal.

En conclusión, una señal PWM es un tren de pulsos que varia en su ancho. El ancho o ciclo de trabajo es resultado del cruce o comparación de la señal portadora con la moduladora.

En el caso de los pines analógicos en Arduino, este ancho se modifica cambiando un valor de entre 0 y 255 (valor digital que se desea mandar al exterior). Si se coloca 0, no se generará la señal PWM. Es decir su ciclo de trabajo será 0. Si el valor es de 255 veremos una línea recta, ya que su ciclo de trabajo será 1. Pero si usamos valores intermedios obtendremos diversos ancho de pulso.

Es decir si usamos el valor de 127, el ciclo de trabajo será aproximadamente de 0.5. Un valor de 51, corresponderá aproximadamente a un ciclo de trabajo de 0.2.

Conclusiones

Ahora ya sabes que los pines analógicos le permiten a la placa Arduino comunicarse con el mundo que le rodea, nuestro mundo. Las entradas convierten un valor analógico a digital, permitiéndole al Arduino comprender y procesar información proveniente de su exterior.

Para el caso de hardware como arduino, los pines analógicos de salida, si bien no convierten como tal un valor digital en su respectivo valor analógico. Si permiten generar una señal variante en su ancho de pulso.

Recuerda que el pulso corresponderá al valor digital que se envíe al exterior. Este tipo de señales tiene diversas aplicaciones. Las mas comunes permiten administrar o controlar la potencia en una luminaria o motor, por ejemplo. Modificando el ancho del pulso variará la intensidad luminosa o velocidad del motor.

En mi siguiente publicación te explicaré como configurar y usar los puertos analógicos de Arduino con un ejemplo.