Feuerspucker

Digitaltechnik und Elektronik der Modellbahn-Anlage.de

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 ();
}