Manejo de pantallas LCD, botones y teclados.

Documentos relacionados
Tema: Manejo de pantallas y teclados

Tema: Manejo de pantallas LCD, botones y teclados

Tema: Manejo del Puerto Paralelo con LabView

Processing y manejo de hardware

Tema: Tipos de Bloques en S7-1200

Tecnológico Nacional de México

Tema: Tipos de Bloques en S7-1200

Tema: Tipos de Bloques en S7-1200

Tema: Processing y manejo de hardware con Arduino

Tema: S7-200, Escalado de Valores analógicos

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ELECTRONICA

Control de LCD y sensor de temperatura

Tema: Manejo del Puerto Serie con LabView

Comprobar el funcionamiento de convertidores A/D y D/A. Verificar el funcionamiento de un convertidor digital a análogo.

Tema: S7-1200, Valores Analógicos.

AR 9 T. Tutorial 9: Display LCD

Tema: Operaciones de Carga, Transferencia, Comparación y Aritméticas del S7-1200

Proyecto final Microcontroladores: Sistema De Seguridad Caja Fuerte Integrantes:

Tema: Introducción al uso del simulador S7-PLCSIM

Tema: Introducción al uso del simulador S7-PLCSIM

Tema: Operaciones de Carga, Transferencia, Comparación y Aritméticas del S7-1200

INSTITUTO TECNOLÓGICO METROPOLITANO ITM GUÍA DE LABORATORIO INSTRUMENTACIÓN ELECTRÓNICA INTERFAZ ARDUINO - LABVIEW

LED INTERMITENTE CIRCUITO ELÉCTRICO MATERIALES PROGRAMA LED DOS CONECTORES CABLE USB ROBÓTICA. Puerto 8 ( salida al led rojo ) ARDUINO UNO 220 W GND

Transferir datos por medio del puerto paralelo utilizando un lenguaje de bajo nivel. (Lenguaje ensamblador auxiliándose del macroensamblador MASM)

Tema: SÍNTESIS DE CIRCUITOS LÓGICOS.

Control de brazo robótico por Bluetooth (Compatible solo con dispositivos Android)

Tema: S7-1200, Valores Analógicos.

IM : ARDUINO NANO OEM

Tema: Introducción a la Plataforma Arduino

Tema: USO DE MULTIPLEXORES Y DEMULTIPLEXORES.

Tema: Instalación de Linux.

PROCEDIMIENTO PARA HABILITACIÓN 28/08/2015

CURSO: MICROCONTROLADORES UNIDAD 4: COMUNICACIÓN SERIE- ARDUINO PROFESOR: JORGE ANTONIO POLANÍA

1. Escribir un dato digital del WinCC al Arduino

Electrónica II. Guía 2

MICROPROCESADOR DE 32 BITS.

Tema: Fuente de Alimentación de Rayos X

Empieza con // y termina con la siguiente línea de código. Son ignorados por el programa y no ocupan espacio en memoria.

MANUAL DE USUARIO Arduino Relay Shield MCI-MA-0064 REV. 1.0

+5V 8K2 1K5. Arduino. Display LCD

Práctica de laboratorio: Instalación de una impresora en Windows XP

Electrónica II. Guía 4

Tema: Transformación de impedancias con líneas de transmisión

Introducción a Arduino

Introducción a Tinkercad.

Tema: Administración y respaldo de información.

IM : PLACA OEM DUE COMPATIBLE CON ARDUINO

Tema: Amplificador de Instrumentación

ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL. Facultad de Ingeniería Eléctrica y Computación

Display LCD y memorias

Clase 2: Programación

Tema: Amplificador de Instrumentación

Amplificador inversor y no inversor

MICROPROCESADOR

Filtros Activos de Segundo Orden

PRESENTA INTRODUCCIÓN A ARDUINO

4 Actuadores eléctricos. Alfaomega. Material Web. Arduino control de servomotores a pasos 2

