Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

download Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

of 338

Transcript of Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    1/337

     

    Sensores inteligentes y susaplicaciones

    Guía del Estudiante

    VERSION 1.0

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    2/337

     

    GARANTÍA

    Parallax garantiza sus productos contra defectos en sus materiales o debidos a la fabricación por un período de 90días a partir de la recepción de los mismos. Si usted descubre un defecto, Parallax según corresponda, reparará,reemplazará o regresará el valor de la compra. Antes de regresar el producto a Parallax, simplemente pida un númerode autorización de regreso de mercancía (Return Merchandise Authorization, “RMA”), escriba el número en elexterior de la caja y envíela a Parallax. Por favor incluya su nombre, número telefónico, dirección y una descripcióndel problema. Parallax le regresará su producto o el reemplazo, usando el mismo método de correo que usted usó paraenviar el producto a Parallax.

    GARANTÍA DE 14 DÍAS DE REGRESO DEL DINERO

    Si dentro de los 14 días en que usted recibió su producto, encuentra que no es conveniente para sus necesidades, puede regresarlo, recibiendo un reembolso. Parallax regresará el precio de compra del producto, excluyendo losgastos de envío y manejo. Esto no se aplica si el producto ha sido alterado o dañado. Consulte la sección de Garantíaarriba acerca de las instrucciones para regresar un producto a Parallax.

    DERECHOS DE COPIA Y MARCAS REGISTRADAS

    Este documento tiene derechos de copia Copyright 2006 por Parallax, Inc. Al descargar este documento o software por Internet o al obtener una copia dura usted acepta los derechos de copia y se compromete a usar este materialsolamente con productos comercializados por Parallax, Inc. Cualquier otro uso no está permitido y representa una

    violación de los derechos de copia, propiedad intelectual y derechos de autor de Parallax, Inc. y dicha violación esobjeto de las penas que marcan las leyes Federal de derechos de autor y propiedad intelectual. Parallax Inc.expresamente no permite la reproducción con fines comerciales. Se permite la reproducción con fines educativos,reproducción sujeta a las siguientes condiciones: el texto, ya sea en su totalidad o cualquier parte del mismo, no

     puede ser duplicado para uso comercial; puede ser duplicado solo para fines educativos cuando se use únicamente enconjunto con los productos Parallax y el estudiante abone solo el costo de la duplicación.

    Este texto está disponible en formato impreso por Parallax Inc. Dado el tiraje de la impresión del mismo, el precio alconsumidor es frecuentemente menor que los costos típicos por duplicación.

    BASIC Stamp, Stamps en Class, Board of Education, Boe-Bot SumoBot, SX-Key y Toddler son marcas registradasde Parallax, Inc. Si usted decide usar cualquiera o cualesquiera de las marcas registradas de Parallax Inc. en sus

     páginas de Internet o en cualquier material impreso, forzosamente deberá agregar la aclaración: “(la marca encuestión) es una marca registrada de Parallax, Inc.” Otros nombres de productos y marcas son marcas registradas desus respectivos dueños.

    ISBN 1-928982-39-5

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    3/337

    DESVINCULACIÓN DE RESPONSABILIDAD

    Parallax, Inc. no es responsable de daños por consecuencias, incidentes o daños especiales que resulten de cualquierviolación de la garantía, bajo cualquier teoría legal, incluyendo pérdida de beneficios, tiempos muertos, buena fe,daño o reemplazo de equipo o propiedad y cualesquiera costos de recuperación, reprogramación o de reproducción dedatos guardados o usados dentro de los productos Parallax. Parallax tampoco es responsable de cualquier daño

     personal, incluyendo vida o muerte, resultado del uso de cualquiera de nuestros productos. Usted tiene absolutaresponsabilidad por la aplicación que desarrolle con el BASIC Stamp, sin importar la naturaleza del riesgo de la

    misma. 

    SEGUNDA IMPRESION

    SITIOS WEB Y LISTAS DE DISCUSIÓN

    Mantenemos foros de discusión activa basados en la red mundial dirigidos a personas interesadas en los productosParallax. Estos foros o listas de discusión son accesibles desde www.parallax.com:

    •  Propeller chip – Esta lista es específicamente para clientes que usan los circuitos y productosPropeller.

    •  BASIC Stamp – esta lista es extensamente utilizada por Ingenieros, aficionados y estudiantes,quienes comparten sus proyectos y preguntas acerca del BASIC Stamp.

    •  Stamps en Class® – Creada para educadores y estudiantes, los suscriptores de esta lista discuten eluso del material de Stamps en Class en sus cursos. La lista prove la oportunidad tanto a estudiantes

    como a educadores de hacer preguntas y obtener respuestas.•  Parallax Educators – Es un foro exclusivo para educadores y aquellos que contribuyen al desarrollo

    de Stamps en Class. Parallax creo este grupo con el fin de obtener retroalimentación en el desarrollode nuestro currículum y proveer un sitio para que los educadores desarrollen y obtengan Guías paraProfesores.

    •  Robotics – Diseñado para los robots Parallax, este foro fue creado para ser un diálogo abierto entreentusiastas de la robótica. Los temas incluyen el ensamble, código fuente, expansiones yactualizaciones de manuales. Los robots Boe-Bot®, Toddler ®, SumoBot®, HexCrawler yQuadCrawler son ampliamente discutidos aquí.

    •  SX Microcontrollers y SX-Key – Discusión de la programación del microcontrolador SX conherramientas del lenguaje ensamblador Parallax SX – Key® y compiladores de terceros en lenguajesBASIC y C.

    •  Javelin Stamp – Discusión de aplicaciones y diseños usando Javelin Stamp, un modulo Parallax quees programado utilizando un subconjunto de comandos del lenguaje de programación Java® de SunMicrosystems.

    ERRATA

    Si bien se realiza un gran esfuerzo para asegurar la precisión de nuestros textos, aún puede haber errores.Continuamente nos esforzamos para mejorar todos nuestros materiales educativos y documentos y frecuentementerevisamos nuestros textos. Ocasionalmente se publica en nuestro sitio www.parallax.com una hoja de fe de errata conuna lista de los errores y correcciones conocidos para un texto determinado. Por favor, revise las páginas individualesde los productos para obtener una descarga gratuita de este archivo de fe de errata.

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    4/337

     

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    5/337

    Tabla de Contenido · Página i 

    Tabla de Contenido

    Prefacio.......................................................................................................................iii  Introducción y notas del autor........................................................................................ iii Idea general....................................................................................................................v 

     Antes de comenzar.........................................................................................................v 

    La serie educativa Stamps en class .............................................................................. vi Traducciones ................................................................................................................ vii Colaboradores especiales ............................................................................................ vii 

    Capítulo 1: La Pantalla LCD Serial Parallax.............................................................1 LCDs en Productos.........................................................................................................2 El LCD serial Parallax - Su terminal portátil de depuración............................................2 

     Actividad #1: Conexión y prueba de la pantalla LCD .....................................................4  Actividad #2: Despliege de mensajes simples................................................................8  Actividad #3: Aplicacion en un timer.............................................................................17  Actividad #4: Caracteres personalizados y animación en LCD....................................19  Actividad #5: Avance de texto traves de la pentalla .....................................................25 Resumen ......................................................................................................................34 

    Capítulo 2: El Sensor Ultrasónico de Distancia Ping)))........................................41 ¿Cómo trabaja el Sensor Ping)))? ................................................................................41  Actividad #1: Medición del tiempo de eco ....................................................................42 

     Actividad #2: Mediciones de CentÍmetroS....................................................................46  Actividad #3: Medición de pulgadas .............................................................................49  Actividad #4: Mediciones en movimiento......................................................................51  Actividad #5: El efecto de la temperatura en la velocidad del sonido...........................58 Resumen ......................................................................................................................61 

    Capítulo 3: El Acelerómetro MEMS de dos ejes....................................................65 EL Acelerómetro MX2125 – como funciona .................................................................67 

     Actividad #1: Conexión y prueba de pendiente con el MX2125 ...................................68  Actividad #2: Mediciones en movimiento......................................................................71  Actividad #3: División proporcional y compensación de los valores de entrada ..........76  Actividad #4: Dividiendo en 1/100 g .............................................................................83 

     Actividad #5: Medición de Rotación Vertical de 360° ...................................................85  Actividad #6: Medición de la inclinación respecto a la Horizontal ................................98 Resumen ....................................................................................................................112 

    Capítulo 4: El Módulo de brújula Hitachi HM55B ................................................119 Interpretación de las mediciones de la brújula ...........................................................119 

     Actividad #1: Conexion y prueba del módulo de brújula.............................................120  Actividad #2: Calibración del módulo de brújula.........................................................128 

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    6/337

    Página ii · Sensores inteligentes y sus aplicaciones

     Actividad #3: Probando la Calibración........................................................................138  Actividad #4: Mejora de las mediciones de la brújula a través del promedio.............143  Actividad #5: Mediciones en movimiento ...................................................................148 Resumen ....................................................................................................................159 

    Capítulo 5: Fundamentos de juegos con el Acelerómetro................................ 167  Actividad #1: Desplegado de caracters gráficos PBASIC..........................................168 

     Actividad #2: Guardado y refrescado de fondo con la EEPROM...............................179  Actividad #3: Inclinando la gráfica de burbuja............................................................188  Actividad #4: Control de juego....................................................................................196 Resumen ....................................................................................................................205 

    Capítulo 6: Más Proyectos con el Acelerómetro ................................................ 211  Actividad #1: Medición de altura de eficios, árboles, Etc. ..........................................211  Actividad #2: Grabación y reproducción.....................................................................213  Actividad #3: Uso de la EEPROM para cambio de modos.........................................219  Actividad #4: Registro Remoto de la Aceleración ......................................................223  Actividad #5: Estudio de la aceleración en un auto de radio control ..........................230  Actividad #6: Estudio de la aceleración en un truco con patineta ..............................240  Actividad #7: Distancia de recorrido de una bicicleta.................................................247 Resumen ....................................................................................................................255 

    Capítulo 7: Graficos de Barra en LCD para Distancias e inclinaciones........... 261  Actividad #1: Intercambio de caracteres personalizados ...........................................261  Actividad #2: Graficos de Barras Horizontales para Distancia con Ping))) ................271  Actividad #3: Grafica de Barra de dos ejes para inclinación del Acelerómetro..........281 Resumen ....................................................................................................................294 

    Apéndice A: Tabla de caracteres ASCII............................................................... 303 

    Apéndice B: Documentación de la pantalla LCD Serial Parallax...................... 305 

    Apéndice C: Definiciones de Caracteres Hexadecimales.................................. 317 

    Apéndice D: Listado de Partes............................................................................. 321 

    Índice....................................................................................................................... 323 

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    7/337

    Prefacio · Página iii 

    Prefacio

    INTRODUCCIÓN Y NOTAS DEL AUTOR

    La primera vez que ví el término “sensor inteligente” fue en el texto Sensores Aplicados de Tracy Allen (entonces conocido como Mediciones Ambientales). De manera adecuada,

    Tracy aplicó este término al termómetro digital DS1620, el cual tiene elementoselectrónicos interconstruídos que simplifican las mediciones de temperatura delmicrocontrolador. Adicionalmente, podía recordar la configuración1  que recibía delmicrocontrolador y, más aún, funcionar independientemente como un controlador determostato.

    En contraste con los sensores inteligentes, los sensores primitivos son dispositivos omateriales que tienen alguna propiedad eléctrica que cambia con algún fenómeno físico.Un ejemplo de un sensor primitivo en ¿Qué es un Microcontrolador?  es lafotorresistencia de sulfato de cadmio. Su resistencia cambia con la intensidad de la luz.Con el programa y el circuito adecuados, es posible realizar mediciones de luz con unmicrocontrolador. Otros ejemplos de sensores primitivos comunes son los sensores detemperatura con salida de corriente/tensión, transductores de micrófonos y aún el potenciómetro, que es un sensor de posición rotacional.

    Dentro de cada sensor inteligente radica uno o más sensores primitivos y la circuitería desoporte. Lo que hace a un sensor inteligente “inteligente” es la electrónica interconstruídaadicional. Esta electrónica hace que estos sensores sean capaces de hacer una o más delas siguientes funciones:

    •  Pre-procesar los valores medidos en cantidades que posean algún significado.•  Comunicar las medidas con señales digitales y protocolos de comunicación.•  Orquestar las acciones de los sensores primitivos y sus circuitos para “tomar”

    mediciones.•  Tomar decisiones e iniciar alguna acción en base a las condiciones sensadas, de

    manera independiente al microcontrolador.•  Recordar la calibración o la configuración de sus parámetros.

    Durante mi primer encuentro con un sensor inteligente pensé: “¡Vaya! ¡Un kit completode estos sensores con un libro podría ser REALMENTE interesante! En verdad espero

    1 En ingles, setting  (N. del T)

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    8/337

    Página iv · Sensores inteligentes y sus aplicaciones

    que alguien haga un kit y un libro así pronto…” No tenía idea que “pronto” terminaríasiendo casi seis años después, y que “alguien” terminaría siendo yo. Y si alguno de mis jefes me hubiera dicho entonces que ese kit contendría un acelerómetro, un medidor dedistancias ultrasónico, una brújula digital y una pantalla o visor LCD2  serial paramediciones en movimiento, quizá la impresión me hubiera deshecho por completo.Puesto que solo recientemente fue posible para nosotros conjuntar un grupo de

    componentes tan sorprendente en un solo kit, debería decir que la espera valió la pena.

    En concordancia con el resto de los tutoriales Stamps en Class, este libro es una colecciónde actividades, algunas de las cuales cubren aspectos básicos, algunas otras cubren otrosaspectos más avanzados, y otras demuestran aplicaciones o arman bloques para varios productos e inventos. La primera mitad del libro presenta al sensor junto con algunasmediciones en movimiento desplegadas en una pantalla LCD. Luego, la segunda mitaddel libro tiene una cantidad considerable de aplicaciones para que usted las intente, talescomo juegos de video por inclinación, herramientas de medición personalizadas ydispositivos de diagnóstico para entusiastas del deporte y del bricolaje. El límite de páginas para este libro delimitado por nuestro empaque es 350 y fue difícil detenermeallí. Se pueden encontrar actividades adicionales de sensores inteligentes para el robotBoe-Bot en el foro de Stamps en Class en www.parallax.com.

    Si bien este libro cubre los fundamentos y demuestra algunas aplicaciones comoejemplos, solamente rasga la superficie de lo que usted puede hacer con estosdispositivos. El propósito principal de este libro es proveer algunos bloques deconstrucción e ideas para proyectos e inventos futuros. Por ejemplo, después decompletar el capítulo 3, nuestro revisor del libro Kris Magri puso su tarjeta deentrenamiento “Board of Education” con el acelerómetro y la LCD sobre el tablero de suauto, y ahora su auto tiene un medidor de aceleración en planos a un lado de suvelocímetro. Con algunas modificaciones al código, se pudo haber cambiado por unsistema de alerta de volcadura en autos de doble tracción. Después de revisar eldispositivo mecánico de vigilancia para predecir condiciones de avalancha en áreasmontañosas basado en la inclinación de la ladera, Ken Gracey desarrolló en una noche laversión digital con las mismas partes que tenía Kris en su auto.

    El acelerímetro en el tablero del auto y el medidor de riesgo de avalancha son dosejemplos únicos de las muchas aplicaciones, proyectos e inventos que pueden serinspirados por el kit de sensores inteligentes y su texto. Nos gustaría ver lo que usted

    2 Visor o pantalla de cristal líquido; de sus siglas en inglés, Liquid Cristal Display (N. del T.)

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    9/337

    Prefacio · Página v 

     puede hacer con su kit en el foro de Stamps en Class. No importa si piensa que su proyecto esta en onda, es único, poco original o lo que sea. Solo tome unos minutos para publicar las cosas que ha hecho con estos sensores inteligentes enhttp://forums.parallax.com/forums/ →  Stamps en Class. Asegúrese de incluir algunasfotos, una descripción breve y preferentemente un esquema y el programa PBASIC.

    Entonces, diviértase con este kit y este libro y nosotros veremos sus inventos en el forode Stamps en Class.

    IDEA GENERAL

    El kit de sensores inteligentes contiene cuatro dispositivos que, cuando se usan conBASIC Stamp y la Tarjeta Board of Education o la tarjeta HomeWork Board, pueden ser bloques de construcción para una variedad de inventos y proyectos de estudiantes. Heaquí una lista de los dispositivos:

    •  Pantalla LCD Serial Parallax 2x16•  Buscador de rangos ultrasónico Ping)))•  Acelerómetro de 2 ejes 2125

    •  Módulo de Brújula Hitachi HM55B

    Además de proveer tanto el equipo como la información de cómo se usa este para proyectos estudiantiles, este texto hace 2 énfasis mayores que proveen teoría, ejemplos ylos cálculos requeridos, lo cual puede ser usado para reforzar una variedad de conceptosde medición, de física/ingeniería y de trigonometría. Estos énfasis son:

    •  Técnicas matemáticas para escalar los valores de sensores primarios hastamediciones con significado propio dado que son expresadas en sistemas deunidades comunes.

    •  Interpretación de la proyección de los vectores de campos magnéticos y degravedad sobre ejes cartesianos.

    ANTES DE COMENZAR

    Para ejecutar los experimentos en este texto, necesitará tener su tarjeta Board ofEducation o bien HomeWork Board conectada a su computadora, el software Editor deBASIC Stamp instalado en su computadora y haber verificado que hay comunicaciónenre su computadora y su BASIC Stamp. Para instrucciones detalladas a este respecto,consulte ¿Qué es un Microcontrolador?, disponible como descarga gratuita en

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    10/337

    Página vi · Sensores inteligentes y sus aplicaciones

    www.parallax.com. También necesitará las partes contenidas en el kit de partes deSensores Inteligentes. Consulte el apéndice D para una lista completa del sistema,software y requerimientos de hardware.

    LA SERIE EDUCATIVA STAMPS EN CLASS

    La serie Stamps en Class de textos y kits provee recursos económicamente alcanzables para la educación en electrónica e ingeniería. Todos los libros listados están disponibles para descarga gratuita en www.parallax.com. Las versiones citadas a continuación seencontraban disponibles en el momento de este tiraje. Por favor, revise nuestros sitiosweb www.parallax.com  o www.stampinclass.com  para las últimas revisiones;continuamente nos esforzamos para mejorar nuestro programa educativo.

    Guías del Estudiante Stamps en Class:

    ¿Qué es un Microcrontolador? es el nivel recomendado de entrada a la serie educativaStamps en Class. En vez de ello, algunos estudiantes empiezan con Robótica con el Boe- Bot , también diseñado para principiantes.

    “¿Qué es un M icrocontrolador? ”, Guía del Estudiante, Version 2.2, Parallax

    Inc., 2004“Robotica con el Boe-Bot ”, Guía del Estudiante, Version 2.2, Parallax Inc., 2004

    Podrá entonces continuar con otros tópicos de proyectos educativos, o quizá prefieraexplorer nuestros kits Robóticos.

    Kits de Proyectos Educativos:

    Los siguientes textos y kits proven una variedad de actividades que son útiles paraaficionados al bricolaje, inventores y diseñadores de productos interesados en intentar unamplio espectro de proyectos:

    “Sensores in teli gentes y sus apli caciones ”, Guía del Estudiante, Version 1.0,

    Parallax Inc., 2006“Control de Procesos ”, Guía del Estudiante, Version 1.0, Parallax Inc., 2006

    “Sensores Apl icados ”, Guía del Estudiante, Version 1.3, Parallax Inc., 2003

    “Basicos Analógicos y Digital es ”, Guía del Estudiante, Version 1.3, Parallax Inc.,

    2004

    “Entendiendo las señales ”, Guía del Estudiante, Version 1.0, Parallax Inc., 2003

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    11/337

    Prefacio · Página vii 

    Kits Robóticos:

    Para adquirir experiencia con robótica, considere continuar con las siguientes Guías DelEstudiante Stamps en Class, cada una tiene un kit robot correspondiente:

    “Control remoto IR para el Boe-Bot ”, Guía del Estudiante, Version 1.1, Parallax

    Inc., 2004

    “Robotica Apli cada con el SumoBot ”, Guía del Estudiante, Version 1.0, ParallaxInc., 2005

    “Robótica avanzada con el Toddler ”, Guía del Estudiante, Version 1.2, Parallax

    Inc., 2003

    Referencias

    Este libro es una referencia esencial para todas las Guías del Estudiante Stamps en Class.Se presenta con información de la serie de modulos microcontroladores BASIC Stamp,nuestro Editor BASIC Stamp y nuestro lenguaje de programación PBASIC.

    “Manual BASIC Stamp ”, Version 2.2, Parallax Inc., 2005

    TRADUCCIONESLos textos educativos Parallax pueden ser traducidos a otros idiomas con nuestro permiso(correo electrónico: [email protected]). Si usted planea hacer alguna traducción por favor contáctenos y así podremos proveerle con los documentos MS Word en elformato adecuado, imágenes, etc. También mantenemos un grupo privado de discusión para traductores al cual quizá quiera unirse. Esto asegurará que se le mantiene al corrientecon nuestras frecuentes revisiones de texto.

    COLABORADORES ESPECIALES

    Parallax Inc. quiere dar reconocimiento a sus miembros del equipo de Educación: aladministrador del Proyecto Aristides Alvarez, el Ilustrador Técnico Rich Allred,Diseñadora Gráfica Larissa Crittenden, Revisor Técnico Kris Magri y la Editora TecnicaStephanie Lindsay. Adicionalmente, gracias a nuestro cliente Steve Nicholson por ponera prueba de usuario la mayoria de nuestras actividades. Como siempre, unagradecimiento especial a Ken Gracey, fundador del programa educativo Stamps en Classde Parallax Inc.

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    12/337

    Página viii · Sensores inteligentes y sus aplicaciones

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    13/337

      Cap 1: La pantalla LCD Serial Parallax · Página 1 

    Capítulo 1: La Pantalla LCD Serial Parallax

    El desplegado de información que un sensor envía en un formato comprensible tienemuchos usos y, en algunas aplicaciones, es todo lo que importa. El termómetro digital esun ejemplo común que puede ser encontrado en muchos hogares. Dentro de cada

    termómetro digital, hay una sonda de temperatura, un microcontrolador y una pantalla decristal líquido (LCD) para mostrar las mediciones. El microcontrolador BASIC Stamp yla pantalla LCD Serial Parallax mostrados en la Figura 1 – 1 son 2 de los elementos deltermómetro digital. Ese arreglo es excelente para mostrar mediciones en movimiento,haciendo posible desconectar su tarjeta de la PC, depurar esta terminal y probar en camposus sensores inteligentes.

    Figura 1-1: BASIC Stamp, Board of Education, y Pantalla LCD Serial Parallax

    Las actividades en este capítulo presentan algunos fundamentos de la pantalla LCDParallax, como conectarla al BASIC Stamp, encenderla y apagarla, colocar su cursor ydesplegar texto y dígitos. Los capítulos posteriores mostrarán cómo crear y animarcaracteres personalizados y mostrar mensajes con movimiento.

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    14/337

    Página 2 · Sensores Inteligentes y sus Aplicaciones

    LCDS EN PRODUCTOS

    Todos los productos mostrados en la Figura 1-2 tienen pantallas de cristal líquido. Sonfáciles de leer y los más pequeños consumo poca energía. Piense cuántos productos queusted posee tienen pantallas de cristal líquido. Al avanzar en las actividades de este texto, piense acerca los proyectos de BASIC Stamp, los prototipos y los inventos que tiene en progreso y cómo una pantalla LCD serial puede mejorarlos o ayudarle a completarlos.

    Figura 1-2: Ejemplos de Productos con pantallas LCD

    De arriba a abajo y de izquierda a derecha: teléfono celular, GPS portátil, calculadora,multímetro digital, reloj de oficina, computadora lap-top, osciloscopio, teléfono de oficina.

    EL LCD SERIAL PARALLAX - SU TERMINAL PORTÁTIL DEDEPURACIÓN

    Si ha trabajado con otros textos de la serie Stamps en Class, probablemente le es familiarlo valiosa que puede ser la herramienta de Terminal de Depuración. La Terminal deDepuración es una ventana que puede usar para que su computadora muestre mensajes

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    15/337

      Cap 1: La pantalla LCD Serial Parallax · Página 3 

    que recibe del BASIC Stamp. Es especialmente útil para mostrar mensajes de diagnósticoy valores de variables, haciendo más fácil aislar los problemas en un programa. Tambiénes útil para probar circuitos, sensores y más.

    La Terminal de Depuración tiene una desventaja y es la conexión por cable serial.Considere cuantas veces fue inconveniente tener su tarjeta conectada a la computadora

     para probar un sensor, o para descubrir qué estaba “viendo” su robot Boe-Bot con susdetectores infrarrojos en la otra habitación. Estas son situaciones que pueden serremediadas con la pantalla LCD Serial Parallax mostrada en la Figura 1-3. Una vez queconstruya un circuito sensor en su tarjeta Board of Education, puede usar una batería y su pantalla LCD Serial parallax para llevar el arreglo tan lejos de su terminal de programación como usted quiera, mientras que despliega las mediciones de su sensor yotra información de diagnóstico.

    Figura 1-3LCD Serial Parallax(2×16)

    La pantalla LCD Serial Parallax 2×16 tiene dos renglones de 16 caracteres cada uno paradesplegar mensajes. La pantalla es controlada por mensajes seriales desde el BASICStamp. El BASIC Stamp envía estos mensajes desde un solo pin de entrada/salida que estáconectado a la entrada serial de la LCD. Hay dos versiones, estándar y con luz de fondo:

    Version Parte Parallax # Estándar 27976Con Luz 27977

    Pantallas LCDs Seriales vs Paralelas

    La pantalla LCD paralela es probablemente el tipo más común de pantallas LCD. Requiereun mínimo de 6 pines de entrada/salida para ser controlada por el BASIC Stamp. También,

    si no está usando un BASIC Stamp 2p, 2pe o 2px, el código para controlar la pantalla tiendea ser más complejo que el código para una pantalla LCD serial.

    La pantalla LCD serial en realidad es una pantalla LCD con un microcontrolador extra. Estemicrocontrolador extra convierte los mensajes seriales del BASIC Stamp en mensajesparalelos que controlan la pantalla LCD paralela.

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    16/337

    Página 4 · Sensores Inteligentes y sus Aplicaciones

    ACTIVIDAD #1: CONEXIÓN Y PRUEBA DE LA PANTALLA LCD

    Además de las conexiones eléctricas y algunos programas PBASIC muy simples para probar la pantalla LCD Serial Parallax, esta actividad presenta el comando SEROUT. También demuestra cómo el comando DEBUG  es un caso especial de SEROUT. Esto esespecialmente útil al trabajar con su pantalla LCD serial porque puede tomar muchos delos argumentos de comando DEBUG y usarlos con el comando SEROUT para controlar y darformato a la información que muestre su pantalla LCD.

    Partes Requeridas

    (1) Pantalla LCD Serial Parallax 2×16(3) Segmentos de cable

    Además de la pantalla LCD Serial Parallax y los 3 cables, es especialmente importanteque tenga la documentación de la pantalla (incluida en el Apéndice B de este texto). Aúncuando son unas cuantas páginas, tienen una larga lista de valores que puede enviar a suLCD para hacer que ejecute funciones similares a las que ha usado en la Terminal deDepuración. Funciones como control de cursor, retorno de carro, retorno, limpiar pantalla, etc., todas tienen sus propios códigos especiales. Algunos de estos códigos son

    idénticos a los de la Terminal de Depuración; otros son bastante diferentes.

    Armando el circuito de la pantalla LCD Serial

    La conexión de la pantalla LCD Serial Parallax al BASIC Stamp es sorprendentementesimple, como se muestra en la Figura 1-4. Solo tiene que hacer tres conexiones: una parala alimentación, otra para tierra y una mas para la señal. El pin RX de la LCD es para laseñal y debe ser conectada al pin de entrada/salida del BASIC Stamp. En esta actividad,usaremos el pin P14. El pin de tierra GND de la pantalla debe ser conectado a VSS en latarjeta Board of Education, y el pin 5 V de la pantalla debe ser conectado a Vdd.

    PRECAUCIÓN: Una conexión errónea puede dañar esta pantalla LCD.

    La Revisión D y los modelos anteriores de esta pantalla LCD tienen 5 pines. Si Ud.tiene un modelo de 5 pines, por favor vea la Figura B-1 en la página 306 paraverificar cuáles son los pines correctos a usar en los circuitos de este libro.

    La versión de 5 pines no es compatible con los modelos Scott Edwards o MatrixOrbital. Si usted ha usado otras marcas de pantallas LCD seriales antes, note que estediagrama de pines es diferente. No cometa el error de usar el mismo alambrado que usópara otros modelos.

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    17/337

      Cap 1: La pantalla LCD Serial Parallax · Página 5 

    √  Desconecte la alimentación de energía de su tarjeta Board of Education.√  Conecte la terminal Vss de la tarjeta Board of Education al pin GND de la LCD.√  Conecte la terminal P14 de la tarjeta Board of Education al pin RX de la LCD,

    como se muestra en la Figura 1-4.√  Conecte la terminal Vdd de la tarjeta Board of Education al pin 5V de la LCD.√   No conecte la fuente de energía aún.

    Figura 1-4: Diagramas esquemático y de conexiones

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    18/337

    Página 6 · Sensores Inteligentes y sus Aplicaciones

    Probando la pantalla LCD Serial

    La LCD Serial Parallax tiene un modo de auto-prueba que puede usar para asegurarse queesta en condiciones de operar y que el contraste está ajustado adecuadamente. La Figura1-5 muestra la parte posterior del modulo de la LCD. Los interruptores SW1 y SW2 son para entrar en modo de auto-prueba y para ajustar la velocidad de transmisión baud, elcontraste se ajusta con un potenciómetro “INCREASE CONTRAST”.

    Figura 1-5Vista posteriordel Módulo de lapantalla LCD

    √  Su tarjeta Board of Education aún debe estar desenergizada.√  Encuentre los interruptores SW1 y SW2 en la parte baja del módulo de la

     pantalla LCD como se muestran en la Figura 1-6 .√  Coloque SW1 en posición off.√  Coloque SW2 en posición off.√  Re-energice su tarjeta nuevamente ahora.

    Figura 1-6Configurando losinterruptores develocidad Baud en elmodo de auto- prueba

    √  Cuando re-energice, la LCD debe mostrar el texto "Parallax, Inc." en la líneasuperior (Línea 0) y "www.parallax.com" en la línea inferior (Línea 1), como semuestra en la Figura 1-3. Si deja la pantalla en este modo por un rato, uncarácter personalizado bien conocido por los jugadores de video juegos de los80’s aparecerá comiéndose el texto.

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    19/337

      Cap 1: La pantalla LCD Serial Parallax · Página 7 

    √  Si la pantalla parece atenuada o en blanco, puede girar el potenciómetro de ajustede contraste mostrado en la Figura 1-7con un desarmador. Si los caracteres en la pantalla se ven bien, quizá no necesite ajustarlo. Si los caracteres están muyoscuros o como cuadros grises, el ajuste al potenciómetro podría ser de ayuda.

    √  Ajuste el potenciómetro de contraste si se requiere.

    Figura 1-7Potenciómetro de

     Ajuste de Contraste

    Ajustando la pantalla LCD para recibir Mensajes del BASIC Stamp

    La comunicación de datos en serie involucra una velocidad de transmisión baud . Esto esel número de bits por segundo (bps) que el emisor transmite y a los que el receptor tiene

    que estar listo para recibir los datos a la misma velocidad baud. En las actividades de estecapítulo, el BASIC Stamp será programado para enviar mensajes a la LCD a 9600 bps.Puede ajustar los mismos interruptores que usó para el modo auto-prueba ahora para fijarla velocidad baud.

    √  Desenergice la tarjeta Board of Education.√  Deje el interruptor SW1 en la posición OFF.√  Coloque el interruptor SW2 en la posición ON como se indica en la Figura 1-8.√  Energice la tarjeta nuevamente ahora.

    La pantalla se mantendrá en blanco hasta que programe el BASIC Stamp 2 para controlarla pantalla.

    Figura 1-8Velocidad Baud.Interruptores a9600 bps

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    20/337

    Página 8 · Sensores Inteligentes y sus Aplicaciones

    La Figura 1-9 muestra la tabla impresa en la parte posterior de la LCD Serial Parallax. Siquiere enviar mensajes a otras velocidad baud (2400 o 19,200 bps), use esta tabla y ajustelos interruptores SW1 y SW2 según sea el caso.

    Figura 1-9

    Configuración delos interruptores deVelocidad Baud

    ACTIVIDAD #2: DESPLIEGE DE MENSAJES SIMPLES

    Como se mencionó antes, los comandos que envían texto, números y elementos que danformato y códigos de control (caracteres de control) a la LCD serial están relacionadoscon el comando DEBUG. De hecho, el comando DEBUG es solo una versión especial de uncomando más general llamado SEROUT. El comando SEROUT tiene muchos usos, algunosson enviar mensajes a la LCD serial, a otros módulos BASIC Stamp y a computadoras.

    En esta actividad, usted programará el BASIC Stamp para hacer que la LCD desplieguemensajes de texto y valores numéricos. Como un primer paso en la animación, tambiénmodificará los programas para que el texto y los números parpadeen. El comando SEROUT será su herramienta para cumplir estas tareas. Usará el comando SEROUT  para enviartexto, números, códigos de control y elementos de formato a la pantalla LCD SerialParallax. Como pronto verá, el texto, los números y los formateadotes son idénticos a losque usa con el comando DEBUG. Los códigos de control serán un poco diferentes, perocon un poco de práctica serán tan fáciles de usar como CR , CLS, HOME, y CRSRXY. (Si noestá familiarizado con CRSRXY, podrá aprender más de él en el capítulo 6, Actividad # 1).

    La versión minima de la sintaxis del comando SEROUT es como sigue:

    SEROUT Pin, B audMode, [ DataItem, {DataItem , ...} ] 

    En nuestros programas, el argumento Pi n   tiene que ser 14 puesto que el pin RX (derecepción de datos) de la pantalla LCD's está conectada a pin de entrada/salida P14 delBASIC Stamp.

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    21/337

      Cap 1: La pantalla LCD Serial Parallax · Página 9 

    El argumento BaudMode  es un valor que le dice al BASIC Stamp qué tan rápido deberáenviar los datos en serie y también determina algunas de las características de la señalserial. El programa de ayuda del Editor del BASIC Stamp tiene tablas que dan losvalores de BaudMode  para velocidades baud y señales comunes. Al consultarlas, resultaque 84 es el valor del argumento de BaudMode  para 9600 bits por segundo (bps), palabras

    de 8 bits, sin paridad, señal verdadera. Esto es exactamente para lo que la LCD SerialParallax fue diseñada para recibir.

    Los argumentos DataItem   pueden ser escritos entre comillas como “Hola”. También pueden ser caracteres de control como CR , CLS, o valores, con o sin formateadotes comoDEC, BIN, y ?. Si se envía con formateadores, ellos son enviados como los caracteres querepresentan el valor. Si se envían sin formateadores, ellos serán enviados como valores,como 22, 12 y 13. Podemos enviar valores sin formato como estos a la LCD, los cualesserán interpretados como códigos de control.

    Más acerca SEROUT 

    Si usted desea intentar usar la terminal de Depuración con SEROUT  en vez de DEBUG,

    primero ábrala desde la barra de herramientas con Run →  Debug →  New. Luego,seleccione Run → Identify para ver qué puerto está usando su BASIC Stamp. Entonces, enla Terminal de Depuración, haga coincidir la designación del puerto de comunicación. Noteque también puede cambiar la velocidad Baud de la Terminal de Depuración así como otrosparámetros de comunicación.

    Hay mucho más que aprender acerca de SEROUT. Tanto el Manual del BASIC Stamp comola Guía de Sintaxis del Editor PBASIC dan explicación amplia acerca el comando SEROUT.El Manual del BASIC Stamp está disponible como descarga gratis en www.parallax.com → Downloads →  Documentation. Si su Editor de BASIC Stamp soporta PBASIC 2.5,probablemente ya tenga la Guía de Sintaxis de PBASIC. Para accesar, simplementeseleccione el índice desde el menú de ayuda del Editor de BASIC Stamp.

    Mensajes de Texto Simples y Códigos de Control

    A diferencia de la Terminal de Depuración, la LCD serial necesita ser encendida con uncomando desde el BASIC Stamp. La pantalla debe recibir el valor 22 desde el BASICStamp para activarse. Este es el comando PBASIC para enviarlo a la LCD serial:

    SEROUT 14, 84, [22]

    Usado así, 22 es un ejemplo de un código de control de la pantalla LCD. Otros códigosde control básicos son:

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    22/337

    Página 10 · Sensores Inteligentes y sus Aplicaciones

    •  12  limpia la pantalla. Nota: siempre debe seguir PAUSE 5 para dar tiempo a laLCD de limpiarse.

    •  13 es un retorno de carro; manda al cursor a la siguiente línea.•  21 apaga la pantalla LCD.•  22 enciende la pantalla LCD.

    Para encender y apagar la luz de fondo (solo pantallas LCD con Luz de fondo):

     Algunas pantallas de LCD tienen luz de fondo para poder leerlas cuando está oscuro. Siusted tiene esta versión de LCD Serial Parallax (parte # 27977), puede controlar la luz defondo con estos valores:

    •  17 para encender la luz de fondo.

    •  18 para apagar la luz de fondo.

    En PBASIC, CR   es una constante predefinida para el valor 13.  Siempre que en elcomando DEBUG use la constante CR , envía el valor 13 a la Terminal de Depuración. LaTerminal de Depuración mueve el cursor al principio de la siguiente línea siempre querecibe el valor 13. En este caso, los dos comandos a continuación son equivalentes:

    SEROUT 14, 84, ["Ve esto?", CR, "La LCD funciona!"]

    SEROUT 14, 84, ["Ve esto?", 13, "La LCD funciona!"]

    Si bien funciona para CR , no funciona para otras constantes PBASIC predefinidas. Por ejemplo, CLS, que es una constante predefinida para el número 0, no limpia la LCD. Elequivalente de CLS  de la LCD Serial Parallax es 12. HOME, que es una constantepredefinida para el valor 1, no manda el cursor al carácter en “casa” en la esquina superiorizquierda de la LCD. El código de control que lo hace para la LCD Serial Parallax es 128.

    Programa Ejemplo - LcdTestMessage.bs2

    √  Introduzca, salve y corra LcdTestMessage.bs2. Verifique que muestre el mensaje"See this?" en la línea 0 y "The LCD works!" en la línea 1 (ver Figura 1-10).

    ' Sensores inteligentes y sus Aplicaciones - LcdTestMessage.bs2' Muestra un mensaje de prueba en la LCD Serial Parallax.

    ' {$STAMP BS2} ' Dispositivo Objeto = BASIC Stamp 2' {$PBASIC 2.5} ' Lenguaje = PBASIC 2.5

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    23/337

      Cap 1: La pantalla LCD Serial Parallax · Página 11 

    SEROUT 14, 84, [22, 12] ' Inicializa la LCDPAUSE 5

    SEROUT 14, 84, ["See this?", 13, ' Mensaje de texto, retorno de carro"The LCD works!"] ' mas texto en la linea 1.

    END ' Fin del Programa

    Figura 1-10Desplegado de texto.

    Si la LCD no despliega adecuadamente: Revise  su cableado, su programa y losinterruptores en la parte posterior de la LCD. Desconecte y reconecte la batería de sutarjeta Board of Education. Vaya a las instrucciones que anteceden al programa y verifiqueque cada una haya sido completada correctamente.

    Su Turno - Códigos de Control para que el desplegado encienda y apague

    ¿Recuerda que 22 enciende la pantalla y que 21  la apaga? Puede usar estos códigos decontrol para hacer que el texto parpadee.

    √  Reemplace el comando END en LcdTestMessage.bs2 con este bloque de código.

    DO ' Inicia el bloque DO...LOOPPAUSE 600 ' Retraso de 6/10 de segundoSEROUT 14, 84, [22] ' Enciende la pantallaPAUSE 400 ' Retraso de 4/10 de segundoSEROUT 14, 84, [21] ' Apaga la pantalla

    LOOP ' Repite el bloque DO...LOOP

    √  Corra el programa modificado y note el efecto.

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    24/337

    Página 12 · Sensores Inteligentes y sus Aplicaciones

    Desplegando Números con Formateadores

    Muchos de los formateadores usados para mostrar números con la terminal deDepuración funcionan con la LCD Serial Parallax. El formateador DEC es probablementeel más útil, pero también puede usar DIG, REP, ASC, BIN, HEX, SDEC, y muchos de losotros. Por ejemplo, si quiere desplegar el valor decimal de una variable llamadacounter, puede usar comandos como este:

    SEROUT 14, 84, [DEC counter]

    Programa Ejemplo - LcdTestNumbers.bs2

    Además de demostrar que puede desplegar valores de variables en la LCD serial, este programa también muestra qué pasa si el programa manda más de 16 caracteres a la línea0. Los ajusta hacia la línea 1. También, después de llenar la línea 1 con otros 16caracteres, el texto se vuelve a ajustar hacia la línea 0.

    √  Introduzca, salve y corra LcdTestNumbers.bs2

    ' Sensores inteligentes y sus Aplicaciones - LcdTestNumbers.bs2' Muestra valores numericos con la LCD Serial Parallax.

    ' {$STAMP BS2} ' Dispositivo Objeto = BASIC Stamp 2' {$PBASIC 2.5} ' Lenguaje = PBASIC 2.5

    counter VAR Byte ' Variable del ciclo FOR...NEXT

    SEROUT 14, 84, [22, 12] ' Inicializa la LCDPAUSE 5 ' Retraso 5 ms para limpiar la pantalla

    FOR counter = 0 TO 12 ' Cuenta hasta 12; incrementa cada 1/2 s

    SEROUT 14, 84, [DEC counter, " "]PAUSE 500

    NEXT

    END ' Programa end

    √  Verifique que la pantalla se asemeje a la Figura 1-11.

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    25/337

      Cap 1: La pantalla LCD Serial Parallax · Página 13 

    Figura 1-11Despliegue de números

    Su Turno - Otros Formateadores

    √  Intente reemplazar DEC con DEC2 y observe qué pasa.√  Repita con el formateador ?.√  Si es necesario, busque estos comandos en el Manual BASIC Stamp o en la

    ayuda del Editor BASIC Stamp. Ensáyelos también en la Terminal deDepuración.

    √  ¿Cuáles son las similitudes y diferencias entre usar estos formateadores en la

    Terminal de Depuración y usarlos en la LCD Serial Parallax?

    Códigos de Control para Posicionar el Cursor

    Los códigos de control de la LCD son diferentes de los caracteres de control del comandoDEBUG. Por ejemplo, HOME y CRSRXY simplemente no tienen el mismo efecto que tienenen la Terminal de Depuración. Sin embargo, hay comandos de cursor para la LCD SerialParallax que puede usar para controlar las coordenadas X y Y del cursor. También puedeenviar el cursor a la posición superior izquierda o “posición de casa”. Revise el conjuntode comandos en la sección de la documentación de la LCD al principio de la página 312.Enlista todos los comandos de control válidos para la LCD; a continuación se indicanalgunos ejemplos de la lista que controlan la posición del cursor.

    •  8  Cursor a la izquierda•  9 Cursor a la derecha•  10  Cursor abajo (la linea inferior ajustara en la linea superior)•  128 to 143  Posiciona el cursor en la linea 0, caracteres 0 al 15•  148 to 163 Posiciona el cursor en la linea 1, caracteres 0 al 15

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    26/337

    Página 14 · Sensores Inteligentes y sus Aplicaciones

    Los valores 128 to 143 y 148 to 163 son particularmente útiles. La Figura 1-12 muestradonde cada valor posiciona al cursor. Puede usar valores de 128  to 143 para colocar alcursor en los caracteres 0 al 15 en la línea superior de la LCD (línea 0). De manerasemejante, puede usar valores de 148 to 163 para colocar el cursor en los caracteres 0 al15 de la línea inferior (línea 1).

    Figura 1-12Desplegado de Texto

    Luego de colocar el cursor, el siguiente caracter que envíe a la LCD será desplegado enesa posición. Por ejemplo, he aquí un comando SEROUT con un argumento Pace  opcionalconfigurado a 200 ms. Este comando mostrará los caracteres "L", "I", "N", "E", "-", y"0", igualmente espaciados a lo ancho de la línea superior, un caracter cada 200 ms.

    SEROUT 14, 84, 200, [128, "L",131, "I",134, "N",137, "E",140, "-",143, "0"]

    Si se despliegan caracteres múltiples después de dar una posición inicial, la LCD aúncambiará el cursor a la derecha después de cada caracter. Por ejemplo, también puedecolocar el cursor en el caracter 7 de la línea superior y entonces desplegar "ALL", luegomover el cursor al carácter 6 de la línea inferior y desplegar "DONE!", así:

    SEROUT 14, 84, [135, "ALL", 154, "DONE!"]

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    27/337

      Cap 1: La pantalla LCD Serial Parallax · Página 15 

    He aquí un bloque de código que hará que el texto "Line 1" resbale abajo a la lineainferior, de derecha a izquierda.

    FOR index = 9 TO 0' IMPORTANTE: Deje un espacio luego del 1 en "Line 1 "

    SEROUT 14, 84, [148 + index, "Line 1 "]PAUSE 100

    NEXT

    Borrando Caracteres

    Siempre puede barrar un caracter colocando el cursor donde lo desee y enviando elcaracter de espacio " " para sobreescribir lo que sea que allí haya. Es por esto que el texto"Line 1 " tiene un espacio después del caracter "1", para borrar los caracteres a su derechaconforme se mueve el texto a la izquierda.

    Programa Ejemplo - CursorPositions.bs2

    Este programa introduce unos trucos básicos para colocar el cursor.

    √  Revise CursorPositions.bs2 y trate de predecir lo que el programa hará que haga

    la LCD. También trate de predecir la secuencia y el tiempo.√  Introduzca, salve y corra CursorPositions.bs2.√  Compare el comportamiento de la LCD con sus predicciones.

    ' Sensores inteligentes y sus Aplicaciones - CursorPositions.bs2' Muestra valores numericos con la LCD Serial Parallax.

    ' {$STAMP BS2} ' Dispositivo Objeto = BASIC Stamp 2' {$PBASIC 2.5} ' Lenguaje = PBASIC 2.5

    index VAR Nib ' Variable del ciclo FOR...NEXTcharacter VAR Byte ' Guardado del caracteroffset VAR Byte ' Valor de compensacion

    SEROUT 14, 84, [22, 12] ' Inicializa la LCDPAUSE 500 ' Retraso de 1/2 segundo

    ' Muestra caracteres equidistantes en la linea 0 cada 200 ms.SEROUT 14, 84, 200, [128, "L",

    131, "I",134, "N",137, "E",140, "-",143, "1"]

    PAUSE 1000

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    28/337

    Página 16 · Sensores Inteligentes y sus Aplicaciones

    ' Cambia "Line 1" sobre la linea 1 de derecha a izq, luego izq a derecha.FOR index = 9 TO 0

    ' IMPORTANTE: Asegurese de que haya un espacio luego del 1 en "Line 1 ".SEROUT 14, 84, [148 + index, "Line 1 "]PAUSE 100

    NEXT

    FOR index = 0 TO 9' IMPORTANTE: Asegurese de que haya un espacio entre " y la letra L.SEROUT 14, 84, [148 + index, " Line 1"]PAUSE 250

    NEXT

    PAUSE 1000 ' 1 segundo de retraso

    ' Limpia LCD, luego muestra "ALL DONE" al centro y flashea 5 vecesSEROUT 14, 84, [12]: PAUSE 5 ' Limpia la LCDSEROUT 14, 84, [135, "ALL", 13, 154, "DONE!"]' "ALL" y "DONE" centrados

    FOR index = 1 TO 4 ' Flashea 5 vecesSEROUT 14, 84, 500, [21, 22]

    NEXTEND ' Fin del programa

    Su Turno - Mas sobre el PosicionadoDesplegados más elaborados se pueden beneficiar con ciclos y las tablas de valores. Heaquí un ejemplo del mensaje "T E S T" en un ciclo y con la ayuda de un par de comandosLOOKUP. Note que usted puede controlar la posición de cada caracter ajustando losvalores de offset en la segunda lista de valores del comando LOOKUP.

    PAUSE 1000SEROUT 14, 84, [12]: PAUSE 5 ' Limpia la pantallaSEROUT 14, 84, ["This is a", 13] ' Texto y CR

    FOR index = 0 TO 3 ' secuencia de CaracteresPAUSE 600LOOKUP index, ["T", "E", "S", "T"], characterLOOKUP index, [ 1, 5, 9, 13], offset

    SEROUT 14, 84, [(148 + offset), character]NEXT

    √  ¡Inténtelo!

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    29/337

      Cap 1: La pantalla LCD Serial Parallax · Página 17 

    ACTIVIDAD #3: APLICACION EN UN TIMER

    Esta actividad aplica las técnicas de la actividad # 2 a un timer de hora-minuto-segundo.

    Mostrando el Tiempo Transcurrido

    He aquí un bloque de código que enciende la LCD, la limpia y coloca algunos caracteres

    que no cambiarán. El resto del programa puede entonces desplegar los valores numéricoscambiantes de hora, minuto y segundo junto a los caracteres fijos "h", "m" y "s".

    SEROUT 14, 84, [22, 12] ' Enciende LCD y limpiaPAUSE 5 ' Pausa 5 ms para limpiar

    SEROUT 14, 84, ["Time Elapsed...", 13] ' Texto + retorno de carroSEROUT 14, 84, [" h m s"] ' Texto en la segunda linea

    Para esta aplicación, los códigos de control para colocación del cursor son particularmente útiles. Por ejemplo, el cursor puede ser colocado en la línea 1, caracter 0antes de enviar el valor decimal de 2 dígitos de las horas. El cursor puede ser movido a lalínea 1, caracter 5 para desplegar los minutos y luego movido a la línea 1, caracter 10 para desplegar los segundos.

    Un comando SEROUT que mustra los valores de las 3 variables, en posiciones correctas:

    SEROUT 14, 84, [ 148, DEC2 hours,153, DEC2 minutes,158, DEC2 seconds ]

    El siguiente programa ejemplo aplica este concepto con tan solo las habilidades detiempo del modulo BASIC Stamp. La precisión no es por mucho la de un reloj demuñeca digital; sin embargo es lo suficientemente Buena para mostrar como el desplegarla hora puede trabajar con el posicionado de caracteres. Para mayor precisión, intenteincorporar el circuito integrado de tiempo DS1302. Está disponible enwww.parallax.com, solo teclee DS1302 en el campo de búsqueda.

    Programa Ejemplo - LcdTimer.bs2

    Este programa ejemplo despliega las horas, los minutos y los segundos transcurridos conla LCD Serial Parallax. Apretando el botón de RESET en la tarjeta Board of Education,usted puede reiniciar el timer.

    √  Introduza, salvey corra LcdTimer.bs2.√  Verifique que la pantalla trabaja adecuadamente.

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    30/337

    Página 18 · Sensores Inteligentes y sus Aplicaciones

    ' Sensores inteligentes y sus Aplicaciones - LcdTimer.bs2' Muestra el tiempo transcurrido con BS2 y Parallax Serial LCD.

    ' {$STAMP BS2} ' Directiva de Stamp' {$PBASIC 2.5} ' Directiva de PBASIC

    hours VAR Byte ' Guarda horas

    minutes VAR Byte ' Guarda minutosseconds VAR Byte ' Guarda segundos

    SEROUT 14, 84, [22, 12] ' Inicia LCD y limpia pantallaPAUSE 5 ' Pausa 5 ms para limpiar

    SEROUT 14, 84, ["Time Elapsed...", 13] ' Texto + retorno de carroSEROUT 14, 84, [" h m s"] ' Texto en segunda linea

    DO ' Rutina Principal' Calcula horas, minutos, segundosIF seconds = 60 THEN seconds = 0: minutes = minutes + 1IF minutes = 60 THEN minutes = 0: hours = hours + 1IF hours = 24 THEN hours = 0

    ' Muestra digitos en LCD en Linea 1. Los valores 148, 153, 158 colocan' el cursor en los caracteres 0, 5, y 10 para los valores de tiempo.

    SEROUT 14, 84, [148, DEC2 hours,153, DEC2 minutes,158, DEC2 seconds ]

    PAUSE 991 ' Pausa + consumo ~ 1 segundoseconds = seconds + 1 ' Incrementa segundo contador

    LOOP ' Repite Rutina Principal

    Su Turno - Definiendo Códigos de Control con Constantes

    Hasta este punto, los códigos de control de la LCD han tenido valores decimales. Sinembargo, cuando está escribiendo o leyendo un programa largo, memorizar todos estosvalores de códigos de control puede ser tedioso. Es mejor declarar una constante paracada código de control al principio del programa. Luego, usar nombres de constantes envez de números. También puede hacer lo mismo con el valor de BaudMode   y luego

    también agregar una directiva PIN para el pin P14 de entrada/salida. He aquí un ejemplo:

    LcdPin PIN 14 ' pin de E/S de la LCD

    T9600 CON 84 ' True, 8-bits, no parity, 9600

    LcdCls CON 12 ' Form feed -> clear screenLcdCr CON 13 ' Retorno de CarroLcdOff CON 21 ' Apaga la pantalla

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    31/337

      Cap 1: La pantalla LCD Serial Parallax · Página 19 

    LcdOn CON 22 ' Enciende la pantallaLine0 CON 128 ' Linea 0, caracter 0Line1 CON 148 ' Linea 1, caracter 0

    Estas declaraciones harán a su código más fácil de entender, lo cual es especialmenteimportante si decide hacer cambios a su programa después de no haberlo visto por variosmeses. Por ejemplo, el primer comando SEROUT puede ser re-escrito así:

    SEROUT LcdPin, T9600, [LcdOn, LcdCls]

    El comando SEROUT en LcdTimer.bs2 que muestra los números en la línea 1 de la LCD puede ser re-escrito como sigue:

    SEROUT LcdPin, T9600, [(Line1 + 0), DEC2 hours,(Line1 + 5), DEC2 minutes,(Line1 + 10), DEC2 seconds]

    √  Salve LcdTimer.bs2 bajo un nuevo nombre.√  Agregue constantes descriptivas a su programa.√  Reemplace tantos números como pueda con nombres de constantes significativos.√  Corra su programa y corrija según lo requiera.

    ACTIVIDAD #4: CARACTERES PERSONALIZADOS Y ANIMACIÓN ENLCD

    Si Bien no toda imagen ahorra mil palabras, aún las que ahorra una frase o dos son útilescuando solo cuenta con 32 espacios de caracteres para trabajar. Un ejemplo de unaimagen útil es el cursor de reloj de arena que su computadora muestra para hacerle saberque el programa está ocupado. Este simple ícono animado trabaja mucho mayor que unmensaje en algún lugar de la pantalla diciendo “por favor espere, el programa estáocupado…”. Esta actividad usa un reloj de arena para introducir técnicas para definir,guardar, desplegar y animar caracteres personalizados.

    Caracteres Personalizados en la LCD Parallax

    La LCD Serial Parallax tiene espacio asignado para ocho caracteres mostrados en laFigura 1-13. Para desplegar el carácter personalizado 0, solo mande a la LCD el valor 0 con el comando SEROUT. De igual manera, para mostrar el caracter Personalizado 1, solomande un 1, para mostrar el caracter Personalizado 2, mande un 2, etc. Note que losCaracteres 0 y 1 están pre-configurados como la contradiagonal y el tilde. He aquí unejemplo de comando SEROUT que muestra ambos - SEROUT 14, 84, [0, 1].

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    32/337

    Página 20 · Sensores Inteligentes y sus Aplicaciones

    Figura 1-13: Caracteres personalizados predefinidos O (contradiagonal) y 1 (Tilde)

    Programa Ejemplo: PredfinedCustomCharacters.bs2

    Este ejemplo envía a la LCD serial los dos comandos para desplegar los caracteres personalizados 0 y 1, la contradiagonal "\"y el tilde"~".

    √  Introduzca y corra el programa y verifique que muestra la contradiagonal y eltilde.

    ' Sensores inteligentes y sus Aplicaciones - PredefinedCustomCharacters.bs2

    ' {$STAMP BS2}' {$PBASIC 2.5}

    SEROUT 14, 84, [22, 12] ' Inicializa la LCDPAUSE 5 ' 5 ms retardo para limpiar

    ' Muestra caracteres personalizados pre-definidos:"\" (caracter predefinido 0)' y "~" (caracter predefinido 1).

    SEROUT 14, 84, [0, 1]

    Definiendo (and Redefiniendo) Caracteres Personalizados

    Los caracteres personalizados de la LCD Serial Parallax están guardados en su RAM.Para definir uno de sus ocho caracteres personalizados, su commando SEROUT tiene quedecirle a la LCD cuál de los 8 caracteres personalizados está definiciendo y entoncesdescriber los estados de encendido/apagado de cada pixel en el caracter. Cada caráctertiene 40 pixeles, 8 pixeles de alto por 5 de ancho.

    La Figura 6-14 muestra los comandos de Definición que puede enviar a la LCD paradecirle cuál es el caracter que está a punto de definir. También lo puede ver así: paradecirle a la LCD cuál caracter está definiendo, envíele el valor del caracter personalizado,más 248. Por ejemplo, si usted quiere definir el caracter personalizado 0, mande 248, siquiere definir el caracter personalizado 1, mande 249, y así sucesivamente hasta 255 parael caracter personalizado 7.

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    33/337

      Cap 1: La pantalla LCD Serial Parallax · Página 21 

    Figura 1-14: Comandos de Definición de Caracteres personalizados

    Luego de enviar el código que le dice a la LCD cuál caracter personalizado va a definir,debe enviar 8 bytes que describan al caracter. La LCD usa los 5 bits más bajos de cada byte que recibe para describir cada una de las 8 líneas de 5 pixeles de ancho que hay en elcaracter. La Figura 1-15 muestra un ejemplo de la definición del caracter personalizado 0 para un reloj de arena que acaba de ser volteado.

    SEROUT 14, 84, [248,

    %00000,

      %11111,

      %11111,   %01110,

      %00100,

      %01010,

      %10001,

      %11111]  

    Figura 1-15 Redefiniendo el caracterpersonalizado 0

     Note como cada valor sucesivo en el comando SEROUT corresponde a una línea de pixelesen el caracter personalizado. Note también como los unos corresponde a pixeles negros ylos ceros corresponden a blancos.

    Las definiciones de caracteres personalizados SEROUT no son permanentes. Cadavez que la LCD es encendida y apagada los caracteres personalizados son borrados.Puesto que BASIC Stamp y la LCD comparten la misma batería, el programa BASIC Stamptambién reinicia cuando la energía es restituida. Es buena práctica definir los caracterespersonalizados que planea usar al principio del programa, de tal forma que BASIC Stamppueda definir los caracteres personalizados cada vez que la energía se conecte.

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    34/337

    Página 22 · Sensores Inteligentes y sus Aplicaciones

    Esta definición de caracter personalizado de un reloj de arena con sus 4 pixeles de arenaabajo usa 255 para decirle al LCD que lo haga para el Caracter personalizado 7. Tambiénusa una técnica para dibujar los caracteres con asteriscos en los comentarios a la derechadel comando SEROUT. Empieza SEROUT  con todos los valores binarios colocados en%00000 y entonces dibuja el caracter con asteriscos en el comentario a la derecha.Después de que se ve bien, usa los asteriscos para indicar cuáles ceros deben ser

    cambiados a unos.SEROUT 14, 84, [255, ' Define Caracter Personalizado 7

    %00000, '%11111, ' * * * * *%10001, ' * *%01010, ' * *%00100, ' *%01110, ' * * *%11111, ' * * * * *%11111] ' * * * * *

    Figura 1-16 muestra como los dos comandos SEROUT  recién discutidos redefinen loscaracteres personalizados de la LCD.

    Figura 1-16: After Defining Caracteres personalizados 0 y 7

    Algunas veces los caracteres personalizados se definen con valores hexadecimales.Incluso verá esto en programas ejemplos disponibles como descargas en la página delproducto LCD Serial Parallax en www.parallax.com. Para información de cómo trabaja ladefinición hexadecimal de caracteres, intente la actividad en el apéndice B.

    Con estas nuevas definiciones puede escribir un ciclo para hacer que el reloj de arena

    cambie de vacío a lleno, indicando que el usuario debe esperar. El siguiente bloqueDO...LOOP  hace esto primero colocando el cursor en la línea 0, caracter 5 en la LCD.Luego muestra el caracter personalizado 0, el reloj de arena recién volteado. Después deuna breve PAUSE, el programa envía el comando de espacio atrás (8) para que el cursorregrese al caracter 5. Luego, manda el caracter personalizado 7, el reloj de arena con laarena ya en su base. Repitiendo esta secuencia parece como si el reloj de arena ha sidovolteado, drenado, volteado otra vez, drenado nuevamente, etc.

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    35/337

      Cap 1: La pantalla LCD Serial Parallax · Página 23 

    DO

    SEROUT 14, 84, [133] ' Cursor -> Linea 0, charSEROUT 14, 84, [0] ' Muestra Caracter Personalizado 0PAUSE 1250 ' Retraso de 1.25 segundosSEROUT 14, 84, [8] ' Espacio atrasSEROUT 14, 84, [7] ' Muestra Caracter Personalizado 7

    PAUSE 1500 ' Retraso de 1.50 segundos

    LOOP

    Programa Ejemplo: Hourglass.bs2

    Este programa define y muestra los caracteres personalizados del reloj recién discutidos.

    √  Introduzca, salve y corra el programa.√  Verifique que despliega alternadamente los dos caracteres de reloj de arena en el

    sexto caracter de la línea superior de la LCD.

    ' -----[ Titulo ]-------------------------------------------------------------' Sensores inteligentes y sus Aplicaciones - Hourglass.bs2' Define y muestra caracteres personalizados.

    ' {$STAMP BS2} ' Dispositivo objeto = BASIC Stamp 2' {$PBASIC 2.5} ' Lenguaje = PBASIC 2.5' -----[ Inicializacion ]-----------------------------------------------------

    PAUSE 250 ' Estabiliza fuente de energia

    SEROUT 14, 84, [248, ' Define Caracter Personalizado 0%00000, '%11111, ' * * * * *%11111, ' * * * * *%01110, ' * * *%00100, ' *%01010, ' * *%10001, ' * *%11111] ' * * * * *

    SEROUT 14, 84, [255, ' Define Caracter Personalizado 7%00000, '%11111, ' * * * * *%10001, ' * *%01010, ' * *%00100, ' *%01110, ' * * *%11111, ' * * * * *%11111] ' * * * * *

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    36/337

    Página 24 · Sensores Inteligentes y sus Aplicaciones

    SEROUT 14, 84, [22, 12] ' Enciende pantalla y limpiaPAUSE 5 ' 5 ms retraso para limpiar

    ' -----[ Main Rutina ]-------------------------------------------------------

    DO

    SEROUT 14, 84, [133] ' Cursor -> Linea 0, charSEROUT 14, 84, [0] ' Muestra Caracter Pers. 0PAUSE 1250 ' Retraso de 1.25 secondsSEROUT 14, 84, [8] ' Espacio atrasSEROUT 14, 84, [7] ' Muestra Caracter Pers. 7PAUSE 1500 ' Retraso de 1.50 seconds

    LOOP

    Su Turno

    La Figura 1-17 muestra a los caracteres personalizados describiendo a los granos de arenaen el reloj moviéndose de arriba hacia abajo.

    Figura 1-17: Caracteres personalizados para reloj de arena animado

    √  Salve Hourglass.bs2 como HourGlassYourTurn.bs2.√  Expanda la rutina de Inicialización de tal forma que defina los ocho caracteres

     personalizados que se muestran en la Figura 1-17.√  Modifique la Rutina Principal de tal forma que de un efecto animado de los

    granos de arena cayendo de arriba a abajo.

    He aquí una Rutina principal que puede también intentar para animar los ocho caracteres

     personalizados una vez que los haya dado de alta en la sección de Inicialización:

    DO

    ' Coloca el cursor en el caracter 5, y muestra el Caracter personalizado 0.SEROUT 14, 84, 100, [133, 0]PAUSE 750 ' Retraso de 0.750 segundos

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    37/337

      Cap 1: La pantalla LCD Serial Parallax · Página 25 

    ' Espacio atras, Caracter Pers. 1, espacio atrás, Caracter Pers. 2, etc.' Ritmo opional en el argumento de 100 manda cada valor cada 1/10 segundo.SEROUT 14, 84, 100, [8, 1, 8, 2, 8, 3, 8, 4, 8, 5, 8, 6, 8, 7, 8]PAUSE 750

    LOOP

    √  ¡Inténtelo!

    Aún cuando la LCD solo guarda 8 caracteres personalizados a la vez, su programapuede guarder tantos como necesite. Recuerde, su programa puede redefinir loscaracteres personalizados en cualquier momento. Si su aplicación necesita 20 caracterespersonalizados, su programa PBASIC puede guardarlos y redefinirlos en la LCD según serequiera.

    Usted puede desplegar el reloj de arena con un solo caracter personalizado.   Laanimación del reloj de arena completa puede hacerse con un solo caracter personalizado.El truco está en redefinirlo cada vez que la pantalla es actualizada. 

    ACTIVIDAD #5: AVANCE DE TEXTO TRAVES DE LA PENTALLA

    Si su mensaje es muy ancho para desplegarse en los 16 caracteres de la pantalla, puedeser que funcione hacerlo avanzar a lo largo de la misma. La Figura 1-18 muestra unejemplo. Con el avance, el texto empieza en la parte de la derecha de la pantalla. Luego,el texto cambia a lo largo de la pantalla una letra a la vez.

    Figura 1-18Text Avanzando

    El código para el avance que se presenta en esta actividad es bastante diferente del programa ejemplo en la Actividad #2, el cual hizo que la línea 1 se moviera a lo ancho de

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    38/337

    Página 26 · Sensores Inteligentes y sus Aplicaciones

    la pantalla. La principal diferencia estriba en que en la Actividad # 2 el mensaje sedetenía en la parte izquierda. Cuando el mensaje es mas largo que la pantalla, el detenerseen la parte izquierda de la pantalla impide hacer visible el resto del mensaje.

    Para hacer que un texto avance sobre solo una línea, el programa tiene que empezar conla primera letra en el mensaje y desplegarla en la posición extrema derecha. Después de

    un corto retraso, el programa debe mover el cursor a la segunda posición (de derecha aizquierda) de caracteres de la pantalla, y allí imprimir tanto la primera como la segundaletra. Debe continuar este proceso hasta que el cursor llegue hasta la parte izquierda de la pantalla. Entonces, el cursor debe ser reposicionado repetidamente a la misma posiciónen la que porciones de texto de 16 caracteres puedan ser desplegadas, haciendo que elmensaje aparezca con corrimiento de derecha a izquierda, una letra a la vez.

    La técnica de programación para este proceso es llamada de ventana corrediza. Ademásde ser de utilidad para la LCD Parallax, esta técnica es lo que ve cuando sube y baja textoen programas como el Editor de BASIC Stamp o su explorador de Internet. También seusa en programas para transmitir y recibir paquetes TCP/IP. Cada vez que abre suexplorador de red, hay más de una instancia de código de ventana corrediza trabajando.

    Una Subrutina de Desplazamiento ConfigurableEl siguiente programa ejemplo presenta una subrutina que es conveniente para desplegaruna variedad de mensajes con desplazamiento con una cantidad mínima de esfuerzo.Todo lo que involucra es poner los mensajes en directivas DATA  precedidas por nombresSímbolos, establecer algunas variables y luego llamar la subrutina de desplazamiento.

    He aquí algunos ejemplos de directivas DATA .

    Message1 DATA @ 2, "Message "Message2 DATA "again"Message3 DATA "Larger message, going faster"Message4 DATA

    El primer mensaje de texto empieza en una dirección EEPROM igual al valor del símbolodel Message1, el cual ha sido establecido en 2 a través del argumento opcional @Address  de la directiva DATA . La dirección después del final del Message1 es la direcciónEEPROM 11. Esto es denotado por la etiqueta Message2, lo cual es también el inicio delSegundo mensaje. Puesto que usted puede establecer variables iguales a los valores de

     Message1  a Message4, es un sistema especialmente flexible para una variedad demensajes.

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    39/337

      Cap 1: La pantalla LCD Serial Parallax · Página 27 

    El siguiente programa ejemplo también tiene variables que usted puede establecer paraconfigurar diferentes posiciones de ventana, anchos e incrementos. Después de establecerestos valores de variables, usted puede entonces hacer una llamada a la subrutinaScroll_Message, y ella hará el resto del trabajo. He aquí un ejemplo de un bloque decódigo que hace que la subrutina despliegue todos los caracteres entre las etiquetas

     Message1 y Message2 en los cuatro caracteres centrales de la línea superior de la LCD.

    messageStart = Message1: messageEnd = message2windowLeft = 134: windowRight = 137increment = 1GOSUB Scroll_Message

    Las direcciones EEPROM inicial y final son guardadas en las variables messageStart y messageEnd . Las direcciones de los caracteres de la LCD inicial y final que definen la

    ventana son guardadas en windowLeft y windowRight. Finalmente pero no por último,la variable increment se establece al número de caracteres que el texto mueve cada vezque cambia. Con todos esos valores establecidos, la subrutina Scroll_Message  tienetodo lo que necesita para hacer su trabajo.

    Hay tres ejemplos más en la rutina principal del siguiente programa. No todos los

    ejemplos asignan valores a todas las variables. Algunos de los ejemplos solo establecenalgunos valores porque son valores que se reciclan y que fueron asignados antes de la previa llamada de subrutina. Por ejemplo, el valor de la variable increment  fueestablecido en 1 antes de la primera llamada de subrutina. Puesto que la subrutinaScroll_Message no hace cambios a esa variable, el valor 1 no necesita ser reasignadoantes de llamar a la subrutina Scroll_Message nuevamente.

    ' Cambia los valores de varias variables de configuracion' y demuestra el efecto sobre la pantalla con cada cambio.windowLeft = 131: windowRight = 140GOSUB Scroll_Message

    He aquí el ultimo ejemplo en la Rutina Principal. Note que re is the last ejemplo en theMain Routine. Note que se encarga de buena parte de la segunda linea y avanza dos

    caracteres a la vez:messageStart = Message3: messageEnd = message4windowLeft = 150: windowRight = 161increment = 2GOSUB Scroll_Message

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    40/337

    Página 28 · Sensores Inteligentes y sus Aplicaciones

    Programa Ejemplo - TestScrollingSubroutine.bs2

    √  Revise los bloques de código en la Rutina Principal del programa y prediga quétan ancha sera la ventana de avance, qué texto sera desplegado y cuántoscaracteres cambiará el mensaje a la vez.

    √  Introduzca, salve y corra TestScrollingSubroutine.bs2.√  Compare sus predicciones a lo que realmente ocurrio y reconcilie las diferencias.

    ' -----[ Titulo ]-------------------------------------------------------------' Sensores inteligentes y sus Aplicaciones - TestScrollingSubroutine.bs2' Avanza un mensaje de texto a traves de una ventana de 4 caracteres en la LCD

    ' {$STAMP BS2} ' Directiva BASIC Stamp' {$PBASIC 2.5} ' Directiva PBASIC

    ' -----[ directivas DATA]----------------------------------------------------

    Message1 DATA @ 2, "Message "Message2 DATA "again"Message3 DATA "Larger message, going faster..."Message4 DATA' -----[ Definiciones E/S]----------------------------------------------------

    LcdPin PIN 14 ' Pin de E/S de la LCD

    ' -----[ Constantes ]---------------------------------------------------------

    T9600 CON 84 ' True, 8-bits, no parity, 9600LcdCls CON 12 ' Form feed -> limpia pantallaLcdCr CON 13 ' Retorno de carroLcdOff CON 21 ' Apaga la pantallaLcdOn CON 22 ' Enciende la pantallaLine0 CON 128 ' Linea 0, caracter 0Line1 CON 148 ' Linea 1, caracter 0

    TimeOn CON 250 ' Caracter de tiempo de encendidoTimeOff CON 0 ' Caracter de tiempo de atenuac.

    ' -----[ Variables ]----------------------------------------------------------

    ' Variables funcionales para la subrutina Scroll_Message.

    cursorStart VAR Byte ' Posicion del primer caracterhead VAR Byte ' Inicio del texto desplegadotail VAR Byte ' Fin del texto desplegadopointer VAR Byte ' apuntador de direccion EEPROMcharacter VAR Byte ' Guarda un caracter

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    41/337

      Cap 1: La pantalla LCD Serial Parallax · Página 29 

    ' Variables de configuracion para la subrutina Scroll_Message.

    increment VAR Nib ' Caracteres por cambiarwindowRight VAR Byte ' Direccion del caracter de

    ' extrema derechawindowLeft VAR Byte ' Direccion del caracter de

    ' extrema izquierdamessageStart VAR Byte ' Direccion EEPROM para inicio

    messageEnd VAR Byte ' Direccion EEPROM para fin

    ' -----[ Inicializacion ]-----------------------------------------------------SEROUT LcdPin, T9600, [LcdOn, LcdCls] ' Enciende y limpia pantallaPAUSE 5 ' Retraso 5 ms

    ' -----[ Rutina Principal]----------------------------------------------------

    ' Establece valores de variables de configuracion, luego llama Scroll_Message.

    messageStart = Message1: messageEnd = message2windowLeft = 134: windowRight = 137increment = 1GOSUB Scroll_Message

    ' Cambia los valores de varias variables de configuracion y demuestra el' efecto en la pantalla con cada cambio.

    windowLeft = 131: windowRight = 140GOSUB Scroll_Message

    messageStart = Message1: messageEnd = message3GOSUB Scroll_Message

    messageStart = Message3: messageEnd = message4windowLeft = 150: windowRight = 161increment = 2GOSUB Scroll_Message

    END

    ' -----[ Subrutina - Scroll_Message ]----------------------------------------

    Scroll_Message:

    cursorStart = windowRight - increment + 1 ' Caracter ExtremaDer en ventanhead = 0 ' Inicializa head y tailtail = increment - 1 ' del mensaje

    ' ciclo de avance

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    42/337

    Página 30 · Sensores Inteligentes y sus Aplicaciones

    DO WHILE tail window width.IF tail > (windowRight - windowLeft) THEN

    head = head + incrementELSE

    head = 0ENDIF

    ciclo ' Repite ciclo de avance

    RETURN

    La ventana corrediza de la subrutina Scroll_Message

    Digamos que la ventana de texto en movimiento es de 4 caracteres de ancho en la líneasuperior porque hay otros mensajes que deben ser desplegados todo el tiempo en la LCD.El asunto ahora es recorrer el texto en la ventana pequeña sin sobreescribir cualquiera delos caracteres desplegados fuera de ella.

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    43/337

      Cap 1: La pantalla LCD Serial Parallax · Página 31 

    La Figura 1-19 muestra el arreglo y Paso 0 de una ventana de 4 caracteres. En el paso deconfiguración, nada se despliega en la ventana. Luego, el paso 0 coloca el cursor en la posición 137 y despliega el carácter 0, esto es, la letra "M".

    Figura 1-19: Cambiando Texto a través de la ventana, paso de Configuración y Paso 0

    √  La Figura 1-20 muestra los pasos 1 y 2. Después de esperar un momento paraque la "M" sea visible, el cursor tiene que ser colocado en la posición 136 yluego los caracteres 0 y 1, "Me", podrán ser desplegados. Luego, el cursor semueve a la posición 135 y desplegar los caracteres 0 al 2, "Mes".

    Figura 1-20: Cambiando Texto a través de la ventana, Pasos 1 y 2

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    44/337

    Página 32 · Sensores Inteligentes y sus Aplicaciones

    √  La Figura 1-21 muestra los Pasos 3 y 4. El cursor moviéndose a la posición 134y desplegando los caracteres 0 al 3, "Mess", describe aún la misma secuencia, pero cuando la "M" abandona la ventana, la secuencia tiene que cambiar. El punto de inicio del cursor, o apuntador de inicio, no puede avanzar a laizquierda; debe permanecer en la posición 134. También, en vez de desplegar loscaracteres 0 al 3, los caracteres 1 al 4, "essa", deben ser desplegados.

    Figura 1-21: Cambiando Texto a través de la ventana, Pasos 3 y 4

    √  La posición de inicio del cursor tiene que mantenerse en 134 mientras que loscaracteres de head (punta) y tail (cola) continúan avanzado: 2 al 5 - "ssag", 3 al 6- "sage". La ventana se mantiene corriendo y la Figura 1-22 muestra del penúltimo paso de los caracteres 6 al 9 - "e" seguida por tres espacios, yfinalmen te el último paso, 7 al 10 – cuatro caracteres de espacio.

    Figura 1-22: Cambiando Texto a través de la ventana, Pasos 9 y 10

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    45/337

      Cap 1: La pantalla LCD Serial Parallax · Página 33 

    TestScrollingSubroutine.bs2 usa las variables mostradas en la Figura 1-23 para la ventanacorrediza. La variable cursorStart guarda la posición en la que el cursor es colocadocada momento antes de que empiece a escribir las letras en el mensaje. En la figura,cursorStart guarda el valor 135. La siguiente vez que el texto cambia a la izquierda,guardará 134. Dos variables, head  y tail, guardan las direcciones de principio y fin deltexto que entrarán en la ventana de mensaje. En la figura, head  guarda 0, y tail guarda

    2. La variable pointer se usará por el comando READ para obtener la letra adecuada, yla variable character guardará la letra que el comando READ recupere de la EEPROM.

    Figura 1-23: Variables de TestScrollingRoutine.bs2.

    En la Figura 1-23, pointer está apuntando a la letra 1 en la secuencia, que es "e". Unciclo FOR ... NEXT usa la variable pointer para leer cada caracter en la EEPROM, desdehead  hasta tail y entonces despliega cada uno con el comando SEROUT. Cada vez que eltexto cambie a la derecha, el nuevo texto debe sobreescribir el texto anterior con elmismo ciclo head  hasta tail.

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    46/337

    Página 34 · Sensores Inteligentes y sus Aplicaciones

    RESUMEN

    La pantalla de cristal líquido (LCD) es usada en una tremenda variedad de productos.Una pantalla de caracteres simple como la LCD serial Parallax 2X16 puede substituir lascaracterísticas de la Terminal de Depuración, lo cual es especialmente util cuando la prueba en campo de su proyecto no está dentro del alcance de un cable serial y una PC.

    La LCD Serial Parallax tiene un potenciómetro de ajuste de contraste atrás, junto con dosinterruptores que puede usar para seleccionar de entre 3 diferentes velocidades baud y unmodo de auto-prueba. Hay 3 pins en la parte posterior de la LCD Serial Parallax, ya quese requieren solo 3 conexiones para operarla: Vdd, RX, y Vss.

    La LCD Serial Parallax tiene un conjunto extensor de commandos y una lista completa deestos commandos se incluye en la Documentación del Producto LCD Serial Parallax(Apéndice B). Este capítulo presenta comandos para encender y apagar la pantalla,limpiarla, colocar el cursor, controlar el encendido de la luz de fondo para el modelo conluz de fondo y para desplegar caracteres.

    La LCD Serial Parallax depende de mensajes seriales emitidos desde BASIC Stamp yque son programados dentro de ella a través del comando SEROUT de PBASIC. Muchasde las características del comando DEBUG pueden ser usadas con el commando SEROUT,incluyendo texto entre comillas y formateadotes como DEC, BIN, DIG, etc. Todos estostienen resultados en la LCD que son similares a los de la Terminal de Depuración. Loscódigos de control de la LCD son diferentes y más numerosos que los que se usan con laTerminal de Depuración. En vez de intentar usar CR , CLS, CRSRXY, etc, use los valores decódigos de control listados en el conjunto de commandos de la LCD. También es buenaidea hacer constanes para estos valores, tales como LcdCls CON 12, LcdClr CON 13,LcdOn CON 22, LcdOff CON 21, y así sucesivamente.

    La LCD Serial Parallax tiene 8 caracteres personalizados, del 0 al 7. Usted puededesplegar cualquiera de ellos al enviar su valor a la LCD. Por ejemplo, SEROUT 14, 84,[3] hace que la LCD escriba el Caracter personalizado 3. Los comandos para definir loscaracteres personalizados van del 248 al 255. Enviar un 248  instruye a la LCD paradefinir el carácter personalizado 0, 249 define el Caracter Personalizado 1, etc., hasta el255, lo cual define el Caracter personalizado 7. Después de enviar un comando paradefinir un caracter personalizado, los siguientes 8 bytes son valores binarios, cuyos 5 bits

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    47/337

      Cap 1: La pantalla LCD Serial Parallax · Página 35 

    mas bajos definen los pixeles en una determinada línea de pixeles. Un 1 hace al píxelnegro, un 0 lo hace blanco.

    Este capítulo también presenta una subrutina para que avance texto de derecha aizquierda dentro de una ventana. Esta subrutina busca direcciones de inicio y paro quecorresponden a etiquetas de direcciones Símbolo  que preceden a directivas DATA   que

    contienen el texto a ser desplegado. La manera en que se despliega el texto de lasubrutina esta definido por 5 variables: messageStart, messageEnd , windowLeft, windowRight, e increment. Las variables messageStart y messageEnd  guardan las

    direcciones EEPROM de inicio y fin del texto a ser desplegado. Las variables windowLeft y windowRight guardan las direcciones de caracteres en la LCD de inicio y

    fin que definen la ventana, la variable increment guarda cuántos caracteres a la vez secambian de derecha a izquierda.

    Preguntas

    1.  Mencione 3 dispositivos que usa todos los días que despliegan información conla LCD.

    2.  ¿Qué significan el 2 y el 16 en el término 2x16 LCD?3.  ¿Qué comando usa para enviar información a la LCD Serial Parallax?4.  ¿De qué manera son diferentes los comandos DEBUG y SEROUT?5.  ¿En qué posición deben estar los interruptores SW1 y SW2 si necesita escribir

    un programa que envíe un mensaje a la LCD Serial Parallax a una velocidad de19,200 bps?

    6.  ¿Qué componente ajusta para cambiar el contraste de la pantalla LCD?7.  ¿Qué comando SEROUT limpia la pantalla?8.  ¿Qué consideraciones especiales hay que tomar en cuenta al usar los códigos de

    control CR , CLS, y HOME del comando DEBUG con la LCD Serial Parallax?9.  ¿Cuáles son los 3 argumentos que necesita para un comando SEROUT mínimo?10.  ¿Cómo puede hacer que un texto desplegado en la LCD se encienda y apague

    intermitentemente?

    11.  ¿Qué rangos de valores puede enviar a la LCD para colocar el cursor?12.  ¿Qué carácter reside en el carácter personalizado 1 por definición?13.  ¿Cómo despliega un caracter personalizado después de que ha sido definido?14.  ¿Cuáles son algunas aplicaciones de la ventana corrediza?

  • 8/18/2019 Sensores Inteligentes y Sus Aplicaciones - Guia Del Estudiante

    48/337

    Página 36 · Sensores Inteligentes y sus Aplicaciones

    Ejercicios

    1.  Haga que el mensaje "Hola" aparezca en la terminal de Depuración sin usar elcomando DEBUG.

    2.  Despliegue el mensaje "Hola" centrado en la línea superior de la LCD.3.  Haga que el mensaje "Hola" encienda y apague alternadamente cada segundo.4.  Escriba un comando para hacer que el mensaje "Inicio" aparezca al principio de

    la línea 0 y el mensaje "Final" aparezca en el lado derecho de la línea 1.5.  Escriba un comando SEROUT  para enviar mensajes a