0

Automatizando librería DCC

Buenas a todos! Hoy traigo un «truco»para hacer automatizaciones en la central DCC++ directamente en el archivo .ino que cargamos en el Arduino MEGA.

Realmente esto viene en los ejemplos que trae la librería y se utiliza para probar algunos elementos de la maqueta, en el caso de los ejemplos hace funcionar una locomotora en diferentes modos y algunas de sus funciones, pero se puede utilizar para encender cualquier tipo de accesorio y para, por ejemplo, apagar y encender alguna animación.

Lo primero que hacemos es crear una estructura donde se almacenarán 3 variables:

  int delay;			// delay para 'this' comando
  char comando[20];
  char comentario[20];

El primer comando es un delay y los dos siguientes son variables tipo char donde almacenaremos los caracteres que componen el comando y los caracteres de un pequeño comentario.

Estos datos se rellenan después en el Setup() creando un nuevo «Item» que contiene los datos:

// new EstadoAccionItem(TIEMPO, "ACCION", "COMENTARIO");    
  new EstadoAccionItem(10000, "a 1 1 1 ", "Acc On");		// Encience accesorio dir 1 subdir 1 despues de 10seg
  new EstadoAccionItem(5000, "a 1 1 0", "Acc Off");		// Apaga accesorio dir 1 subdir 1 despues de 5seg
// new EstadoAccionItem(10000, "", "Espera");					// Espera 10seg

Y por último se llama a cada «Item» desde el loop principal y dentro de un timer «sin delay» manda directamente los datos a central internamente y después muestra un comentario en el monitor serial:

time = millis();
TextCommand::parse(currentItem->command);
Serial.println(currentItem->comment);

Bueno esto es todo creo que es un buen ejemplo o una buena opción si queremos automatizar algunas partes de la maqueta o para realizar una presentación haciendo que no sea necesario interactuar con ella, por ejemplo en navidad, haciendo que se enciendan diferentes luces o que cierta locomotora haga un recorrido durante x tiempo y pare.

Se pueden utilizar todos los comandos que dispone la central como «a, f, t, T, Y » así que podemos automatizar cualquier cosa que se os ocurra

El archivo original lo podeis encontrar en los archivos de ejemplo de la propia librería DCCpp llamado autotest.ino solo hay que cambiar la configuración de setup()y poner los datos del shield y los seriales que tengamos activos.

Saludos!!!

(Visitado 11 veces, 1 visitas hoy)

Deja un comentario

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