Tema: Analizador de tráfico

Tema: Uso del analizador espectral.

Tema: APLICACIÓN DEL TEMPORIZADOR 555

Introducción Arduino TPR 3º ESO

Práctica de laboratorio: Instalación de una impresora en Windows Vista

Programa del curso de Arduino

Empezando con Arduino. Controla tu entorno con un microcontrolador PIIISA

TECNOLOGICO DE ESTUDIOS SUPERIORES DE ECATEPEC DIVISIÓN DE INGENIERÍA ELECTRÓNICA Y TELEMÁTICA ACADEMIA DE SISTEMAS DIGITALES

GUÍA RÁPIDA M2M 3G Shield MCI02870 REV. 1.0

Tema: Programación de GRAFCET en S7-200 con Relés de Control Secuencial (SCRs)

MANUAL DE USUARIO Sensor de temperatura y humedad digital MCI-SEN REV. 1.0

Tema: S7-200 y la red PPI

Android 2.3 Tablet Manual de Usuario

Tema: Sistemas de lazo abierto y lazo cerrado


Sesión 12: Practica 3: Creación de prototipo básico de Arduino.

Switch Compartido USB 2.0

PROYECTO DE ELECTRÓNICA

Cómo configurar el dispositivo Uncord Free2Move para conectarlo con cualquier lector de Datamars?

Práctica de laboratorio: Instalación de Linux en una máquina virtual y exploración de la GUI

AR 1 T. Tutorial 1. Introducción a Arduino Controlando un LED.

OSCILADORES SENOIDALES

Alarma GSM. 1. Componentes

Tema: Configuración de Access Point

Tema: USO DE CODIFICADORES Y DECODIFICADORES.

Comunicación Serial Arduino UNO vs Leonardo

Programar posiciones en un Micro Servo Tower Pro SG90 9G

CONSTRUCCION DE TIMER PARA VUELO CIRCULAR CON MOTOR ELECTRICO

Tema: Conexión de sensores y manejo de LED RGB con Arduino

Tema: Aplicación de un sistema de control de velocidad en un motor hidráulico.

ARDUINO El proyecto Arduino: Recordando - Pines de entrada - Pines de salida - Microcontrolador - Conexión USB - IDE de arduino

Conexión de Sistemas en Red

Tema: Controladores tipo P, PI y PID

Guía de Instalación de Imagen GNU/Linux en VirtualBox (SEDM)

Field PC 2 Guía de actualización del Sistema Operativo de Windows

Bienvenidos IMPORTANTE:

Manual de Instalación KIT Homini Runt

Periféricos Básicos Visualizador LCD

Tema: Comunicaciones digitales con Arduino

Transcripción:

Interfaces y Periféricos. Guía 3. 1 Manejo de pantallas LCD, botones y teclados. Facultad: Ingeniería Escuela: Electrónica Asignatura: Interfaces y Periféricos (IYP111). Lugar de Ejecución: Microprocesadores (3.23). Objetivos Específicos. Realizar Interfaces con Arduino haciendo uso de dispositivos de entrada como botones y teclados. Realizar Interfaces con Arduino haciendo uso de dispositivos de salida como Pantalla LCD. Desarrollar aplicaciones mediante sketches Materiales y equipos. 1 Computadora con sistema operativo Windows y con el programa Arduino IDE instalado. 1 Cable USB (tipo A hacia tipo B). 1 Tarjeta Arduino UNO R2 o R3. 3 Resistencias de 4.7 kω. 3 Botones (pulsadores). 1 Shield LCD (16x2) 1 Teclado matricial 4x4. 1 Breadboard. 1 Pinza punta plana. 1 Cortadora (pinza de corte diagonal). Cables UTP. Introducción Teórica. Phi_interfaces es la primera y única librería de código abierto Arduino que maneja todos los dispositivos de entrada para Arduino, tales como pulsadores, teclados matriciales, codificadores rotatorios, botones analógicos, incluso la comunicación por medio de Bluetooth con teléfonos inteligentes, todo ello bajo un marco común. Vea la figura 1 para tener una idea del concepto. Por el momento la librería contiene clases para los botones, teclados matriciales, botones analógicos, codificadores rotatorios, pantallas de teclados LCD seriales (o entradas de teléfonos inteligentes o simuladas a través de teclados serie), además existen formas muy fáciles de ampliar la interfaz para incluir otros dispositivos como teclados capacitivos, controles remoto IR, ratón PS / 2 teclados, teclados de pantalla táctil, escudos Ethernet, etc. Con esta librería, ya no tienen que buscar y aprender muchas librerías, es decir una para cada tipo de insumo. Sólo tiene que insertar esta librería y podrá utilizar cualquiera de todos los dispositivos de entrada antes mencionado.

