Gummiball-Lauflicht (und: Bist Du ein Künstler?)



Eine Programmerweiterung des 14-Kanal-Lauflichtes, damit der Leuchtpunkt wie ein von der Erde abprellender Gummiball hüpft.
Die Schaltung ist dieselbe.

/*
  Gummiball-Lauflicht
  LEDs an den Ausgängen: 0..13
  LED Strombegrenzung: R1 = 220 Ohm
   
  www.arduinospielwiese.de 
*/


int i; //Laufvariable
int zeit=3;  //"Geschwindigkeit" des Gummiballs
int oben=13; //Obere Positionen des Gummiballs
 
void setup() {               
  for(i=0; i<14; i++){ pinMode( i, OUTPUT); }
}



void loop() {
 
    for(i=oben; i>=0; i--){
       digitalWrite(i, HIGH);  
       delay(zeit*(i+zeit)); //Berechnung der Zeit von einer Position zur nächsten
       digitalWrite(i, LOW);
    }
   
    oben--;
   
    for(i=0; i<=oben; i++){
       digitalWrite(i, HIGH);  
       delay(zeit*(i+zeit));
       digitalWrite(i, LOW);
    }

    if (oben == 0) {oben = 13;}
 
}


Bist Du ein Künstler?

Die Leute von ARDUINO erwähnen immer wieder, dass ihr Arduino für Künstler geschaffen wurde, z. B. damit diese damit künstlerische Lichtinstallationen steuern können. So ein Künstler würde die Berechnung der Zeit zwischen zwei Positionen vielleicht auch eleganter machen.
Schau einfach in Deinem Physikwissensspeicher nach, wie sich die Zeit tatsächlich bei Erdbeschleunigung von 9.81 m/s^2 verhält. Dann sieht Dein "Gummiball" noch realistischer aus.

Dann muss der Variablentyp aber nicht mehr int (Integer) sondern ein Fließkommatyp (z. B. float) sein (siehe Variablen).

Aber das wollte ich Dir jetzt mal ersparen.   =o)