Control Automático de Tren DIY con Arduino: Simple, Fiable y Personalizable
Componentes y suministros
| Componente | Cantidad |
|---|---|
| Arduino UNO (cualquier placa: UNO, NANO, MEGA...) | 1 |
| Driver de motor doble H-Bridge L298 (módulo estándar) | 1 |
| Cables jumper | 1 set |
Aplicaciones y servicios en línea
- Arduino IDE
Sobre este proyecto
Este esquema tan sencillo pone tu tren en marcha automáticamente. Puedes ajustar tiempos de movimiento, parada, aceleración y frenada. Modificando los parámetros de horario en el sketch, creas cualquier tipo de movimiento automático. ¡Enciende y el tren parte!
Parámetros de horario (en el código)
El sketch usa un contador por segundos (counterScheduler) para definir fases:
// 1 | 0-5 seg: Arranque y aceleración
if (counterScheduler <= 5) { ... }
// 2 | 10-15 seg: Frenada y parada
if (counterScheduler >= 10 && counterScheduler <= 15) { ... }
// 3 | 16 seg: Cambio de dirección
if (counterScheduler == 16) { ... }
// 4 | 20-30 seg: Nuevo arranque
// 5 | 31-40 seg: Nueva parada
// 6 | >40 seg: Reinicio del ciclo (vuelve a paso 1)
Variables de movimiento
int brakingDelta = 5; // Paso de decremento de velocidad al frenar
int accelerateDelta = 6; // Paso de incremento al acelerar
Control de dirección
Pines D6 (IN1) y D7 (IN2) del L298 determinan el sentido:
// Dirección por defecto: ADELANTE
digitalWrite(L298_IN1, HIGH);
digitalWrite(L298_IN2, LOW);
Para invertir: IN1=LOW, IN2=HIGH.
Puedes extender el sketch infinitamente para crear horarios complejos.
Código
Sketch "Swing" (movimiento ida y vuelta)
// L298
#define L298_ENA 5
#define L298_IN1 6
#define L298_IN2 7
// Variables
int counterScheduler = 0;
unsigned long timerScheduler = 0;
unsigned long timerLocal = 0;
byte speedAuto = 0;
void setup() {
pinMode(L298_ENA, OUTPUT);
pinMode(L298_IN1, OUTPUT);
pinMode(L298_IN2, OUTPUT);
digitalWrite(L298_IN1, HIGH); // ADELANTE
digitalWrite(L298_IN2, LOW);
}
void loop() {
// Temporizador principal: 1 tick/seg
if (millis() > (timerScheduler + 1000)) {
counterScheduler++;
timerScheduler = millis();
}
int brakingDelta = 5;
int accelerateDelta = 6;
// Fase 1: 0-5 seg -> Acelerar
if (counterScheduler <= 5) {
if (millis() > (timerLocal + 100)) {
if (speedAuto < 240) speedAuto += accelerateDelta;
else speedAuto = 255;
analogWrite(L298_ENA, speedAuto);
timerLocal = millis();
}
}
// Fase 2: 10-15 seg -> Frenar
if (counterScheduler >= 10 && counterScheduler <= 15) {
if (millis() > (timerLocal + 100)) {
if (speedAuto > 30) speedAuto -= brakingDelta;
else speedAuto = 0;
analogWrite(L298_ENA, speedAuto);
timerLocal = millis();
}
}
// Fase 3: 16 seg -> Cambiar dirección
if (counterScheduler == 16) {
digitalWrite(L298_IN1, LOW);
digitalWrite(L298_IN2, HIGH);
}
// Fase 4: 20-30 seg -> Acelerar (vuelta)
if (counterScheduler >= 20 && counterScheduler <= 30) {
if (millis() > (timerLocal + 100)) {
if (speedAuto < 240) speedAuto += accelerateDelta;
else speedAuto = 255;
analogWrite(L298_ENA, speedAuto);
timerLocal = millis();
}
}
// Fase 5: 31-40 seg -> Frenar
if (counterScheduler >= 31 && counterScheduler <= 40) {
if (millis() > (timerLocal + 100)) {
if (speedAuto > 30) speedAuto -= brakingDelta;
else speedAuto = 0;
analogWrite(L298_ENA, speedAuto);
timerLocal = millis();
}
}
// Fase 6: >40 seg -> Reiniciar ciclo
if (counterScheduler > 40) {
counterScheduler = 0;
digitalWrite(L298_IN1, HIGH);
digitalWrite(L298_IN2, LOW);
}
}
Esquemáticos
Esquema de cableado del control automático de tren (imágenes adjuntas).
Proceso de manufactura
- Pastillas Anticonceptivas: Historia, Beneficios, Riesgos y Producción
- Sistema Automatizado de Llenado y Monitorización de Piscina
- Máquinas de Prensa Automáticas: Funcionamiento, Beneficios y Aplicaciones
- Comprender las Prensas de Potencia Automáticas: Características, Beneficios y Aplicaciones
- Entendiendo las Curvadoras de Tubos Automáticas: Funciones, Beneficios y Aplicaciones
- Entendiendo las Mesas Rotativas Automáticas: Precisión y Eficiencia en Metalmecánica
- Guía Completa de Sistemas de Transmisión Automática
- Sistemas de Lubricación Automática: Cómo Funcionan y Por Qué Son Importantes
- Circuitos de Control: Fundamentos, Aplicaciones y Mejores Prácticas
- Trabajo en banco (benchwork): definición, aplicaciones y beneficios
- Comprender el control de calidad: Garantizar la excelencia consistente