26. Arduino entradas y salidas

La Tecnología para todos - Un pódcast de Luis del Valle Hernández

Categorías:

Primer capítulo de la serie que os iremos presentando donde veremos como crear un proyecto con Arduino y tecnología web, en este capítulo, Arduino entradas y salidas, os explicaremos como podemos conectar dispositivos al Arduino a través de las entradas y salidas.Pero como siempre ya sabéis, si queréis contactar con nosotros lo podéis hacer a través del formulario de contacto o de Twitter @programarfacilc. También tenéis una lista de distribución a vuestra disposición para que os suscribáis.En el Arduino UNO existen entradas y salidas analógicas (6) y digitales (16). Por un lado las analógicas son utilizadas, generalmente, para dispositivos de entrada y nos permiten leer un rango de valores. En cambio las digitales pueden tener a la entrada o a la salida 0V o 5V, esto nos indica que ese pin está en estado alto (High) o bajo (Low).Entradas/salidas digitalesSe trata de pines donde el usuario puede activar (poner tensión) o desactivar (quitar tensión). Es similar a escribir 0 y 1, como ya hemos dicho 0V y 5V respectivamente.Los pines 0 (Serial In RX) y 1(Serial Out TX), puerto serie, se usan para comunicación entre dispositivos. La característica principal de los puertos serie es que envían la información bit a bit, enviando un bit cada vez. La versión avanzada de este puerto sería el paralelo que nos permite enviar información en paralelo. Para que se pueda entender imaginaros un tanque lleno de agua, si de ese tanque sacamos un grifo para llenar botellas una a una éste sería nuestro puerto serie, ahora bien, si de ese tanque sacamos cuatro grifos para llenar cuatro botellas a la vez, este sería el ejemplo de un puerto paralelo. En ordenadores, el puerto serie, se usa y se sigue usando para conectar un ordenador con módems, ratones, teclados y muchos más periféricos. En el caso concreto del Arduino UNO, el puerto 0 (RX) sería el puerto serie de entrada y el puerto 1 (TX) sería el puerto serie de salida.Los pines 2 y 3 nos permiten interrumpir el funcionamiento del bucle "loop". Ya hablaremos de este bucle más adelante en otro artículo, pero quedaros con la idea de que es lo que se ejecuta continuamente dentro del código de Arduino. Imaginaros que queremos leer un sensor cada segundo. No hace falta escribir el código infinitas veces, en Arduino existe este bloque que repite todo lo que se encuentre dentro de él indefinidamente. Estos pines paran precisamente ese bucle y obligan a ejecutar un código asignado a cada pin.Los pines 3, 5, 6, 9, 10 y 11 que están marcados con el símbolo ˜, son entradas y salidas especiales ya que aunque son digitales y se pueden utilizar como tal, también se pueden utilizar para la comunicación PWM (Pulse-Width Modulation) modulación por ancho de pulsos. Se trata de una técnica que nos permite transferir información o energía a un dispositivo con una señal cuadrada. Como ya hemos dicho, los pines digitales solo atienden a dos estados, bajo (0V) y alto (5V). Si somos capaces de cambiar el estado alto y bajo controlando el tiempo que está en alto y el tiempo que está en bajo, conseguimos tener una onda cuadrada donde el tiempo que esté en estado alto (5V) será el ancho de pulso. La relación que existe entre estos dos tiempos se llama ciclo de trabajo y se expresa en tanto por ciento (%). Nos indica el tiempo que la señal está en alto en comparación con la que está en bajo. Lo podemos ver con el siguiente ejemplo.pwmEn Arduino existe una función que permite utilizar estos puertos, se llama analogWrite. No podemos utilizar cualquier rango de valores, esta función solo admite valores entre 0 y 255 (8 bits). Por lo tanto y con el ejemplo de ciclos de trabajo que tenemos arriba, podemos definir una tabla donde nos diga el valor correspondiente para introducir en la función analogWrite y la salida en volitios que tendríamos.Ciclo trabajo (%)analogWrite (0 - 255)Salida (Voltios)