Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

DIY Automatische Treinbesturing met Arduino – Eenvoudig, Betrouwbaar en Aanpasbaar

Onderdelen en benodigdheden

Onderdeel Aantal
Jumper wires 1 set
Arduino UNO (of Nano, Mega, etc.) 1
L298 Dual H-brug motordriver (module aanbevolen) 1

Apps en online diensten

  • Arduino IDE

Over dit project

Met dit simpele schema laat je je modeltrein automatisch rijden volgens een tijdschema. Je kunt rijtijd, stoptijd, versnelling en afremming instellen. Door de parameters in de sketch aan te passen, creëer je elk gewenst beweegpatroon. Alleen spanning aan en de trein vertrekt.

Tijdschema in de sketch

// 1 | 0 > Tijd < 5 sec
if (counterScheduler <= 5) { ... }
// 2 | 10 sec > Tijd < 15 sec
if ((counterScheduler >= 10) && (counterScheduler <= 15)) { ... }
// 3 | Richting omkeren
if (counterScheduler == 16) { ... }
// etc.

Bewegingsparameters

int brakingDelta = 5;
int accelerateDelta = 6;

Richtingbesturing

Pinnen D6 en D7 bepalen de richting:

// Standaard richting VOORUIT
digitalWrite(L298_IN1, HIGH);
digitalWrite(L298_IN2, LOW);

Je kunt de sketch eindeloos aanpassen voor nieuwe automatische rijpatronen. Goede reis!

Code

Swing Sketch (Arduino)

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

// Script variabelen
int counterScheduler;
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);
  // Standaard richting VOORUIT
  digitalWrite(L298_IN1, HIGH);
  digitalWrite(L298_IN2, LOW);
}

void loop() {
  // Scheduler tick elke seconde
  if (millis() > (timerScheduler + 1000)) {
    counterScheduler++;
    timerScheduler = millis();
  }

  int brakingDelta = 5;
  int accelerateDelta = 6;

  // 1 | 0-5 sec: Opstarten en versnellen
  if (counterScheduler <= 5) {
    if (millis() > (timerLocal + 100)) {
      if (speedAuto < 240) speedAuto += accelerateDelta;
      else speedAuto = 255;
      analogWrite(L298_ENA, speedAuto);
      timerLocal = millis();
    }
  }

  // 2 | 10-15 sec: Afremmen en stoppen
  if ((counterScheduler >= 10) && (counterScheduler <= 15)) {
    if (millis() > (timerLocal + 100)) {
      if (speedAuto > 30) speedAuto -= brakingDelta;
      else speedAuto = 0;
      analogWrite(L298_ENA, speedAuto);
      timerLocal = millis();
    }
  }

  // 3 | 16 sec: Richting omkeren
  if (counterScheduler == 16) {
    digitalWrite(L298_IN1, LOW);
    digitalWrite(L298_IN2, HIGH);
  }

  // 4 | 20-30 sec: Opnieuw starten en versnellen
  if ((counterScheduler >= 20) && (counterScheduler <= 30)) {
    if (millis() > (timerLocal + 100)) {
      if (speedAuto < 240) speedAuto += accelerateDelta;
      else speedAuto = 255;
      analogWrite(L298_ENA, speedAuto);
      timerLocal = millis();
    }
  }

  // 5 | 31-40 sec: Afremmen en stoppen
  if ((counterScheduler >= 31) && (counterScheduler <= 40)) {
    if (millis() > (timerLocal + 100)) {
      if (speedAuto > 30) speedAuto -= brakingDelta;
      else speedAuto = 0;
      analogWrite(L298_ENA, speedAuto);
      timerLocal = millis();
    }
  }

  // 6 | Na 40 sec: Reset naar stap 1
  if (counterScheduler > 40) {
    counterScheduler = 0;
    digitalWrite(L298_IN1, HIGH);
    digitalWrite(L298_IN2, LOW);
  }
}

Schema's

DIY Automatische Treinbesturing met Arduino – Eenvoudig, Betrouwbaar en Aanpasbaar
DIY Automatische Treinbesturing met Arduino – Eenvoudig, Betrouwbaar en Aanpasbaar

Productieproces

  1. Anticonceptiepil: Geschiedenis, Voordelen, Risico's en Productie
  2. Geautomatiseerd Zwembadvul- en Monitoringssysteem
  3. Automatische Persmachines: Functie, Voordelen en Toepassingen Begrijpen
  4. Automatische krachtpressen: kenmerken, voordelen en toepassingen
  5. Automatische Buigmachines Begrijpen: Functies, Voordelen en Toepassingen
  6. Automatische Draaitafels Begrijpen: Precisie & Efficiëntie in Metaalbewerking
  7. Uitgebreide Gids voor Automatische Transmissiesystemen
  8. Automatische smeringssystemen: Hoe ze werken en waarom ze belangrijk zijn
  9. Regelschakelingen: Fundamenten, Toepassingen en Best Practices
  10. Bankwerk begrijpen: Definitie, toepassingen en voordelen
  11. Kwaliteitscontrole begrijpen: Consistentie en excellentie garanderen