2 Interfaces y Periféricos. Guía 3. Figura 1. Librería Phi_interfaces. La librería Phi_interfaces es de mucha ayuda para la construcción de diversas aplicaciones, donde se necesite la utilización de los dispositivos de entrada antes mencionados. Debido a que es una librería ajena al fabricante de Arduino, debe ser descargada de la página del creador y agregada a la carpeta donde se encuentra alojadas todas las librerías en nuestra computadora. Para ello hay que seguir el siguiente procedimiento: 1) Descargar la librería desde la página del creador. https://github.com/liudr/phi_interfaces 2) La librería vendrá comprimida, por lo que hay que descomprimirla para poder utilizarla. El archivo descomprimido es una carpeta con el nombre phi_interfaces, esta carpeta debe ser copiada dentro de la carpeta de las librerías de Arduino IDE, la cual se encuentra dentro de la carpeta que usted accede para poder lanzar el Arduino IDE, su ubicación exacta dependerá de donde usted la ubico después de haberlo descargado ya que recuerde que es un programa portable (es decir no se necesita instalar para ser utilizado). (Ejemplo: C:\Documents and Settings\Administrador\Mis documentos \arduino-1.0.1-windows\arduino-1.0.1\libraries). Para su uso con Linux, deberá copiar (como super-usuario o como administrador) en la carpeta /usr/share/arduino/libraries y después dar permisos de archivo para lectura y escritura al usuario de sistema, a root y a otros. Para cualquier consulta acerca de este procedimiento consulte con un manual de usuario de linux según la distribución que esté utilizando. Es decir que la carpeta de interés donde necesitamos alojar la librería descargada (phi_interfaces) es la carpeta de librerías (libraries). Con esta acción la librería ya podrá ser incluida y utilizada la libreria en cualquier sketch simplemente agregando al inicio del sketch la línea de código #include <phi_interfaces.h>. Para el uso de dispositivos de salida como una pantalla LCD no es necesaria la descarga de ninguna librería extra, ya que el fabricante ha incluido una librería para el control de LCD, y para hacer uso de ella basta con agregar al inicio del sketch la línea de código #include <LiquidCrystal.h>. Esto es en caso se posea una LCD de 2 líneas por 16 columnas suelta.

Interfaces y Periféricos. Guía 3. 3 Para el caso del Shield 1 de arduino presente en el laboratorio este contiene una pantalla LCD Hitachi HD44780U de 2 filas por 16 columnas y 5 botones adjuntos a la entrada analógica A0. Figura 2. Shield de pantalla LCD para Arduino. La conexión de los pines al núcleo de Arduino se resume en la siguiente tabla: PIN Función Analog 0 Botones (select, up, right, down, y left) Digital 4 DB4 Digital 5 DB5 Digital 6 DB6 Digital 7 DB7 Digital 8 RS(Datos o señal de selección digital) Digital 9 Habilitador (Enable) Digital 10 Control de luz trasera (Backlight Control) Tabla 1. Conexiones de los pines del Shield LCD al núcleo Arduino Procedimiento. Parte I: Botones pulsadores. 1. Encienda la computadora. Cuando cargue el sistema operativo utilice las siguientes credenciales: Usuario: usuario0 Contraseña: usuario 1 Un Shield para Arduino es una tarjeta que se conecta a los pines del núcleo y le brinda otras funcionalidades, por ejemplo, pantalla LCD, comunicación Ethernet, control de motores DC y Paso entre otros.

