LCD-bitbloq2-destacada

¿Qué es una pantalla LCD?

Una pantalla LCD o Liquid Cristal Display es un tipo de pantalla en la que, al programarla, se activan una serie de píxeles para representar letras, números u otras formas. Existen muchos tipos de pantallas LCD y se usan en una gran cantidad de aparatos como despertadores, indicadores de estaciones, relojes, calculadoras, etc.

Cómo conectar la pantalla LCD

El LCD es un componente un poco especial ya que tiene sus cuatro cables separados. Dale la vuelta a tu pantalla LCD y asegúrate que el interruptor está en la posición IIC (también conocido como protocolo I2C), verás una pequeña placa o circuito donde te indica el nombre de cada conexión. Dos de los cables son la tensión VCC (que puedes conectar a cualquier pin rojo de tu placa) y la masa o tierra GND (que también puedes conectar a cualquier pin negro). Los otros dos, SDA y SCL deberás conectarlos siempre a los pines azules de señal A4 y A5 respectivamente.

Conecciones

OJO

IMPORTANTE: Puede que, tras programar tu pantalla, ésta no muestre ningún carácter o éstos no se visualicen bien. Asegúrate de que el interruptor situado en la parte trasera de tu LCD está en la posición IIC y vuelve a cargar el programa. En caso de que los caracteres no se visualicen con suficiente claridad, puedes ajustar el contraste de la pantalla girando con un destornillador el pequeño potenciómetro situado al lado del interruptor.

1, 2, 1, 2, probando, probando… Mandando mensajes por pantalla

En la pestaña Componentes encontrarás distintos bloques para configurar el LCD. Escribiremos nuestro nombre, para ello utiliza el bloque Escribir en el LCD.

programacion_hola_mundo_1

Como puedes comprobar, el programa escribe tu nombre varias veces a lo largo de toda la pantalla. Esto puede ser útil en ocasiones, pero realmente nosotros queremos escribir nuestro nombre una sola vez. Para ello debemos decirle en qué posición del LCD queremos empezar a escribir utilizando el bloque Escribir en el LCD empezando en la posición.

programacion_hola_mundo_1_2

Las pantallas LCD suelen estar divididas en celdillas en donde se representa un carácter como un número o letra. A mayor número de celdillas, mayor número de caracteres podrás representar. En este momento, Bitbloq 2 soporta pantallas de mínimo 16 columnas por 2 filas utilizando el protocolo de doble canal o IIC. Es importante que tengas en cuenta una cosa, las filas y columnas de tu LCD no empiezan por el número 1, sino por el 0. De esta forma la primera posición o celdilla no es la columna->1 y la fila->1, sino la columna->0 y fila->0.

LCD-2-lineas

Prueba a cambiar la posición de tu nombre a lo largo de la pantalla. ¿Qué ocurre cuando el mensaje no cabe en una sola línea?

Dime qué vales. Mostrando el valor de un sensor.

Vamos a mostrar a través del LCD el valor del sensor de luz. Para ello debemos utilizar el bloque avanzado del LCD. Lo encontrarás en Componentes->Avanzados.

programacion_sensor_luz_lcd_2

En primer lugar agrega el bloque Borrar LCD para evitar que el LCD sobrescriba valores anteriores de tu sensor y salgan cifras incorrectas. A continuación, puedes poner en la primera fila un texto para aclarar qué se está mostrando. En la segunda fila utiliza el bloque avanzado para mostrar el valor del sensor de luz. Pon un bloque esperar para controlar la frecuencia a la que se muestra cada nuevo valor.

Aún hay más

    A continuación te proponemos un par de ideas para seguir practicando:

  • Modifica el programa anterior para que se encienda la iluminación del LCD cuando sea de noche, y se apague cuando sea de día. Utiliza el bloque Encender la luz del LCD.
  • Utilizando el sensor de ultrasonidos, haz un medidor de distancia que muestre por el LCD la distancia en centímetros a un objeto.
  • Utiliza un pulsador para hacer un contador que muestre por el LCD cuántas veces se ha pulsado. Puedes utilizarlo para contar cualquier cosa, como personas u objetos.

Ahora que ya sabes cómo utilizar tu LCD seguro que se te ocurren un montón de ideas y proyectos con los que utilizarlo. Siempre que necesites que tu programa se comunique con quién lo está utilizando, el LCD será tu mejor aliado.

7 comentarios

  1. Hola, haciendo pruebas con el módulo LCD he visto que cuando lo programo con bitbloq funciona perfectamente, sijn embargo cuando el mismo programa lo exporto a Arduino solo me muestra la primera letra en cada linea. Utilizo la placa Freaduino. Por lo menos aparentemeste los dos sketch son iguales, el código en bitbloq y en el IDE de arduino.

    1. Julián Caro

      Buenas tardes Javier

      Es cierto, es un bug que hemos detectado hace un par de semanas y que está relacionado con una supuesta incompatibilidad de la librería liquidcristal de bq y la librería propia de Arduino.

      Al tener la última versión de Bitbloq una versión anterior de dicha librería el problema no se produce.

      El equipo de Bitbloq está trabajando para resolver dicho problema lo más pronto posible, mientras tanto puedo sugerirte como solución intermedia que utilices la propia IDE de Arduino incluida en Bitbloq.

      Puedes consultar cómo utilizarla en el siguiente enlace:
      http://diwo.bq.com/bitbloq-para-aprender-arduino/

      1. Gracias. Por lo que entiendo con una version mas antigua del IDE de arduino si funcionaría, por ejemplo la 1.6.5 ¿o cual?

  2. mi LCD utiliza I2C, tiene como dirección 0X27 y no reacciona cuando lo intento programar con Bitbloq.
    ¿cómo puedo cambiar la dirección a la que se dirige Bitbloq para controlar el LCD?

    1. Julián Caro

      Hola Xavi, en principio puedes cambiar la dirección a la que se dirige la librería modificando el archivo “MCP23008.h” que encontraras dentro de tu carpeta Arduino->Libraries->BitbloqLiquidCrystal.

      Dentro de archivo modifica la dirección “#define MCP23008_ADDRESS 0x20″ por “#define MCP23008_ADDRESS 0x27″ y guardalo. Con ésto debería ser suficiente.

      Un saludo

  3. Hola:
    Estoy programando una LCD en un arduino UNO. Desde el entorno Arduino funciona correctamente. Intento desde Bitbloq y no se lee nada. Modifique la dirección 0x20 y la cambie por 0x27 según indicas en el comentario anterior y sigue sin funcionar. Alguna idea para probar?
    Gracias

    1. Enrique Heredia

      Hola Luis,
      ¿Has elegido la placa correctamente? ¿Has conectado la LCD en los pines correspondientes para la comunicación I2C (supongo que tu LCD tiene I2C)?
      Necesitaría más información para poder descartar algunos problemas típicos.
      Desde el equipo de Bitbloq me comentan que ahora mismo no tienen ningún problema detectado con la LCD, de todas formas aquí tienes algunos hilos del foro de Bitbloq con problemas de usuarios con la LCD:

      http://bitbloq.bq.com/#/help/forum/forum_category_faqs/579b2fd268668c690041707c
      http://bitbloq.bq.com/#/help/forum/forum_category_faqs/579b2f3e68668c6900417072
      http://bitbloq.bq.com/#/help/forum/forum_category_faqs/579b2fe110ef1873003b189c
      Un saludo

Los comentarios están cerrados.