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<numPins; i++)
{
int targetIntensity = intensityCurve[pinStatus[i]];
if(targetIntensity > 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<numPins; i++)
{
pinStatus[i] = cycleDefs[cycle][i];
}
}
can someone please tell me how this code works.if i want to change the effects how do i do it..which lines do i need to change.how do i change the speed..