4 Interfaces y Periféricos. Guía 3. 2. Inicie el entorno de desarrollo de Arduino, dentro de este digite y guarde el siguiente código. // Sketch para el control de botones pulsadores #include <phi_interfaces.h> //Incluyendo librería para control de teclados. #define btn_a 2 //definiendo los pines en que estarán... #define btn_b 3 //... conectados los botones #define btn_c 4 #define total_buttons 3 // definiendo cantidad de botones a utilizar char mapping[]='a','b','c'; //Esta es una lista con los nombres de cada botón byte pins[]=btn_a,btn_b,btn_c; //Pines conectados a los 3 botones phi_button_groups my_btns(mapping, pins, total_buttons); void setup() Serial.begin(9600); // configurando velocidad de transmisión de puerto serial void loop() char temp; //declarando variable para almacenar el valor del botón temp=my_btns.getkey(); //Usando objeto phi_button_groups para acceder al //grupo de botones if (temp!=no_key) Serial.write(temp); //Enviando valor de botón presionado al //puerto serial Código 1. Sketch para control de botones pulsadores. 3. Arme el circuito que se muestra a continuación, dicho circuito servirá para comprobar el funcionamiento del Sketch codificado en el numeral anterior. Figura 3. Diagrama de circuito para la parte I (Botones). 4. Conecte el Arduino a la PC y cargue el sketch codificado en el segundo numeral, compruebe su funcionamiento, para ello deberá abrir el monitor serial desde el entorno de desarrollo Arduino y observe lo que sucede en este cuando es presionado alguno de los pulsadores. 5. Notifique a su instructor que ha terminado esta parte para su correspondiente revisión y para continuar con la siguiente parte.

Interfaces y Periféricos. Guía 3. 5 Parte II: Teclado Matricial. 1. Cree un nuevo archivo desde el entorno de desarrollo Arduino, digite y guarde el siguiente código. // Sketch para el control de teclados matriciales #include <phi_interfaces.h> //Incluyendo librería para control de teclados. #define btns_per_column 4 //definiendo cantidad de botones por columna #define btns_per_row 4 //definiendo cantidad de botones por fila char mapping[]='1','2','3','a','4','5','6','b','7','8','9','c','*','0','#','d'; //Esta es una lista con los nombres de cada botón byte pins[]=2, 3, 4, 5, 6, 7, 8, 9; // pines de fila después pines de columna phi_matrix_keypads panel_keypad(mapping, pins, btns_per_row, btns_per_column); void setup() Serial.begin(9600); //configurando velocidad de transmisión de puerto serial void loop() char temp; //declarando variable para almacenar el valor del botón temp=panel_keypad.getkey(); //Usando objeto phi_keypads para acceder al teclado if (temp!=no_key) Serial.write(temp); //Enviando valor de botón presionado al puerto serial Código 2. Sketch para control de teclado matricial. 2. Arme el circuito que se muestra a continuación, dicho circuito servirá para comprobar el funcionamiento del Sketch codificado en el numeral anterior. Figura 4. Diagrama de circuito para la parte II (Teclado Matricial). 3. Cargue el sketch codificado en el primer numeral, compruebe su funcionamiento, para ello deberá abrir el monitor serial desde el entorno de desarrollo Arduino y observe lo que sucede en este cuando es presionado alguno de los botones del teclado matricial. 4. Notifique a su instructor que ha terminado esta parte para su correspondiente revisión y para continuar con la siguiente parte. Parte III: Pantallas de Cristal Líquido (LCD). 1. Cree un nuevo archivo desde el entorno de desarrollo Arduino, digite y guarde el siguiente código.

