Feuerspucker - Modellbahn-Digitaltechnik

Feuerspucker

Feuerspeier
Feuerspeier

Bei uns wird auf der Modellbahn ein Feuerspucker zu finden sein, der auf Knopfdruck seine Kunst zeigt. Schaltung und Sketch befinden sich derzeit noch in der Plaung/Entwicklung/Testphase.

Für den Ablauf braucht man eine Bibliothek, nämlich SoftPWM. Diese Bibliothek muss installiert werden auf dem lokalen Arduino System.

#include <SoftPWM.h>

int helligkeit, pin, pin2,pin3,pin4,pin5,pin6,pin7,pin8,pin9, geschwindigkeit = 200;
int Zufallszahl;
int x;

void setup() {
  SoftPWMBegin(SOFTPWM_NORMAL);
  SoftPWMSet(0, 0); // RX-Pin auf 0 setzen (LED0 aus)
  SoftPWMSet(1, 0); // TX-Pin auf 0 setzen (LED0 aus)
  delay(1000);
}

void loop() {
  x = 0;
  for (pin = 0; pin < 52; pin++) {
    SoftPWMSet(pin, 255); // Setzt den Pin auf 255
    delay(15);            // Wartet
    x++;

    if (x > 20) {         //Nachfolgende Pins werden auf 70% Helligkeit gedimmt
      SoftPWMSet(pin2, 70);
      pin2++;
    }

    if (x > 21) {
      SoftPWMSet(pin3, 60);
      pin3++;
    }

    if (x > 22) {
      SoftPWMSet(pin4, 50);
      pin4++;
    }    

    if (x > 23) {
      SoftPWMSet(pin5, 40);
      pin5++;
    }   

    if (x > 24) {
      SoftPWMSet(pin6, 30);
      pin6++;
    }   

    if (x > 25) {
      SoftPWMSet(pin7, 20);
      pin7++;
    }   

    if (x > 26) {
      SoftPWMSet(pin8, 10);
      pin8++;
    }   

    if (x > 27) {
      SoftPWMSet(pin9, 0);
      pin9++;
    }               


    if (pin == 51) {
      pin2 = 0;
      pin3 = 0;
      pin4 = 0;
      pin5 = 0;
      pin6 = 0;
      pin7 = 0;
      pin8 = 0;
      pin9 = 0;      
    }
  }

  //Zufallszahl berechnen
  Zufallszahl = random(500, 10000); //Von x bis y
  //  Serial.print (Zufallszahl);
    delay(Zufallszahl);    //Wartezeit bis neuer Durchgang (Knopf oder Zufall)
  //  Serial.println ();
}