PROGRAMA DE INGENIERA MECATRNICA TALLER PROGRAMACIN ARDUINO II DOCENTE: MSC ELKIN YESID VESLIN DAZ TUNJA 05 DE OCTUBRE DE 2012
Configuracin de Entradas Digitales en Arduino Uno
Figura 1. Arquitectura Estacin de desarrollo Arduino 1.
Como se vio en el curso pasado las entradas y salidas digitales del Microcontrolador ATMEGA son compartidas en 14 puertos que pueden ser encontrados en la parte derecha de la estacin de trabajo Arduino UNO, ver Figura 1 para recordar la estructura de la estacin.
Para configurar uno de estos pines como entrada o salida, es necesario configurarlos desde el Void Setup usando la funcin pinmode, su estructura para configurar un pin como entrada es la siguiente:
pinMode(pin, INPUT); //Configura al pin como ENTRADA
De esta forma, cualquiera de los 14 pines que posee el Microcontrolador puede ser usado como puerto de entrada.
Las entradas digitales se usan para registrar informacin de elementos discretos que funcionan con dos niveles de salida, 0 o 1, siendo 1 un valor en voltaje diferente de cero. Estos elementos pueden ser sensores de presencia on/off como los de tipo pticos o capacitivos, finales de carrera, interruptores y cualesquiera elementos electrnicos cuya seal de voltaje cambio entre dos estados.
P o w e r A I D i g i t a l P W M ~
Estructura de Programacin Arduino
El siguiente programa presenta una estructura ejemplo que muestra cmo se programa y se usa un pin como entrada digital. El siguiente programa, enciende y apaga un led conectado al pin 13 siempre y cuando el interruptor est oprimido, ms adelante se explicarn las funciones especficas usadas para este programa.
const int interruptor=7; cons int led=13; int estadoBoton = 0;
El cdigo que est inmerso dentro del Void Loop se explica en la Figura 2. El nivel mximo de voltaje que puede soportar un pin I/O es de 5 VOLTIOS, por favor no conectar sensores cuya seal de salida sea mayor a este rango. Valores mayores, requieren de una etapa de Nota Encabezado: Aqu van libreras si son necesarias y se definen las variables que usar el programa Void Setup: configura al Microcontrolador de acuerdo con las especificaciones del usuario. Void Loop: cuerpo del programa, es una estructura que se repite indefinidamente mientras el Microcontrolador est alimentado.
Figura 2. Diagrama de Flujo Programa que enciende un Led
Bsicamente, el programa controla el led teniendo en cuenta el estado del interruptor, si este est oprimido el programa mantendr el led encendido, todo lo contrario, lo mantiene apagado. La condicin if es creada para registrar el cambio de estado de 0 a 5 en el interruptor.
El circuito que controla el encendido de un led a travs de un interruptor se presenta a continuacin:
ACTIVIDAD
Teniendo en cuenta los planos enviados la semana pasada, realizar un programa en Arduino que controle un display de 8 segmentos a travs de 4 entradas digitales. Para representar un nmero en el display basta con presionar los interruptores teniendo en cuenta el cdigo en binario que lo representa. Por ejemplo, no presionar los 4 interruptores (0000) ocasiona que el display muestre un 0 en su pantalla. Si queremos que muestre el nmero 1 tenemos que presionar el primer interruptor (0001). Si queremos mostrar el nmero 9 debemos oprimir los interruptores (1001). Y as con el resto de los nmeros teniendo en cuenta el cdigo en binario que lo representa.
Recordemos que 0 es interruptor que no se presiona y 1 interruptor presionado. Se pueden configurar tantas salidas como entradas al mismo tiempo, lo importante es tener en cuenta la cantidad de pines que cuenta el microcontrolador. Para leer el estado de una entrada digital se usa la funcin digitalRead que se encarga de tomar el dato que en ella est presente, para las I/O digitales los estados posibles son HIGH y LOW, digitalRead debe referenciarse a una variable declarada por el usuario, como se vio en el ejemplo. La funcin pinMode se usa para configurar un pin tanto como ENTRADA (INPUT) como SALIDA (OUTUT) No se puede configurar el mismo pin como entrada y salida en el mismo programa. Nota