6 Interfaces y Periféricos. Guía 3. #include <LiquidCrystal.h> #include <phi_interfaces.h> #define buttons_per_column 5 //El pin analógico tiene cinco botones con resistencias. #define buttons_per_row 1 //Hay un pin analógico en uso byte keypad_type=analog_keypad; char mapping[]='1','2','3','4','5'; //un teclado analógico byte pins[]=0; //Los números de pin son de entradas analógicas. int values[]=0,99,257,410,640; //Se necesitan para incrementarse de forma monótona. //Estos valores son los que se miden en la entrada analógica al presionarse los botones phi_analog_keypads panel_keypad(mapping, pins, values, buttons_per_row, buttons_per_column); multiple_button_input* pad1=&panel_keypad; LiquidCrystal lcd(8,9,4,5,6,7); //Distribución de pines de pantalla con Arduino void setup() lcd.begin(16,2); // Inicializa la librería lcd.setcursor(0,0); //Ubica el cursor en la fila 0, columna 0 lcd.print("presione botones"); // Imprime un mensaje simple void loop() lcd.setcursor(9,1); // Mueve el cursor a Fila 1 y columna 9 lcd.print(millis()/1000); // Despliega los segundos transcurridos desde el encendido. lcd.setcursor(0,1); byte temp=panel_keypad.getkey(); // Usa el objeto phi_keypads para acceder al teclado. if (temp!=no_key) switch (temp) // Dependiendo del botón presionado se ejecuta la acción. case '1': lcd.print("right "); case '2': lcd.print("up "); case '3': lcd.print("down "); case '4': lcd.print("left "); case '5': lcd.print("select"); delay(10); Código 3. Uso de botones integrados en el Shield LCD con la librería phi_interfaces 2. Conecte el LCD Shield a los pines del Arduino, tenga cuidado que ningún pin quede fuera de los conectores. 3. Conecte el cable USB al Arduino y descargue el programa y compruebe su funcionamiento. Nota: El botón RST del Shield reinicia al Arduino y su programa.

Interfaces y Periféricos. Guía 3. 7 4. Después de haber comprobado el programa haga un nuevo Sketch y copie el siguiente programa: //Sketch para el control de LCD //Incluyendo librerias a utilizar: #include <LiquidCrystal.h> #include <phi_interfaces.h> #define buttons_per_column 5 //El pin analógico tiene cinco botones con resistencias. #define buttons_per_row 1 //Hay un pin analógico en uso byte keypad_type = Analog_keypad; char mapping[] = '1','2','3','4','5'; //un teclado analógico byte pins[] = 0; //Los numeros de pin son de entradas analógicas. int values[] = 0,99,257,410,640; //Se necesitan para incrementarse de forma monótona. // Estos valores son los que se miden en la entrada analogica al presionarse los botones phi_analog_keypads panel_keypad(mapping, pins, values, buttons_per_row, buttons_per_column); multiple_button_input* pad1 = &panel_keypad; /* Configuración de LCD RS Enable R/W D4 D5 D6 D7 VSS VDD Vo 8 9 Gnd 4 5 6 7 Gnd Vcc Pot */ int BacklitPin = 10; LiquidCrystal lcd(8, 9, 4, 5, 6, 7); int conteo = 0; //declarando e inicializando variable void setup() pinmode(backlitpin, OUTPUT); digitalwrite(backlitpin,high); lcd.begin(16,2); //Configurando el numero columnas y filas de LCD lcd.setcursor(3,0); //coloca el cursor en columna 3, fila 0 lcd.print("bienvenido"); //Imprime mensaje en LCD lcd.setcursor(4,1); //coloca el cursor en columna 4, fila 1 lcd.print("iyp-udb"); //Imprime mensaje en LCD delay(2500); //retardo antes de pasar a Loop lcd.clear(); //limpia la pantalla void loop() char temp; //declarando variable para almacenar el valor del botón temp=panel_keypad.getkey(); //Usando objeto phi_button_groups para acceder //al grupo de botones if(temp == '4') //Si es LEFT digitalwrite(backlitpin, HIGH); //Activa la luz trasera if(temp == '5') //Si es SELECT digitalwrite(backlitpin, LOW); //Desactiva la luz trasera if(temp == '3') //Si es DOWN conteo++; lcd.clear(); if (conteo < 26) lcd.setcursor(0,0); //coloca el cursor en columna 0, fila 0 lcd.print(conteo); //Imprime mensaje en LCD else if(conteo == 26) lcd.clear(); //Limpiar LCD lcd.setcursor(6,1); //coloca el cursor en columna 6, fila 1 lcd.print(conteo); //Imprime mensaje en LCD2 delay(15); else lcd.setcursor(6,1); //coloca el cursor en columna 6, fila 1

