Page 197 - BiDiB und iTrain
P. 197

void Farbe_Morgen(unsigned int rO, unsigned int rU, unsigned int gO, unsigned int
       gU,unsigned int bO, unsigned int bU){
             int r = rO - rU;
             int g = gO - gU;
             int b = bO - bU;
             int a = 0;
             int c = 0;
             int d = 0;
           int maxWert = r;                  // ermittel der maximalen Durchlaufe der for-Schleife
           if (maxWert < g){                 // er wird mit den größten Wert von r, b und g ermittelt
             maxWert = g;                    // es könnte somit 255 (größter Schritt) * (50+50+50+500
       - siehe for schleife delay)
             }                               // im Zeitdurchlauf werden = 165750msec werden. Somit sollte
       der geringste Wert für die Stunde
           if (maxWert < b){                 // (Var Zeit) nicht kleiner als 180000msec (2,5 min sein)
       Somit dauert ein Tag 2,5 min * 24 = 60 min
             maxWert = b;                    // Somit dauert ein Tag eine Stunde auf der Modellbahn -
       bei der Farbeinstellung (wie Vorgabe) kann man bis 10000ms rundergehen.
             }

             for (maxWert; maxWert > 1 ; maxWert=maxWert-5){

               if (r>0 ){
                 a = a+5;                     // hochzählen bis maxWert mit dem wert macht man die
       stufung fest feiner als 5 erhöht die Wertezeit zwischen den einzelen Stunden
                 r = r-5;                     // den Farbwert der dargestellt wird um 5 veringern um die
       forschleife bei 0 zu beeneden
                 DmxSimple.write(1,(a+rU));   // ROT einschalten
                 delay(50);
                 }
               if (g>0 ){
                 c = c+5;
                 g = g-5;
                 DmxSimple.write(2,(c+gU));  // GRÜN einschalten
   192   193   194   195   196   197   198   199   200   201   202