Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Central DCC Digital para Ferrocarril Modelo con Arduino y App Android Gratuita

Componentes y Suministros

Componente Cantidad Notas
Arduino Pro Mini 328 5V/16MHz (SparkFun) 1
Driver H-Bridge LMD18200T 1 3A, incluye disipador
PCB Personalizada 1 Disponible en eBay
Regulador Lineal 7805 (5V) 1
Diodo Zener 3.6V 0.5W (1N4732A) 1
Módulo Bluetooth HC-06 1 Solo esclavo (slave)
Resistencia 0.1Ω 2W (sentido corriente) 1 Protección sobrecorriente
Condensador 220µF 16V 1
Condensador 10µF 16V 1
Condensador Cerámico 0.1µF 3
Resistencia 10kΩ 2
Resistencia 4.7kΩ 1
Terminal Tornillo 2 Pos. 3.5mm 1 Alimentación vías
Terminal Tornillo 6 Pos. 2.54mm 1 Conexiones varias
Zócalo Hembra 4 Pines 2.54mm 1 Para HC-06
Zócalo Hembra 12 Pines 2.54mm 2 Para Arduino Pro Mini

Aplicaciones y Servicios Online

Descripción del Proyecto

¿Qué hace único a este sistema? Un circuito electrónico muy simple genera la señal DCC y potencia la vía, pero la App hace el trabajo pesado: el smartphone construye los paquetes de instrucciones NMRA, simplificando drásticamente el código del Arduino.

Actualizaciones:

Central DCC Digital para Ferrocarril Modelo con Arduino y App Android Gratuita

Características Principales

Coste total ~20£ (componentes eBay). App gratuita "LocoMotive" en Play Store.

Paso 1: Sketch Arduino

El loop principal recibe cadenas de texto terminadas en '\n' desde Bluetooth. Si empiezan con "D", decodifica paquete DCC (3 o 4 bytes).

void loop() {
  if(bluetooth.available() > 0) {
    inString = bluetooth.readStringUntil('\n');
  }
  if (inString.substring(0,1) == "D") { string(); }
  delay(20);
}

La función string() parsea la cadena y coloca cada byte en su posición en el paquete DCC.

Ejemplos:

Estándar NMRA S-9.2.1: PDF.

El LMD18200 requiere señal DCC en pin DIR y pin PWM en HIGH.

Paso 2: Diagrama Fritzing y Lista de Componentes

Central DCC Digital para Ferrocarril Modelo con Arduino y App Android Gratuita

Notas de montaje:

// Protección sobrecorriente
if(C > 2000) { // 2 Amps
  Serial.println("Over Current");
  digitalWrite(13, HIGH); // Brake HIGH
}

// Envío corriente cada segundo
void send_c() {
  if(millis() - lastmillis >= 1000) {
    bluetooth.write(sensorValue); bluetooth.write('c');
    lastmillis = millis();
  }
}

Paso 3: App Android

Código Arduino Completo

Archivo: locomotive_dcc_sep19.ino (incluye: recepción Bluetooth, generación DCC por interrupción Timer2, gestión paquetes idle/velocidad/función/CV, protección corriente, programación CV1 y CVs genéricas).

// 1 Sep 2019 - Sketch para App 'Locomotive DCC' con LMD18200
// Incluye lectura/escritura CV
#include <SoftwareSerial.h>
SoftwareSerial bluetooth(8,9); // RX, TX

// ... [Variables globales, definiciones Timer2, máquina de estados DCC] ...

void SetupTimer2() {
  TCCR2A = 0;
  TCCR2B = (0<<CS22)|(1<<CS21)|(0<<CS20); // Prescaler /8 → 2MHz
  TIMSK2 = 1<<TOIE2; // Overflow interrupt
  TCNT2 = TIMER_SHORT; // 58µs
}

ISR(TIMER2_OVF_vect) {
  // Genera señal DCC en pines 5 (DIR) y 6 (PWM) para LMD18200
  // Máquina de estados: PREAMBLE → SEPARATOR → SEND BYTE
  // Maneja preámbulo (16 o 24 unos), byte de datos, bit a bit
}

void setup() {
  Serial.begin(115200);
  analogReference(INTERNAL); // 1.1V ref para medición corriente
  pinMode(13, OUTPUT); // Brake
  bluetooth.begin(9600);
  DDRD = B01100000; // Pines 5,6 como salida
  SetupTimer2();
  digitalWrite(6, LOW); digitalWrite(13, HIGH); // Puente apagado
}

void current() {
  // Promedia 5 lecturas A0, convierte a mA (0.1Ω → 10.8mA/paso con ref 1.1V)
  // Si >2000mA → frena y avisa por Bluetooth
}

void loop() {
  // Recepción comandos Bluetooth:
  // "D..." → paquete DCC (string())
  // "C" → reset sobrecorriente (DCC ON, Brake OFF)
  // "G" → solicitud corriente actual
  // "A" → programación CV1
  // "get..." → lectura CV genérica
  // "add..." → escritura CV genérica
  // "V" → confirmación CV1
  // "E" → parada emergencia (DCC OFF, Brake ON)
}

// Funciones auxiliares: string(), assemble_3/4_byte(), cv_read(), cv_write(),
// cv_calc(), reset_packet(), page_preset_packet(), cv1_write_packet(),
// cv_verify0/1_packet(), valid_packet(), repeat_cv_write()

Piezas Personalizadas y Carcasas

Central DCC Digital para Ferrocarril Modelo con Arduino y App Android Gratuita

Esquemáticos

Proceso de manufactura

  1. MrRobot: Robot Rapiro controlado por móvil Ubuntu con voz, tacto e interacción por movimiento
  2. Estación de Mezcla de Cócteles "6-Shooter" con Arduino: Construye tu Propio Barman Automático
  3. Proyecto Dados Digitales Arduino: Construye tu Propio Generador de Números Aleatorios con LCD
  4. Mando USB para juegos DIY con Arduino – Construye tu propio gamepad de alto rendimiento
  5. Crea Animaciones y Juegos en LCD 16×2 con Arduino UNO
  6. Zapatillas Inteligentes Autoajustables con Cosecha de Energía Integrada
  7. Medición de Distancia en Tiempo Real con Sonar Arduino y Visualización en Processing
  8. Pixel Chaser: Juego LED Interactivo de Un Toque con Arduino Nano
  9. Control de brillo LED sin interrupciones con Bolt IoT y Arduino UNO
  10. Estación Meteorológica Portátil Arduino por $10 – Nano, DHT22, BMP180 y LCD
  11. Control Arduino UNO desde Python 3 – Envío de Comandos y Demo LED