Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

DIY Automatische Modellbahn-Steuerung mit Arduino – Einfach & Flexibel

Komponenten und Zubehör

Komponente Anzahl
Arduino UNO (oder Nano, Mega, etc.) 1
L298N Dual H-Brücke Motortreiber (Modul) 1
Jumper-Kabel 1 Set

Software

Projektbeschreibung

Eine minimalistische, aber leistungsfähige Automatik für Modellbahn-Fahrzeuge. Der Zug fährt nach einem programmierbaren Fahrplan: Anfahren, Fahren, Bremsen, Halten, Richtungswechsel – alles einstellbar. Einfach Strom einschalten, und der Zug fährt los.

Fahrplan per Code definieren

Der Sketch nutzt einen Sekunden-Counter (counterScheduler) und Zeitfenster:

// 1. Phase: 0–5 s → Anfahren & Fahren
if (counterScheduler <= 5) { ... }

// 2. Phase: 10–15 s → Bremsen & Halten
if (counterScheduler >= 10 && counterScheduler <= 15) { ... }

// 3. Phase: 16 s → Richtungswechsel
if (counterScheduler == 16) { digitalWrite(L298_IN1, LOW); digitalWrite(L298_IN2, HIGH); }

// 4. Phase: 20–30 s → Rückfahrt
// 5. Phase: 31–40 s → Bremsen & Halten
// 6. Phase: >40 s → Reset zu Phase 1

Bewegungs-Parameter

int brakingDelta = 5;      // Brems-Rampen-Schritt
int accelerateDelta = 6;   // Beschleunigungs-Rampen-Schritt
// PWM-Werte: 0 = Stop, 255 = Max

Richtungssteuerung (L298N)

// Vorwärts
digitalWrite(L298_IN1, HIGH);
digitalWrite(L298_IN2, LOW);

// Rückwärts
digitalWrite(L298_IN1, LOW);
digitalWrite(L298_IN2, HIGH);

Kompletter Sketch (Swing-Demo)

// L298 Pinbelegung
#define L298_ENA 5
#define L298_IN1 6
#define L298_IN2 7

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);
  // Standard: Vorwärts
  digitalWrite(L298_IN1, HIGH);
  digitalWrite(L298_IN2, LOW);
}

void loop() {
  // 1-Sekunden-Takt für Fahrplan-Counter
  if (millis() > (timerScheduler + 1000)) {
    counterScheduler++;
    timerScheduler = millis();
  }

  int brakingDelta = 5;
  int accelerateDelta = 6;

  // Phase 1: 0-5 s → Beschleunigen
  if (counterScheduler <= 5) {
    if (millis() > (timerLocal + 100)) {
      if (speedAuto < 240) speedAuto += accelerateDelta;
      else speedAuto = 255;
      analogWrite(L298_ENA, speedAuto);
      timerLocal = millis();
    }
  }

  // Phase 2: 10-15 s → Bremsen
  if (counterScheduler >= 10 && counterScheduler <= 15) {
    if (millis() > (timerLocal + 100)) {
      if (speedAuto > 30) speedAuto -= brakingDelta;
      else speedAuto = 0;
      analogWrite(L298_ENA, speedAuto);
      timerLocal = millis();
    }
  }

  // Phase 3: 16 s → Richtungswechsel
  if (counterScheduler == 16) {
    digitalWrite(L298_IN1, LOW);
    digitalWrite(L298_IN2, HIGH);
  }

  // Phase 4: 20-30 s → Beschleunigen (Rückwärts)
  if (counterScheduler >= 20 && counterScheduler <= 30) {
    if (millis() > (timerLocal + 100)) {
      if (speedAuto < 240) speedAuto += accelerateDelta;
      else speedAuto = 255;
      analogWrite(L298_ENA, speedAuto);
      timerLocal = millis();
    }
  }

  // Phase 5: 31-40 s → Bremsen
  if (counterScheduler >= 31 && counterScheduler <= 40) {
    if (millis() > (timerLocal + 100)) {
      if (speedAuto > 30) speedAuto -= brakingDelta;
      else speedAuto = 0;
      analogWrite(L298_ENA, speedAuto);
      timerLocal = millis();
    }
  }

  // Phase 6: >40 s → Neustart
  if (counterScheduler > 40) {
    counterScheduler = 0;
    digitalWrite(L298_IN1, HIGH);
    digitalWrite(L298_IN2, LOW);
  }
}

Schaltplan

Arduino Pin 5 (PWM) → L298N ENA, Pin 6 → IN1, Pin 7 → IN2. Motor an OUT1/OUT2. Arduino & L298N Logik-Versorgung gemeinsam GND. Motor-Versorgung (z. B. 12V) an L298N VS & GND. Siehe Schaltplan-Bilder.

Erweiterungsideen

Herstellungsprozess

  1. Steuerschaltungen: Grundlagen, Anwendungen und Best Practices
  2. Automatisiertes Pool-Befüllungs- und Überwachungssystem
  3. Tischlerarbeit (Benchwork) verstehen: Definition, Anwendungen und Vorteile
  4. Qualitätskontrolle (QC): Sicherstellung konsistenter Exzellenz
  5. Automatische Pressen verstehen: Funktion, Vorteile und Anwendungen
  6. Automatische Exzenterpressen: Eigenschaften, Vorteile und Anwendungen
  7. Automatische Rohrbiegemaschinen: Funktionen, Vorteile und Anwendungen verstehen
  8. Automatische Rundtische verstehen: Präzision & Effizienz in der Metallbearbeitung
  9. Automatikgetriebe: Umfassender Leitfaden zu Aufbau, Typen & Funktion
  10. Automatische Zentralschmieranlagen: Funktionsweise, Typen & Nutzen