void setup() {
// SETTING UP ALL 21 PINS
pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT);
pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT);
pinMode(8, OUTPUT); pinMode(9, OUTPUT); pinMode(10, OUTPUT);
pinMode(11, OUTPUT); pinMode(12, OUTPUT); pinMode(13, OUTPUT);
pinMode(14, OUTPUT); pinMode(15, OUTPUT); pinMode(16, OUTPUT);
pinMode(17, OUTPUT); pinMode(18, OUTPUT); pinMode(19, OUTPUT);
pinMode(20, OUTPUT); pinMode(21, OUTPUT); pinMode(22, OUTPUT);
}
void loop() {
// --- STAGE 1: THE ACCELERATING RUNWAY ---
// One light travels across, getting faster as it reaches the end
digitalWrite(2, HIGH); delay(200); digitalWrite(2, LOW);
digitalWrite(3, HIGH); delay(180); digitalWrite(3, LOW);
digitalWrite(4, HIGH); delay(160); digitalWrite(4, LOW);
digitalWrite(5, HIGH); delay(140); digitalWrite(5, LOW);
digitalWrite(6, HIGH); delay(120); digitalWrite(6, LOW);
digitalWrite(7, HIGH); delay(100); digitalWrite(7, LOW);
digitalWrite(8, HIGH); delay(80); digitalWrite(8, LOW);
digitalWrite(9, HIGH); delay(60); digitalWrite(9, LOW);
digitalWrite(10, HIGH); delay(40); digitalWrite(10, LOW);
digitalWrite(11, HIGH); delay(20); digitalWrite(11, LOW);
digitalWrite(12, HIGH); delay(10); digitalWrite(12, LOW);
digitalWrite(13, HIGH); delay(20); digitalWrite(13, LOW);
digitalWrite(14, HIGH); delay(40); digitalWrite(14, LOW);
digitalWrite(15, HIGH); delay(60); digitalWrite(15, LOW);
digitalWrite(16, HIGH); delay(80); digitalWrite(16, LOW);
digitalWrite(17, HIGH); delay(100); digitalWrite(17, LOW);
digitalWrite(18, HIGH); delay(120); digitalWrite(18, LOW);
digitalWrite(19, HIGH); delay(140); digitalWrite(19, LOW);
digitalWrite(20, HIGH); delay(160); digitalWrite(20, LOW);
digitalWrite(21, HIGH); delay(180); digitalWrite(21, LOW);
digitalWrite(22, HIGH); delay(200); digitalWrite(22, LOW);
// --- STAGE 2: THE DUAL COLLISION ---
// Lights race from BOTH ends and meet in the middle
digitalWrite(2, HIGH); digitalWrite(22, HIGH); delay(100);
digitalWrite(2, LOW); digitalWrite(22, LOW);
digitalWrite(3, HIGH); digitalWrite(21, HIGH); delay(100);
digitalWrite(3, LOW); digitalWrite(21, LOW);
digitalWrite(4, HIGH); digitalWrite(20, HIGH); delay(100);
digitalWrite(4, LOW); digitalWrite(20, LOW);
digitalWrite(5, HIGH); digitalWrite(19, HIGH); delay(100);
digitalWrite(5, LOW); digitalWrite(19, LOW);
digitalWrite(6, HIGH); digitalWrite(18, HIGH); delay(100);
digitalWrite(6, LOW); digitalWrite(18, LOW);
digitalWrite(7, HIGH); digitalWrite(17, HIGH); delay(100);
digitalWrite(7, LOW); digitalWrite(17, LOW);
digitalWrite(8, HIGH); digitalWrite(16, HIGH); delay(100);
digitalWrite(8, LOW); digitalWrite(16, LOW);
digitalWrite(9, HIGH); digitalWrite(15, HIGH); delay(100);
digitalWrite(9, LOW); digitalWrite(15, LOW);
digitalWrite(10, HIGH); digitalWrite(14, HIGH); delay(100);
digitalWrite(10, LOW); digitalWrite(14, LOW);
digitalWrite(11, HIGH); digitalWrite(13, HIGH); delay(100);
digitalWrite(11, LOW); digitalWrite(13, LOW);
// CENTER IMPACT
digitalWrite(12, HIGH); delay(500); digitalWrite(12, LOW); delay(100);
// --- STAGE 3: THE FILL-UP (Charging) ---
// The bar fills up one by one and stays lit
digitalWrite(2, HIGH); delay(50);
digitalWrite(3, HIGH); delay(50);
digitalWrite(4, HIGH); delay(50);
digitalWrite(5, HIGH); delay(50);
digitalWrite(6, HIGH); delay(50);
digitalWrite(7, HIGH); delay(50);
digitalWrite(8, HIGH); delay(50);
digitalWrite(9, HIGH); delay(50);
digitalWrite(10, HIGH); delay(50);
digitalWrite(11, HIGH); delay(50);
digitalWrite(12, HIGH); delay(50);
digitalWrite(13, HIGH); delay(50);
digitalWrite(14, HIGH); delay(50);
digitalWrite(15, HIGH); delay(50);
digitalWrite(16, HIGH); delay(50);
digitalWrite(17, HIGH); delay(50);
digitalWrite(18, HIGH); delay(50);
digitalWrite(19, HIGH); delay(50);
digitalWrite(20, HIGH); delay(50);
digitalWrite(21, HIGH); delay(50);
digitalWrite(22, HIGH); delay(300);
// --- STAGE 4: THE HEARTBEAT STROBE ---
// All 21 LEDs flash rapidly like a heartbeat
digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW);
digitalWrite(6, LOW); digitalWrite(7, LOW); digitalWrite(8, LOW); digitalWrite(9, LOW);
digitalWrite(10, LOW); digitalWrite(11, LOW); digitalWrite(12, LOW); digitalWrite(13, LOW);
digitalWrite(14, LOW); digitalWrite(15, LOW); digitalWrite(16, LOW); digitalWrite(17, LOW);
digitalWrite(18, LOW); digitalWrite(19, LOW); digitalWrite(20, LOW); digitalWrite(21, LOW);
digitalWrite(22, LOW);
delay(100);
digitalWrite(2, HIGH); digitalWrite(3, HIGH); digitalWrite(4, HIGH); digitalWrite(5, HIGH);
digitalWrite(6, HIGH); digitalWrite(7, HIGH); digitalWrite(8, HIGH); digitalWrite(9, HIGH);
digitalWrite(10, HIGH); digitalWrite(11, HIGH); digitalWrite(12, HIGH); digitalWrite(13, HIGH);
digitalWrite(14, HIGH); digitalWrite(15, HIGH); digitalWrite(16, HIGH); digitalWrite(17, HIGH);
digitalWrite(18, HIGH); digitalWrite(19, HIGH); digitalWrite(20, HIGH); digitalWrite(21, HIGH);
digitalWrite(22, HIGH);
delay(100);
digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW);
digitalWrite(6, LOW); digitalWrite(7, LOW); digitalWrite(8, LOW); digitalWrite(9, LOW);
digitalWrite(10, LOW); digitalWrite(11, LOW); digitalWrite(12, LOW); digitalWrite(13, LOW);
digitalWrite(14, LOW); digitalWrite(15, LOW); digitalWrite(16, LOW); digitalWrite(17, LOW);
digitalWrite(18, LOW); digitalWrite(19, LOW); digitalWrite(20, LOW); digitalWrite(21, LOW);
digitalWrite(22, LOW);
delay(1000); // Grand pause before restart
}