2

Pantalla SSD1306 llegada de trenes animada 128×64

¿Te gustaría darle un toque de realismo a tu estación de tren h0? Ahora con la pantalla SSD1306 y las posibilidades de Arduino, podríamos hacer casi cualquier cosa, pero en este caso, una pantalla de llegadas con unas pequeñas animaciones.

La pantalla SSD1306 en su modalidad I2C y con unas dimensiones de 26,70 mm x 19,26 mm x 1,85 mm es ideal para casi cualquier estación por pequeña que sea (sobre todo en escala H0).
Su resolución es de 128×64 pixeles, y un tamaño por pixel de 0,15 mm x 0,15 mm.
Su alimentación va desde los 3V hasta los 5 y estando completamente encendida tiene un consumo de 0,08W
En cuanto a colores es monocromo, blanco y negro, suficiente para un pequeño cartel de información.

La librería u8g:

En un principio programe la pantalla con la librería de Adafruit, pero como se puede ver en la imagen, esta librería ocupa más de un 60% ella solita… un par de Strings después tenia la memora superando el 80%. Obviamente podría haber intentado con otro tipo de variables, pero al final, desistí de Adafruit y tuve que reprogramar todo (prácticamente desde 0) con la librería U8G de olikraus. Creo que las fotos hablan por si mismas…

Tiene una enorme cantidad de pantallas disponibles, así que si tenéis una pantalla que no sea la SSD1306 muy posiblemente encontréis la vuestra también.

Lo que también tiene, y muchas, son tipos de letra con diferentes medidas y estilos para que podamos personalizar el cartel a nuestro gusto.

Al principio un poco liado con el funcionamiento, pero viendo los resultados al final la he incorporado al proyecto de la DCC++ con pantalla Oled que presentare próximamente por aquí.

¿Que hace realmente la pantalla?

Al abrir el sketch nos escontraremos con las variables que, por supuesto, se pueden poner a nuestro gusto, añadir, quitar cambiando la cifra en la variable llamada “const int destinos = 7;”  únicamente hay que respetar que los nombres de los destinos en la variable “char destino [destinos][18]” no tengan más de 17 caracteres y que la variable “char horario[destinos][6]” siempre tenga el formato de hora “00:00“, si no, no funcionara.

La velocidad del reloj la podemos cambiar en: “const unsigned long period = 5;” Si aumentamos el número, el reloj irá más despacio.

El Setup:

Al iniciar Arduino, carga un comando llamado “randomSeed” el cual se encargará de sacar un número aleatorio del pin A0. ¿Porque el pin A0? Al no tener nada conectado en ese pin únicamente recibiremos “ruido”, ese ruido se transforma en un número totalmente aleatorio. Con esto conseguimos que el reloj siempre se inicie en una al azar. Esto lo podemos cambiar comentando las lineas:  “hora = random(0, 23);”  y “minuto = random(0, 59);” sustituyéndolas por “hora = 0;” y “minuto = 0;” la pantalla siempre iniciara a las 00:00.

Y estas son las cosas que se pueden cambiar directamente en el sketch para personalizarlo a vuestro gusto. Os dejo un vídeo donde se muestra el funcionamiento del programa

Descarga directamente Pantalla_llegadas_SSD1306.rar

Librería original U8glib desde la web arduinolibraries.info

Saludos a todos!!!!

(Visitado 104 veces, 1 visitas hoy)

2 comentarios

  1. Hola.
    Muy bueno.
    Para escala n queda grande. Pero igual hay pantallas mas pequeñas.
    Saludos

    • Hay una más pequeña de 128*32, es decir, la mitad de altura que la del artículo, no sé si habrá más pequeñas, pero es cuestión de mirar. Tipos de letra creo que hay uno que se llama “font_baby” que es minúscula!! Saludos!!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *