Chess: Tinkercad LCD

Vamos a aprender Conectar Arduino con una pantalla LCD, y programaremos un reloj de Ajedrez. Para ello, usaremos el simulador de TinkerCAD.

  1. Qué es un LCD
  2. Control electrónico con IC2
  3. Simulación con Tinkercad
  4. LCD Shield con botonera
  5. Caracter personalizado
  6. Reloj de ajedrez
    1. Programa básico
    2. Funcionalidades adicionales

Qué es un LCD

Una pantalla LCD (Liquid Cristal Display) es una de las formas más sencillas y baratas de dotar de un display a un autómata. En este caso nuestro Reloj de Ajedrez.

  • Un panel LCD está compuesto por una capa de cristales líquidos en una matriz de celdillas pequeñas, a su vez hay una matriz de electrodos controlados independientemente para cada una de las celdas y este conjunto se encuentra entre dos placas de vidrio con filtros polarizados, con una diferencia de orientación entre ambos de 90°.
    • El filtro externo se encuentra coloreado con los colores básicos (rojo, verde y azul), alineados sobre cada terna de partículas de cristal líquido presentes en el panel.
    • Cada uno de estos grupos de color sirve para representar un punto de color en la pantalla. Los filtros se sitúan en la parte externa de este panel y tras éste se sitúa la fuente de luz, actualmente generada por lámparas fluorescentes, situadas tras una fina capa de material reflectante con la finalidad de distribuir la luz uniformemente por toda la parte posterior del panel.

Control electrónico con IC2

Uno de los controladores LCD más utilizados para es el Hitachi HD44780, que permite hasta 80 caracteres alfanuméricos y símbolos.

La pantalla tiene retroiluminación azul o verde, y su contraste se varía con un potenciómetro.

Como requiere utilizar muchos cables para la conexión (lo que desperdicia muchos recursos), se usa un controlador que accede al LCD a través de un bus IC2 (Inter-Integrated Circuit). Este bus sólo requiere dos cables para su funcionameinto: Uno para la señal de reloj (SCK) y otro para el envío de datos (SDA).

El bus IC2 tiene asociados los pines en Arduino UNO al A4 (SDS) y al A5 (SCK).

Es necesaria la librería LiquidCrystal_IC2 (disponible aquí).

Simulación con Tinkercad

Crea un circuito nuevo en Tinkercad que tenga los siguientes componentes:

  • Componentes de salida: LCD 16×2 (IC2).
  • Microcontrolador: Arduino Uno R3.

Aquí tienes las conexiones (como hemos comentado antes, los datos van al pin A4, y la señal de reloj al A5):

Ahora vamos a configurar el código mediante bloques:

  • Tenemos que elegir el bus IC2 MCP23008, teniendo en cuenta la dirección de comunicación, 32. Podemos comprobarlo haciendo clic en el LCD en Arduino, para que aparezcan las características:
  • A continuación vamos a fijar la posición del LCD. En este caso tenemos dos filas (0 y 1), y vamos a empezar en la primera (la 0). También en la primera columna (que es la 0).
  • Vamos a enceder la luz del fondo del LCD.
  • Por último, con otro bloque, encendemos el display (pantalla).

Vamos a configurar el bucle (LOOP):

  • Posición del cursor de nuevo en (0,0),
  • Mostramos en la pantalla un texto, en este caso «Club Gambito 2.0».
  • Esperamos 1 segundo.
  • Mostramos en la segunda fila otro texto, en este caso «IES Fray Diego».
  • Esperamos 1 segundo.

Aquí tienes una captura de pantalla mostrando el texto en las dos filas:

[ENTRADA EN CONSTRUCCIÓN]

LCD Shield con botonera

El shield (ver página web del fabricante) viene con un potenciómetro para regular el contraste (1), el puerto del controlador (2) y seis pulsadores analógicos.

Además, tiene 8 pines analógicos disponibles (D0-D7) en (4) y 5 puertas analógicas disponibles (5) en A1-A5.

Es un pequeño inconveniente, el tener que soldar conectores hembra a la placa para conectar sensores externos.

Aquí tienes un ejemplo para conectar unos LEDs:

Se coloca rápidamente en su sitio con una sujección robusta, sin necesidad de cables.

El LCD está conectado de esta forma:

Si necesitas realizar una carcasa diseñada con FreeCAD, aquí puedes ver las dimensiones suministradas por el fabricante:

[ENTRADA EN CONSTRUCCIÓN]

Caracter personalizado

Con la función createChar() es posible crear y mostrar caracteres personalizados en la pantalla LCD.

Esto es especialmente útil si desea mostrar un carácter que no forma parte del conjunto de caracteres ASCII estándar: ¡Las piezas de ajedrez!

Mediante esta página web de github puedes generar el código y la simulación:

Reloj de ajedrez

Vamos a ir programando poco a poco un reloj de ajedrez en la Shield que tenemos.
El código bonito lo he realizado con Carbon Highlighter.

Programa básico

  • Librerías Necesarias:
  • Inicialización del LCD y Definición de Botones:
  • Variables de Tiempo y Jugador Actual:
  • Función para Mostrar el Mensaje de Bienvenida:
  • Configuración Inicial:
  • Función Principal para el Conteo del Tiempo:
  • Función para Mostrar el Resultado:
  • Función para Iniciar el Conteo del Tiempo en una Línea:
  • Función para Leer los Botones:

Estos valores son seleccionados empíricamente durante la calibración del sistema, para asegurar que haya suficiente separación entre los valores analógicos de cada botón.

Y aquí tienes un pequeño video del funcionamiento:

Funcionalidades adicionales

  • Botones adicionales: Por ejemplo, puedes agregar una opción para reiniciar el juego o configurar el tiempo inicial.
  • Indicador de Jugador Actual: Puedes agregar un indicador visual para mostrar qué jugador está en turno. Esto puede ayudar a los jugadores a identificar fácilmente quién debe realizar la próxima jugada.

Deja un comentario

Comments (

0

)

Diseña un sitio como este con WordPress.com
Comenzar