Unidad 14

En esta unidad vamos a ver la salida analógica. Arduino no tiene salidas analógicas como tales. Los pines analógicos son sólo de entrada. Para poder suplir esa carencia, unos pocos pines de Arduino nos permiten modificar la salida para simular una señal analógica. 

Eso es realizado mediante una técnica denominada Pulse Width Modulation.

Para crear una señal analógica, Arduino usa una técnica que consiste en modificar el ciclo del pulso. Con esta variación, nosotros podemos imitar un voltaje analógico.

Esta capacidad está limitada a los pines tres, cinco, seis, nueve, diez y once, marcados con un símbolo. Los valores de salida analógica que podrán tomar estos pines también están limitados. Sólo podrá tomar valores entre 0 y 255.

Una vez explicado esto, vamos a tratar de controlar la intensidad de un led con un potenciómetro. Para ello, nos vamos a 123d circuits y añadimos una placa de Arduino Uno, un led, un potenciómetro y una resistencia. Procedemos a la configuración de la resistencia a 250 ohmios y a realizar las conexiones. Debemos tener la precaución de conectar nuestro led a un pin digital con la marca. En este caso, el pin digital número seis.

Ahora nos vamos a Bitbloq. En el apartado de hardware añadimos y conectamos los mismos elementos que hemos utilizado anteriormente. Pasamos al apartado de software.

Como queremos que el valor del potenciómetro se compruebe continuamente, sabemos que los bloques los tenemos que añadir al bucle principal. Nos vamos al apartado de componentes y pulsamos en avanzados.

Allí encontramos el bloque “escribir en el pin digital” el valor analógico. Lo arrastramos y rellenamos. Sabemos que en el primer hueco tenemos que poner el número del pin digital. Añadimos un número y ponemos un número, seis en nuestro caso.

En cuanto al valor analógico, sabemos que tenemos que utilizar un valor entre 0 y 255. Pero la entrada del potenciómetro devuelve valores entre 0 y 1023. Pues vamos a crear una variable, que vamos a llamar intensidad a la que le vamos a asignar un nuevo bloque, mapear.

Este bloque lo que hace es escalar un rango de valores a otro. En nuestro caso, lo que va a hacer es distribuir los datos del potenciómetro desde cero a doscientos cincuenta y cinco. Cero será la posición más baja del potenciómetro y doscientos cincuenta y cinco, el más alto.

Rellenamos los datos. Copiamos el código y nos vamos a 123d circuits. Pegamos el código. Pulsamos start simulation y, si todo ha ido bien, debemos ver que la intensidad del led cambia cuando movemos el potenciómetro.