// Fallout New Vegas "WELCOME" Sign
// ESP32-C6
// 6 solid LEDs + 1 flickering LED (last letter)
const int solidPins[] = {0, 1, 2, 3, 4, 5}; // W, E, L, C, O, M
const int flickerPin = 6; // E (final letter)
const int NUM_SOLID = 6;
void setup() {
for (int i = 0; i < NUM_SOLID; i++) {
pinMode(solidPins[i], OUTPUT);
digitalWrite(solidPins[i], HIGH);
}
pinMode(flickerPin, OUTPUT);
}
void loop() {
int r = random(100);
if (r < 15) {
// Full blackout
analogWrite(flickerPin, 0);
delay(random(100, 500));
} else if (r < 25) {
// Rapid strobe burst — struggling to ignite
for (int i = 0; i < 3; i++) {
analogWrite(flickerPin, random(150, 255));
delay(random(20, 40));
analogWrite(flickerPin, 0);
delay(random(20, 40));
}
} else if (r < 40) {
// Dim flicker
analogWrite(flickerPin, random(30, 80));
delay(random(30, 100));
} else if (r < 55) {
// Medium brightness stutter
analogWrite(flickerPin, random(100, 180));
delay(random(20, 60));
} else {
// Mostly on but sickly (dying bulb)
analogWrite(flickerPin, random(140, 200));
delay(random(50, 150));
}
}