
Discreet LED Marquee
Arduino / Material ExplorationLess is more
We believe that every object in our daily lives has the opportunity to be rethought.
The LED marquees commonly seen in public transportation always have a large black area that cannot blend in with the interior, no matter what. Traditionally, the displayed content has been the focus. If we could find a way to hide the blank areas, it might be an unspoken yet delightful improvement for passengers.

We discovered that certain materials have unique molecular arrangements that can obscure the components behind them while also guiding light through. This makes them a perfect solution for our vision. Additionally, using an Arduino to control the LED array with a gradual breathing effect faithfully brings our design intentions to life.
Result
We successfully found a balance between concealing electronic components and ensuring light transmission in the choice of LED and materials, and effectively controlled the lighting using an Arduino program.
Arduino Code (C++)
main.ino
#define st1 8
#define st2 7
#define Showcase 6
#define BreathTime (5000/2)
int swRead1 = 0;
int swRead2 = 0;
void setup() {
Serial.begin(9600);
pinMode(st1,INPUT);
digitalWrite(st1,HIGH);
pinMode(st2,INPUT);
digitalWrite(st2,HIGH);
pinMode(Showcase,OUTPUT);
}
void loop() {
swRead1 = digitalRead( st1 );
swRead2 = digitalRead( st2 );
Serial.print(swRead1);
Serial.println(swRead2);
if( swRead1 == HIGH && swRead2 == LOW){
for(int i =1; i <= 255; i++){
analogWrite(Showcase, 255 - i);
delay(BreathTime / 255);
}
delay( BreathTime / 10);
for(int i =1; i <= 255; i++){
analogWrite(Showcase, i);
delay(BreathTime / 255);
}
}
else if( swRead1 == LOW && swRead2 == HIGH){
analogWrite(Showcase, 255);
delay(10000);
for (int k =1; k <= 6; k++){
for(int i =1; i <= 255; i++){
analogWrite(Showcase, 255 - i);
delay(BreathTime / 255);
}
delay( BreathTime / 10);
for(int i =1; i <= 255; i++){
analogWrite(Showcase, i);
delay(BreathTime / 255);
}
}
}
else{
analogWrite(Showcase, 255);
}
}