8 Interfaces y Periféricos. Guía 3. lcd.print(conteo); //Imprime mensaje en LCD if(conteo >= 51) lcd.clear(); lcd.setcursor(4,0); //coloca el cursor en columna 4, fila 0 lcd.print("**fin**"); //Imprime mensaje en LCD delay(15); conteo=0; Código 4. Sketch para control de LCD. 5. Cargue el sketch codificado en el anterior listado, compruebe su funcionamiento, para ello deberá presionar varias veces el pulsador DOWN del Shield, observe lo que sucede en la LCD, también presione SELECT y LEFT y cuál es su efecto. 6. Notifique a su instructor que ha terminado esta parte para su correspondiente revisión y evaluación final. 7. Apague la computadora, incluyendo el monitor. 8. Deje en orden su puesto de trabajo. Análisis de Resultados. 1. Qué función realiza la instrucción lcd.setcursor(a, b)? 2. Cuál es la función del que realiza Pin VO en el LCD? 3. Se pueden agregar más botones a otras entradas analógicas? Actividad complementaria. 1. Investigue cómo se puede hacer lectura de botones de forma serial utilizando la librería Phi_interfaces. 2. El Shield tiene integrados 5 botones que son leídos desde una sola entrada analógica, investigue cómo es la conexión del circuito necesario para hacer esto. Bibliografía. Referencia en línea del lenguaje: http://arduino.cc/en/reference/homepage Massimo Banzi, Getting started with Arduino O'Reilly Media / Make Publisher, Marzo 2009, ISBN: 978-0-596-15551-3 Creador de Librería Phi_interfaces: https://github.com/liudr/phi_interfaces

Interfaces y Periféricos. Guía 3. 9 Hoja de cotejo: 1 Guía 3: Manejo de pantallas LCD, botones y teclados. Alumno: Maquina N : Docente: GL: Fecha: EVALUACION % 1-4 5-7 8-10 Nota CONOCIMIENTO APLICACIÓN DEL CONOCIMIENTO 25% Conocimiento deficiente de los fundamentos teóricos 70% ACTITUD 2.5% 2.5% TOTAL 100% No Terminó completamente el programa y comentó mal el código (30%) No realizó el circuito correctamente (40%) Es observador pasivo. un Es ordenado; pero no hace un uso adecuado de los recursos Conocimiento y explicación incompleta de los fundamentos teóricos Terminó completamente el programa pero los comentarios no estaban del todo correctos El circuito funcionó Participa ocasionalmente o lo hace constantemente pero sin coordinarse con su compañero. Hace un uso adecuado de los recursos, respeta las pautas de seguridad; pero es desordenado. Conocimiento completo y explicación clara de los fundamentos teóricos Terminó completamente el programa con sus comentarios correctos El funcionó circuito Participa propositiva e integralmente en toda la práctica. Hace un manejo responsable y adecuado de los recursos conforme a pautas de seguridad e higiene.