Las variables de configuración
Principio de funcionamiento
1. La configuración
¿Por qué configurar las locomotoras? Primero, porque el nuevo descodificador que se instala está configurado en la dirección 3 de forma predefinida y es importante elegir diferentes direcciones si se quieren hacer funcionar varias locomotoras al mismo tiempo en la red. Luego, porque también hay que ajustar una velocidad máxima cercana a la realidad. Finalmente, porque se puede configurar multitud de accesorios y disponer de numerosas posibilidades lúdicas.
Las variables de configuración (o CV, de Configuration Variables) permiten configurar a voluntad el funcionamiento de una locomotora. Esto comienza con la selección del número de identificación; preliminar necesario antes de poner en marcha una máquina recién equipada en una vía.
Antes de ir más allá, hay que tener en cuenta que existen dos formas de programar las CV: la programación en vía y la programación en modo de servicio.
La programación en vía, también conocida como modo POM (Program On the Main: programación en la vía principal), permite programar las variables de configuración mientras el tren está en movimiento. Este método es más práctico para ajustar parámetros dinámicos, como las velocidades máximas, mínimas y medias, ya que se puede juzgar su efecto inmediatamente. Pero, por otro lado, algunas variables de configuración no pueden modificarse con el tren en movimiento; en particular todas aquellas que permiten seleccionar la dirección del descodificador.
El modo de servicio permite acceder a todas las variables de configuración, incluidas las de cambio de dirección del descodificador. Esta es la única forma posible de cambiarlo. Por otro lado, este modo de programación impone algunas restricciones: la locomotora debe estar parada y aislada de otras locomotoras.
En definitiva, cada método tiene sus ventajas e inconvenientes.
Programación en la vía
-
Ventajas
-
Permite programar los trenes mientras están en movimiento.
-
La locomotora no tiene que estar aislada de las demás.
-
Inconvenientes
-
No es posible programar la dirección del descodificador.
Programación en modo de servicio
-
Ventajas...
Las variables de configuración
1. Las principales CV
Es probable que algunos descodificadores sepan gestionar las 1024 direcciones permitidas por la norma, pero solo hay una docena de CV que son realmente esenciales para empezar. Están estandarizadas y se encuentran en casi todos los descodificadores.
1 Dirección corta
Esta es la primera CV que se programa al configurar una nueva locomotora. El valor predefinido es 3. Una locomotora se puede controlar con esta dirección, pero no se recomienda. La dirección 0 es inutilizable, ya que se usa como dirección de difusión general.
2 Velocidad mínima de arranque
Es el voltaje aplicado al motor cuando se alcanza la primera muesca de tracción. Si la locomotora no se mueve en las primeras muescas, significa que el motor no tiene suficiente potencia y hay que aumentar este valor.
3 Retraso de aceleración
Permite simular la inercia de un convoy ferroviario. Cuanto mayor sea el valor, más tiempo tardará el tren en alcanzar la velocidad solicitada. La tasa de aceleración se calcula mediante la siguiente fórmula:
CV3 x 0,896 / número de muescas
Se trata del tiempo, en segundos, para pasar de una muesca a la siguiente. Independientemente del número de muescas seleccionadas, el tiempo para pasar del alto total a la velocidad máxima es siempre igual a:
CV3 x 0,896
El valor máximo es 255, que corresponde a 228 segundos.
Ajustando esta CV a 0 se suprime la inercia. También es posible desactivarla temporalmente mediante una función (por lo general F4).
4 Retraso de frenado
Su funcionamiento es idéntico al de CV3, salvo que se trata de la ralentización del convoy. Suele ajustarse generalmente a un valor inferior al tiempo de retardo anterior: el convoy frena más rápido de lo que acelera, lo que se ajusta a la realidad.
5 Velocidad máxima
Permite limitar el voltaje aplicado al motor cuando está en la muesca de tracción más alta. Este valor permite imponer una velocidad realista a las locomotoras. El uso de un tacómetro (vea el capítulo La posición de los trenes) permite conocer la velocidad real del tren y, así, calibrar con bastante precisión el valor de esta CV.
6 Velocidad media
Como la curva voltaje-velocidad de los motores utilizados en las locomotoras no suele ser lineal, se puede...
Un programador dedicado
1. El formateado de paquetes
Un programador CV es una versión simplificada de una central DCC especialmente diseñado para esta tarea. Permite listar el contenido de los CV almacenados para poder modificarlos más fácilmente. Puede mostrar con claridad la función de cada CV. En algunos modelos, incluso permite hacer una copia de seguridad de la configuración de una locomotora. Sin embargo, el programador no dispone de ningún comando para controlar los trenes. El que se presenta en las siguientes líneas no es tan sofisticado. No permite la lectura de la configuración existente, por lo que no cuenta con respaldo de la configuración en la memoria. Además, solo funciona en modo de servicio.
Aquí no hay que montar ningún circuito electrónico nuevo. La pequeña central es la que se beneficiará de estas funcionalidades adicionales.
Gran parte del código escrito anteriormente se retoma para crear el programador. Ya se ha escrito el formateado de los paquetes DCC, su almacenamiento y la rutina en interrupción para el envío de los paquetes. La parte más difícil ya está hecha, así que es fácil reagrupar la conducción y programación dentro de un mismo programa. Entonces, empezaremos por definir tres nuevos tipos de paquetes.
#define DCC_PACKET_TYPE_CV 4
#define DCC_PACKET_TYPE_CV_BIT 5
#define DCC_PACKET_TYPE_RESET 6
Lo esencial del trabajo consiste en modificar la función dccPacketFormat, que ya está escrita. El primer cambio consiste en agregar un parámetro adicional, data2, que se utiliza para codificar el valor de la CV, mientras que data1 sirve para codificar su número.
void dccPacketFormat(byte type, word addr, word data1,word data2)
{
byte packetData[DCC_PACKET_SIZE];
byte checksum=0;
byte packetSize=1;
char* packetPtr=packetData;
El código que formatea la dirección, corta o larga, del descodificador no se utiliza en el caso de un programador en modo de servicio. Por lo tanto, podemos pasar directamente a la estructura switch/case que gestiona los diferentes tipos de paquetes.
switch(type&DCC_PACKET_TYPE_MODE)
{
case DCC_PACKET_TYPE_CV...
La programación en vía
1. El principio
La programación en modo de servicio requiere que la locomotora esté parada, lo que no es ideal cuando se trata de ajustar la velocidad máxima, la aceleración, el frenado o la curva de velocidad. En este caso, es mejor utilizar el modo POM (Program On the Main: programación en la vía principal). En este modo de programación pueden estar presentes otras locomotoras en la red, ya que la dirección de la locomotora que se quiere programar se indica explícitamente en el comando.
Los comandos POM pueden tener cuatro aspectos diferentes dependiendo de si el direccionamiento y el comando están codificados en un byte (formato corto) o en dos bytes (formato largo). Es el cuarto bit del byte de comando el que permite diferenciar los dos formatos de comando: se pone en 1 para el formato corto y en 0 para el formato largo.
Direccionamiento corto y comando corto:
0AAAAAAA - 0 - 1111CCCC - 0 - DDDDDDDD
Direccionamiento largo y comando corto:
11AAAAAA - 0 - AAAAAAA - 0 - 1111CCCC - 0 - DDDDDDDD
Direccionamiento corto y comando largo:
0AAAAAAA - 0 - 1110CCVV - 0 - VVVVVVVV - 0 - DDDDDDDD
Direccionamiento largo y comando largo:
11AAAAAA - 0 - AAAAAAA - 0 - 1110CCVV - 0 - VVVVVVVV - 0 - DDDDDDDD
Los bits se distribuyen de la siguiente forma:
-
A: dirección del descodificador
-
C: comando
-
V: número de CV
-
D: datos destinados a la CV
2. Los comandos
De las 16 combinaciones posibles, solo hay dos comandos cortos que son realmente útiles:
-
0010: aceleración (CV23)
-
0011: desaceleración (CV24)
Estos comandos se utilizan en las centrales DCC más sofisticadas para modificar las características de tracción y frenado de la locomotora de forma dinámica en función del convoy que se acople a ella o, incluso, según el perfil de la vía...