Originalmente, la central DCC++ no tiene pantalla. La única manera de "ver" que pasa internamente era utiliar la comunicación Serial en cualquiera de sus puertos.
Esto la hacia proco práctica y frente a algún fallo no teníamos manera de localizar un problema como por ejemplo si un comando ha sido recibido por la central.
En esta situación opte por implementar una pequeña pantalla Oled de 128x64 con comunicación I2c.
Esta pantalla se encarga de mostrar los datos más básicos tales como:
- Estado de la central DCC.
- Último estado de locomotora.
- Último estado de Accesorio.
- Número de elementos almacenados en la memoria EEPROM.
- Consumo de la vía principal
- Ip (solo con conexión wifi)
- Último comando recibido
En un primer momento, probé con la librería de Adafruit pero, pese a estar muy bien, no era lo que estaba buscando. Recordé la librería U8gLib y su versión actualizada U8g2.
Al final me decante por U8g2Lib por que tiene funciones que me parecen más interesantes y el poco uso de memoria en comparación con misma librería de, por ejemplo Adafruit.
En el archivo Oled.cpp configuramos la pantalla que tengamos, en este caso una Oled 0'96" SSD1306, pero puedes encontrar una lista con todas las pantallas compatibles. También las puedes encontrar en esta lista.
Esta pantalla al ser de tipo I2c va conectada en los pines 20 y 21 de la placa Arduino MEGA.

Habilitar pantalla oled
Para habilitar la comunicación de la pantalla Oled SSD1306 con la central DCCpp LMD tenemos que modificar el archivo de configuración "DCCpp.h":
// #define USE_OLED // Pantalla OLED 128x64 i2C.Configurar otro tipo de pantalla Oled
Si utilizas pantallas de otro tipo tienes diferentes opciones de configuración justo al final del arhivo Oled.h:
Una vez que hayas encontrado tu pantalla tienes que sustituir la siguiente linea de archivo Oled.cpp:
// Select your screen on Oled.h list
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE); // All Boards without Reset of the Display
Si usas otra pantalla posiblemente tendrás que hacer algunos cambios en las posiciones de los textos en el archivo Oled.cpp.
Animación de inicio:
Puedes modificar la imagen de inicio almacenada en el archivo logo.h.
Desactiva la animación de inicio comentando la siguiente linea del archivo Oled.h
#define OLED_ANIMATION
Página siguiente
Página anterior
Volver al índice
Descargar Librería DCCpp_LMD 2.1.0 (Modificación Oled, S88, Sonido, wifi, Bluetooth, Serial3, teclado y encoder)
Seguiré actualizando!!!

