Tabla de contenido:
- Paso 1: Código Arduino - Estación de comando con teclado
- Paso 2: Código Arduino - Pantalla TFT
- Paso 3: Controlador de participación
Video: Maqueta de ferrocarril - Estación de comando DCC con Arduino :: 3 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
Actualizado en agosto de 2018: consulte el nuevo Instructable:
Actualización del 28 de abril de 2016: Ahora capacidad de control de 16 puntos / desvíos para Command Station. Los desvíos T1 - T8 están disponibles mediante la tecla 'B' Los desvíos T9 - T16 están disponibles mediante la tecla 'C'
Actualización 10 de marzo de 2016:
Ahora se agregó capacidad de control de 8 puntos de participación / puntos a la estación de comando. El código Arduino se ha actualizado en consecuencia utilizando el paquete estándar NMRA para desvíos (también basado en un estudio de paquetes de datos Lenz / Atlas Compact para control de desvíos).
Los desvíos T1 - T8 están disponibles mediante la tecla 'B'
Consulte las instrucciones sobre el circuito receptor de paquetes de datos utilizado y el código Arduino requerido.
Actualización 18 de enero de 2016:
Agregué una resistencia de detección de corriente (1k5 ohmios) y un condensador (10 uf) al circuito y modifiqué el código Arduino para cortar la energía cuando se detecta una corriente máxima de> 3200 mAmps. La especificación del puente H establece una corriente de detección de salida de 377 uA por 1 amperio en la carga.
La resistencia de 1.5 k ohmios entregará 0.565 voltios por amperio en el pin analógico 6. Con 1023 pasos en la entrada analógica, esto da 0.565 * 1023/5 = 116 por carga de amperio.
A = 100 * (lectura analógica (AN_CURRENT)) / 116; A = A * 10; (dar resultado en miliamperios) a.
La corriente de carga en miliamperios se muestra en el TFT
El teclado completo 4x4 incluye funciones de F1 a F8 y otras 10 locomotoras (1-19) a través de la tecla '#' (para agregar 10 a las teclas numéricas comenzando por la locomotora 10).
El código arduino incluye el estándar NMRA para bytes de instrucción.
Ver enlace
www.nmra.org/sites/default/files/s-9.2.1_20…
(la página 6 es de especial relevancia)
Los paquetes se organizan según el número de pasos de velocidad, la dirección larga / corta y las instrucciones del grupo de funciones.
Todos los bytes de instrucción están precedidos por un preámbulo de '1' bits 11111111 (o paquete inactivo) seguido de;
p.ej. Una dirección de 4 bytes 0 00000011 0 00111111 0 10000011 0 10111111
equivale a la locomotora 3, 128 pasos de velocidad, dirección de avance y paso de velocidad 3 (el byte final es la comprobación de errores XOR)
p. ej., una dirección de 3 bytes 0 00000011 0 10010000 0 10110011
equivale a la locomotora 3, grupo de funciones 1, FL se enciende más el byte XOR (un bit '0' separa cada byte)
Vea el video de demostración adjunto para la locomotora 12.
Las funciones F1 - F8 están disponibles mediante la tecla 'A', DIR (tecla '*' = dirección) FL (tecla '0' = luces) y la tecla '#' proporciona las locomotoras 10 a 19 en el teclado numérico. La tecla 'D' ahora se usa para una 'PARADA de emergencia'.
Gracias a varios proveedores en la web por fuentes de información DCC y código Arduino.
En particular, este proyecto se inspiró en Michael Blank y su 'DCC simple: una estación de comando'
www.oscale.net/en/simpledcc
Teclado de interruptor de membrana de 16 teclas Matrix Array 4x4 (ebay) £ 1.75
Módulo de pantalla LCD SPI TFT serie 240x320 de 2,2 pulgadas (ebay) 7,99 €
ADAPTADOR DE ALIMENTACIÓN AC UNIVERSAL 12V 5A 60W (ebay) 6,99 €
Nano V3.0 para Arduino con CH340G 5V 16M compatible ATmega328P (ebay) 2 x £ 3.30 = £ 6.60
Módulo controlador de motor LMD18200T para Arduino R3 (ebay) 7,99 €
Conectores, cable, placa vero, potenciómetro aprox. 3,50 €
Precio total 32,52 €
La estación de comando básica sin pantalla tft y 1 x nano costaría £ 22.03
[Nota: Es posible agregar una tarjeta de memoria a la pantalla TFT y modificar el código para mostrar imágenes de los motores seleccionados, aunque los códigos de la biblioteca deben editarse para crear más memoria para el boceto. El tamaño del boceto actual es máximo para el TFT Arduino Nano]
El código Arduino original de Michael Blank era para un motor, solo avance / retroceso sin control de función, sin teclado y sin pantalla.
He modificado el código para incluir 1 - 19 motores, una pantalla de visualización, dirección, luces, 8 funciones, parada de emergencia y límite de corriente automático.
El puente LMD18200T puede transportar hasta 3 amperios, lo que lo hace adecuado para todas las escalas, incluida la escala G (trenes de jardín). La fuente de alimentación de red y la electrónica son aptas para uso en interiores únicamente, a menos que pueda hacerlo todo resistente a la intemperie. Tengo la estación de comando en la casa de verano con cables de conexión de rieles que atraviesan la pared hasta la vía.
Paso 1: Código Arduino - Estación de comando con teclado
Mi agradecimiento a tvantenna2759 por señalar 2 errores en el diagrama del circuito donde el código Arduino no coincidía con el cableado, ahora actualizado (21 de octubre de 2017).
Ahora se agregaron 16 desvíos a la estación de comando. Consulte las instrucciones en el diagrama de circuito de desvíos / puntos utilizando el módulo Arduino Mini Pro.
El código modificado que incluye el control de participación se adjunta a continuación.
El paquete decodificador de accesorios básicos es: 0 10AAAAAA 0 1AAACDDD 0 EEEEEEEE 1 A partir del análisis del paquete utilizado por Lenz (Compact / Atlas) para el control de puntos, he utilizado el siguiente formato de paquete binario para los bytes 1 y 2: tunAddr = 1 Turnout 1a: 1000 0001 1111 1000 / Desvío 1b: 1000 0001 1111 1001 Desvío 2a: 1000 0001 1111 1010 / Desvío 2b: 1000 0001 1111 1011 Desvío 3a: 1000 0001 1111 1100 / Desvío 3b: 1000 0001 1111 1101 Desvío 4a: 1000 0001 1111 1110 / Desvío 4b: 1000 0001 1111 1111 tunAddr = 2 ----------------------------------------- -------------------------------------------------- ----------------- Desvío 5a: 1000 0010 1111 1000 / Desvío 5b: 1000 0010 1111 1001 Desvío 6a: 1000 0010 1111 1010 / Desvío 6b: 1000 0010 1111 1011 Desvío 7a: 1000 0010 1111 1100 / Desvío 7b: 1000 0010 1111 1101 Desvío 8a: 1000 0010 1111 1110 / Desvío 8b: 1000 0010 1111 1111 ----------------------- -------------------------------------------------- ---------------------------------- Turnout 9a: 1000 0011 1111 1000 / Turnout 9b: 1000 0011 1111 1001 etc ………
Extracto del código modificado: agregue 2 actualizaciones de mensajes 'struct' más. // decodificador accesorio 0x80 & dirección 1 x.data [1] = 0; }
void modificar_tun2 (estructura Mensaje & x) {x.data [0] = 0x82; // decodificador accesorio 0x80 & dirección 2 x.data [1] = 0; }
Agregar nuevo vacío para desvíos: boolean read_turnout () {delay (20);
booleano cambiado_t = falso; obtener la clave();
if (key_val> = 101 && key_val <= 404 && turn == 1) {
datos = 0xf8; // = binario 1111 1000
modificar_tun1 (msg [1]);
}
if (key_val> = 505 && key_val <= 808 && turn == 1) {
datos = 0xf8; // = binario 1111 1000
modificar_tun2 (msg [1]);
}
if (key_val == 101 && turn == 1) {
si (tun1 == 1) {
datos | = 0; // t1a
cambiado_t = verdadero;}
si (tun1 == 0) {
datos | = 0x01; // t1b
cambiado_t = verdadero;}
}
if (key_val == 202 && turn == 1) {
si (tun2 == 1) {
datos | = 0x02; // t2a
cambiado_t = verdadero;
}
si (tun2 == 0) {
datos | = 0x03; // t2b
cambiado_t = verdadero; }
}
if (key_val == 303 && turn == 1) {
si (tun3 == 1) {
datos | = 0x04; // t3a
cambiado_t = verdadero;
}
si (tun3 == 0) {
datos | = 0x05; // t3b
cambiado_t = verdadero;}
}
if (key_val == 404 && turn == 1) {
si (tun4 == 1) {
datos | = 0x06; // t4a
cambiado_t = verdadero;
}
si (tun4 == 0) {
datos | = 0x07; // f4b
cambiado_t = verdadero;}
}
if (key_val == 505 && turn == 1) {
si (tun5 == 1) {
datos | = 0; // t5a
cambiado_t = verdadero;
}
si (tun5 == 0) {
datos | = 0x01; // t5b
cambiado_t = verdadero;}
}
etc ………………….
Paso 2: Código Arduino - Pantalla TFT
El circuito de visualización sigue siendo el mismo con un código modificado para mostrar el estado de los 16 desvíos. Nota: El código de la biblioteca ocupa casi toda la memoria del código de boceto, dejando poco espacio para nuevas funciones. Si alguien tiene un archivo de biblioteca más eficiente para el TFT utilizado aquí, hágamelo saber.
Paso 3: Controlador de participación
Vea instrucciones sobre cómo hacer el controlador Turnout / Points.
El circuito completo controla 16 puntos y 15 accesorios como luces, sonidos, tocadiscos, etc.
Recomendado:
Trazado de modelo de ferrocarril automatizado con dos trenes (V2.0) - Basado en Arduino: 15 pasos (con imágenes)
Trazado de modelo de ferrocarril automatizado con dos trenes (V2.0) | Basado en Arduino: Automatizar los diseños de maquetas de trenes con microcontroladores Arduino es una excelente manera de fusionar microcontroladores, programación y modelismo ferroviario en un solo pasatiempo. Hay un montón de proyectos disponibles para hacer funcionar un tren de forma autónoma en un modelo de ferrocarril
Maqueta de diseño de ferrocarril con revestimiento automatizado: 13 pasos (con imágenes)
Diseño de maquetas de trenes con revestimiento automatizado: Hacer diseños de maquetas de trenes es un gran pasatiempo, ¡automatizarlo lo hará mucho mejor! Echemos un vistazo a algunas de las ventajas de su automatización: Operación de bajo costo: Todo el diseño está controlado por un microcontrolador Arduino, usando un L298N mo
Diseño de modelo de ferrocarril con revestimiento de paso automatizado (V2.0): 13 pasos (con imágenes)
Diseño de maqueta de ferrocarril con revestimiento de paso automatizado (V2.0): este proyecto es una actualización de uno de los proyectos de automatización de maquetas de ferrocarril anteriores, el diseño de maqueta de ferrocarril con revestimiento automatizado. Esta versión añade la función de acoplamiento y desacoplamiento de la locomotora con el material rodante. La operación de
Instrucciones para completar la maqueta del diseño de deslizamiento de riel para levantar / bajar los reposapiés montados en el centro en sillas de ruedas eléctricas: 9 pasos (con imágenes)
Instrucciones para completar la maqueta del diseño de deslizamiento de riel para levantar / bajar los reposapiés montados en el centro en sillas de ruedas eléctricas: Los reposapiés montados en el centro se levantan para guardarlos debajo del asiento y bajan para desplegarse. Las sillas de ruedas eléctricas del mercado no incluyen un mecanismo para el funcionamiento independiente del almacenamiento y despliegue del reposapiés, y los usuarios de motos acuáticas han expresado la necesidad
Desktop Decepticon: una maqueta de Transformers: 8 pasos (con imágenes)
Desktop Decepticon: a Transformers Maquette: aquí hay otro pequeño proyecto en el que he estado trabajando durante un tiempo, ¡finalmente lo terminé finalmente! Después de disfrutar mucho la primera película de Transformers, quería probar y hizo un pequeño modelo de Transformer pero no obtuve