Tutorial arduino – Entradas y salidas

portada

Una buena forma de aprender a programar es realizar ejercicios prácticos, si existen errores en el proceso el solucionarlos por nuestra propia cuenta nos permite comprender de mejor manera, en esta ocasión veremos como aprender a utilizar los periféricos de entradas y salidas en Arduino, primeramente debemos saber que algunos pines pueden llegar a tener más de 2 funciones distintas es decir el pin puede ser utilizado como una entrada o salida como también puede ser utilizado para una salida para PWM dependiendo del pin utilizado, como vemos debemos tener el esquema de la placa Arduino para utilizar los periféricos que necesitamos.

Utilizar pines como salida

Como vimos en el artículo anterior la estructura necesaria para iniciar un programa es fácil de utilizar simplemente es necesario incluir la función setup() que sirve para agregar parámetros de iniciación y la función loop() conocido como el bucle principal que es donde nuestro programa se ejecutará todo el tiempo, pero también existen funciones propias del hardware de las cuales utilizaremos la función pinMode() y digitalWrite(). El programa que haremos consiste en hacer parpadear un led durante con una frecuencia de 1 segundo entre apagado y encendido, en electrónica es conocido como modo astable y es muy común utilizar el integrado 555 para estas funciones, pero en esta ocasión utilizaremos Arduino.

Primero mostraré el código completo y luego explicaré para qué sirve cada función para así tener una visión completa del código, el programa quedaría escrito de la siguiente manera:

Siempre es buena practica comentar el código y con la práctica logras ver que es de mucha ayuda ya que inclusive no necesitas documentar tu código si tus comentarios son bien explícitos, dividamos el código en secciones para entrar en detalle de que cada función, la primera parte sería de inicialización:

Cualquier placa de Arduino tiene un valor único para cada pin así de esta manera es identificado cada uno en específico, estos valores los puedes ver a la par de cada conector en la placa y se encuentran escritos en color blanco pueden ser letras y números o solo números, este valor es un entero entonces lo que hacemos con la línea int led = A0 es guardar el número de pin en una variable, como puedes notar el valor que ingrese es A0 y es porque estoy utilizando una placa Arduino Mega2560 para este ejemplo y no parece ser un entero pero el compilador sabe que valor le corresponde y lo convierte así no debes preocuparte por el valor exacto porque sabe que pin estás utilizando, regresando a lo anterior, lo que hacemos es guardar el valor del pin en una variable para que podamos configurar ese pin como salida.

Dentro de la función setup() nos encontramos como la función pinMode(led,OUTPUT), lo que hace esta función es configurar el pin que deseas utilizar ya sea como salida con la constante OUTPUT o como entrada cambiando OUTPUT por INPUT en nuestro caso lo utilizamos como salida, el siguiente bloque es la función loop:

A la función loop la llamaré bucle principal para referirme a ella ya que en realidad lo que hace es repetir cada línea de manera infinita y de manera secuencial, con la función digitalWrite(led,LOW) lo que hacemos es enviar o escribir un valor de salida al pin como podrás notar necesitamos el valor de identificación del pin el cual lo declaramos en una variable al principio del código es por esta razón que es que es buena práctica utilizar constantes para referirnos a valores repetitivos, la función digitalWrite() necesita el valor del pin que en este caso es la variable led y un parámetro de salida ya sea 1 ó 0, el compilador de Arduino posee valores constantes que podemos utilizar para hacer más entendible nuestro código en este caso la constante HIGH es igual a 1 y LOW es igual a 0 entonces primero encendemos el led con valor 1 luego esperamos un segundo con la función delay(1000), esta función es para realizar pausas de un milisegundo, 1000 milisegundos son igual a 1 segundo que es el valor que ingresamos, luego queremos apagar el led con valor 0 y esperar otro segundo, y esto se repetirá una y otra vez.

Para cargar el software a nuestro Arduino debemos dar click en el icono de cargar en la parte superior del IDE y si no cometimos ningún error y el software se encuentra configurado con la placa correcta, nos mostrará un mensaje de carga exitosa, luego debemos probar si nuestro programa funciona bien en la placa Arduino y para eso necesitamos realizar un circuito con protoboard, en el que tomaremos los voltajes de la placa Arduino y colocaremos el led con su resistencia para no quemar lo que irá conectado al pin A0 y el circuito quedaría de la siguiente manera:

 

Circuito para encender un led arduino

 

Utilizar pines como entradas

Si no cometimos ningún error, deberíamos ver el led parpadear, de la misma forma se puede configurar cualquier pin como salida y no solo puede ser utilizado para encender un led sino que en aplicaciones reales puedes conectar cualquier componente que necesites,pero¿qué pasa si quieres leer el valor de un pin que puede ser un botón o switch por ejemplo? en este caso el pin debe ser configurado como entrada, y para poder mostrar como hacerlo realizaremos un cambio al código anterior agregando un switch para controlar la acción de parpadear, si el switch es igual a 1 entonces la acción se realizará pero si es igual a 0 no se ejecutará nada, el código quedara de la siguiente manera:

En este ejemplo agregamos una resistencia en pull-up la cual nos sirve controlar el estado lógico de la entrada y para que el switch se pueda conectar en este caso a negativo, es una técnica muy utilizada en electrónica, siempre puedes consultar en google sobre pull-up y pull-down si así lo deseas, cabe mencionar que Arduino posee resistencia en pull-up internas pero esta vez no las utilizaremos ya que lo veremos mas adelante.

 

Pullup Resistor

En el circuito solo debemos incluir un switch con una conexión a una resistencia en pull up que se coloca como se ve en la imagen anterior y el otro pin a tierra, la entrada se encontrara en alto con una baja tensión la cual al ser presionado el switch cederá el paso a tierra que sera reconocido como un 0, de nuevo debemos cargar el software a Arduino y veremos el circuito funcionar, el circuito quedaría de la siguiente manera:

switch y un led con arduino

 

De esta manera logramos configurar los pines de Arduino como entradas y salidas en este caso fue para controlar un led con un switch simple pero en el mundo real pueden tener varias aplicaciones según lo necesites, en el siguiente articulo veremos mas en detalle los periféricos especiales que poseen algunos pines y como siempre tratare de incluir ejemplos prácticos ya que es la mejor forma de aprender.

 

A %d blogueros les gusta esto: