int cycleTime = 1300; int pins[] = { 3, 4, 5, 6, 7, 8, 9, 10, 11 }; int numPins = 9; int numCycles = 46; int cycle = 0; int pinDigital[] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; int pinStatus[] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; int pinIntensity[] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; int intensityCurve[] = {101, 95, 85, 75, 50,0}; int intensityMark = 100; int timer = 0; int cycleDefs[46][9] = { // {5,0,5,0,5,0,5,0,5}, // {0,0,5,5,5,5,0,0,0}, {1,0,0,0,0,0,0,0,0}, {1,1,0,0,0,0,0,0,0}, {1,1,1,1,0,0,0,0,0}, {2,1,1,1,1,1,0,0,0}, {3,2,2,2,1,1,1,1,1}, {5,4,4,3,2,1,1,1,1}, {5,5,4,4,3,2,1,1,1}, {5,5,5,4,4,3,2,1,1}, {5,5,5,5,5,4,3,2,1}, {5,5,5,5,5,5,4,3,2}, {5,5,5,5,5,5,5,4,3}, {5,5,5,5,5,5,5,5,5}, {4,5,5,5,5,5,5,5,5}, {3,3,5,5,5,5,5,5,5}, {2,3,4,5,5,5,5,5,5}, {1,2,2,4,5,5,5,5,5}, {0,0,1,2,4,5,5,5,5}, {0,0,0,1,2,4,5,5,5}, {0,0,0,1,1,1,3,5,5}, {0,0,0,0,1,1,3,3,5}, {0,0,0,0,0,0,1,3,5}, {0,0,0,0,0,0,0,1,5}, {0,0,0,0,0,0,0,0,3}, // {5,0,5,0,5,0,5,0,5}, {0,0,0,0,0,0,0,0,3}, {0,0,0,0,0,0,0,1,5}, {0,0,0,0,0,0,1,3,5}, {0,0,0,0,1,1,3,3,5}, {0,0,0,1,1,1,3,5,5}, {0,0,0,1,2,4,5,5,5}, {0,0,1,2,4,5,5,5,5}, {1,2,2,4,5,5,5,5,5}, {2,3,4,5,5,5,5,5,5}, {3,3,5,5,5,5,5,5,5}, {4,5,5,5,5,5,5,5,5}, {5,5,5,5,5,5,5,5,5}, {5,5,5,5,5,5,5,4,3}, {5,5,5,5,5,5,5,3,2}, {5,5,5,5,5,5,4,3,2}, {5,5,5,5,5,4,3,2,1}, {5,5,4,4,3,2,1,1,1}, {5,4,4,3,2,1,1,1,1}, {3,2,2,2,1,1,1,1,1}, {2,1,1,1,1,1,0,0,0}, {1,1,1,1,0,0,0,0,0}, {1,1,0,0,0,0,0,0,0}, {1,0,0,0,0,0,0,0,0} }; void setup() { int i; // Serial.begin(9600); // Serial.println("Program Loaded"); for (i = 0; i < numPins; i++) { pinMode(pins[i], OUTPUT); } pinMode(13,OUTPUT); } void loop() { int i; int tmp; timer++; if((timer % intensityMark)==0) { for(i = 0; i pinIntensity[i]) { pinIntensity[i]++; } else if(targetIntensity < pinIntensity[i]) { pinIntensity[i]--; } } } for (i = 0; i < numPins; i++) { if((timer % intensityMark) >= pinIntensity[i]) { if(pinDigital[i] == 0) { pinDigital[i] = 1; digitalWrite(pins[i],HIGH); } } else { if(pinDigital[i] == 1) { pinDigital[i] = 0; digitalWrite(pins[i],LOW); } } } if(timer == cycleTime) { timer = 0; cycle++; } else { return; } // Serial.read(); if(cycle >= (numCycles)) { cycle = 0; digitalWrite(13,HIGH); } if(cycle == 20) { digitalWrite(13,LOW); } for(i=0; i