Lauflicht schaltet kurz fehlerhaft um

Hallo,

jetzt eleganter ... :wink:

@ Udo: Warum nimmst Du die Wurzelfunktion und dann noch doppelt? Welchen anderen Effekt hat das zur Folge? Andere Steilheiten oder? Das habe ich noch nicht rausbekommen. Und wenn ich Deine Formel nachrechne erhalte ich negative delay Werte. Wie geht das denn?

// Arduino Mega 2560

int LED = 1;
int Pause;

void setup()
{     
   Serial.begin(9600);
   
   DDRC = 255;       // Port.C komplett Ausgang
   PORTC = 255;      // Port.C alle Ausgänge Ein - Funktionstest
   delay(500);
   PORTC = 0;        // Port.C alle Ausgänge Aus
   delay(500);
      
}

void loop()
{
  // beschleunigen CW
  for (int i=15; i>=0; i--)
  {
      PORTC = LED;    
      if (i > 0) {LED = LED << 1;}  
      if (LED > 128) {LED = 1;}
      Pause = (sq(i)*5)+6;
      delay(Pause);
      // Serial.print(i); Serial.print("  ");Serial.print(Pause); Serial.print("  "); Serial.println(LED);
  }

  delay(200);
  
  // abbremsen CCW
  for (int i=0; i<=15; i++)
  {
      PORTC = LED;    
      if (i < 15) {LED = LED >> 1;}  
      if (LED < 1) {LED = 128;}
      Pause = (sq(i)*5)+6;
      if (i == 14) {Pause = Pause + 800;}         // letzter Würfelumkippeffekt
      delay(Pause);
      // Serial.print(i); Serial.print("  ");Serial.print(Pause); Serial.print("  "); Serial.println(LED);
  }
 
  
}