Skip to content

Peyutron/DCCpp_LMD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

122 Commits
 
 
 
 

Repository files navigation

DCCpp LMD

DCCpp LMD Librería DCC++ para Arduino

Logo DCCpp LMD en Oled 128x64

Que es y para que sirve DCCpp LMD?

DCCpp LMD es una adapatación de la librería DCCpp. Diseñada para placa Arduino MEGA cuenta con diferentes añadidos como pantalla Oled, sonido y multiples puertos seriales.

Con esta versión podemos utilizar todos los puertos al mismo tiempo para mandar o recibir los comandos de la central.

*- Pantalla Oled con librería U8G2lib

*- Retromodulos S88

*- Serial → PC

*- Serial1 → Wifi

*- Serial2 → Bluetooth

*- Serial3 → Serial Auxiliar

*- Sonido

En la pantalla Oled obtendremos información tales como desvíos y sensores almacenados en la EEPROM, comando recibido, estado del ultimo desvío/salida activadas. También muestra los datos de la última locomotora como ID, velocidad y dirección. Igualmente, cuando almacenemos o borremos algun elemento de la memoria EEPROM

Para instalar la central DCCpp LMD solo hay que tener la librería DCCpp LMD en la carpeta libraries de Arduino.

Abrimos el IDE de Arduino y en Ejemplos -> DCCpp-LMD -> SerialBluetoothDCCpp para una comunicación serial básica.


alt text

alt text

Nos podemos ahorrar el soldar componentes ya que para el módulo ESP-01 existe un adaptador con el que podemos tener una conexión Rx/Tx con alimentación a 5V

Adaptador ESP01

alt text

DCCpp LMD con pantalla Oled: Cortocircuito

Con el pequeño parlante podremos percibir de una manera mas intuitiva si algo va bien o mal en la cental, cuenta con sonidos para encendido/apagado y confirmación o fallo

Estos se pueden modificar en el archivo Sound.cpp

TODO: Sensores RF433 nativo

Registro de versiones:

*-LMD 14/05/2026 V2.1.2

  • Añadido comando para funciones de locomotoras con formato "" en el archivo TextCommand.cpp con una nueva función en los archivos DCCpp.cpp y DCCpp.hpp
  • setFunctionSimple(int cab, int funcNum, bool activate) Activa las funciones de locomotoras en formado ID (0-28)
  • Correción de bug en TextCommand que impedía el uso de los comandos de programación y diagnostico, eliminadas variables de información.

*-LMD 02/05/2026 V2.1.1

  • Los Serialx.begin() se inician el SerialWifi.cpp, SerialBluetooth.cpp y SerialAux.cpp
  • Oled:
    • Rediseño Oled pantalla de encendido
    • Pantalla Overload como protección contra cortocircuito se restablece con <0> o <1>
    • Oled muestra el comando recibido
  • CommInterface:
    • Funciones getLastOutput(); y clearLastOutput();
  • Wifi:
    • Añadido IP personalizada.
    • Puerto personalizado.
  • TextCommand revisado para evitar conflicto entre los diferentes tipos de sensores.

*-LMD 22/02/2026 V2.1.0

  • Conexión Wifi con ESP01 y NonOs para 4 clientes SerialWifi.h y SerialWifi.cpp

*-LMD 23/04/2023 V2.0.4

  • Añadido teclado 4x3 y encoder rotativo en Keyboard.h y Keyboard.cpp. Los pines definidos para el teclado y encoder se encuentran en Keyboard.h
  • Con Keyboard se añaden varias funciones en Oled.cpp. LocomotiveOled, TurnoutOled.
  • Pantalla para uso de locomotoras (1). Necesita Keyboard
  • Pantalla para uso de desvíos (2). Necesita Keyboard
  • como usar el teclado en: URL)
  • Oled.cpp se actualiza solo cuando cambian los datos que se muestran.
  • Imagen de inicio, opcional.
  • Algunas partes han sido traducidas a Español ES

*-LMD 23/04/2023 V2.0.3


*-LMD 05/04/2023 V2.0.2

  • Arreglos en TextCommand.cpp ya que algunos comandos no funcionaban correctamente (comandos 's', 'E' y 'F')

*-LMD 01/04/2023 V2.0.1

  • Datos seriales unificados en CommInterface.cpp
  • Implementación del puerto Serial1 como SerialWifi (SerialWifi.h) con WebSocket "ws://"
  • Implementación del puerto Serial2 como SerialBluetooth (SerialBluetooth.h)
  • Implementación del puerto Serial3 como SerialAUX (SerialAux.h)
  • Nueva librería U8G2lib probado en pantalla *- SSD1603 128x64
  • Monitor Serial en pantalla
  • Monitor de consumo

Librería DCCpp modificada por Carlos MC. Todos los cambios y montajes estan basados en un circuito general. Es recomendable mirar el datasheet y a los pines de conexión ya que dependeran del fabricante.

No nos hacemos responsables de posibles fallos. Todas las modificaciones son bajo tu propia responsabilidad.

License Copyright (c) 2017/2020 Locoduino.org. All right reserved. Copyright (c) 2017/2020 Thierry Paris. All right reserved.

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

Packages

 
 
 

Contributors

Languages