Introduction: Marriage Proposal Using RGB LED

About: just a simple guy who loves panda and building stuff

Marriage Proposal with lighting effects is common nowadays and there's two types of person, the one that just buy many lights effects stuff and the one that has a mind of engineer that has the imagination to build and want to impress her girl :)

This mini project is just a concept and may upgrade it by its size or her favorite color, shape, pattern, number of RGB LED or may used any lights. Its just your IMAGINATION and the LOVE for her is the limit :)

p.s

more effort more plus points more chances of winning :D

Step 1: Parts

1.) Bond Paper and Cardboard

2.) Wires at least two colors (i used #21 solid wires)

3.) RGB LED(I used Common cathode)

*i used 15 pcs

4.) Arduino(i used aceduino a clone of arduino)

5.) Breadboard

6.) 100 ohms Resistor

*15 pcs

Step 2: Draw Your Message

First Draw your desired message, you can be creative as you want then Make a hole on the cardboard to what design or shape you want and must be the size of your LED. Paste it in the front and your done :)

I decided to not print via a computer but write and draw the design by myself to impress her :D cause more effort more plus points to. XD

Step 3: Schematic Diagram

Arduino has a total of 20 pins(0-13 digital, A0-A5) and 1 RGB LED has 4pins(red, green, blue, gnd). Ive got 15RGB led.

I paired and soldered up my 3 RGB LED in parallel and that makes 5 pairs. Every 3pins of RGB is connected to 100ohms resistor to arduino pins, then LED Gnd to Arduino Gnd. So the 5 LED pair has 15 pins. Therefore I can control atleast 3 LED at a time. Anyway you can always use more RGB LED its up to you but that means using Arduino Mega that has more pins or use an LED Driver.

Step 4: Testing

After Soldering Connect your appropriate/desired pins to the arduino to test each LED.

Tips: Using Red, Green, and Blue wires to each of RGB LED pins is recommended for easier identification of each pins.

Step 5: Program

Every Pin of 15 RGB LED must be define and set as an Output correctly. Test it First with Red and if other color lit just swap wires or change the code. 
My code is just a blinking/running lights of basic different color but you can be creative as you want like what is her favorite color, shape or pattern of lights.






int ledBLUE5=A0;
int ledGREEN5=A1; int ledRED5=A2;

int ledBLUE1=2; int ledGREEN1=3; int ledRED1=4;
int ledBLUE4=5; 
int ledGREEN4=6;
int ledRED4=7;
int ledBLUE2=8; 
int ledGREEN2=9;
int ledRED2=10;
int ledBLUE3=11; 
int ledGREEN3=12;
int ledRED3=13;
int pause= 200;
int pause1=100;
void setup() {
  // put your setup code here, to run once:
pinMode(ledBLUE1, OUTPUT);
pinMode(ledGREEN1, OUTPUT);
pinMode(ledRED1, OUTPUT);
pinMode(ledBLUE2, OUTPUT);
pinMode(ledGREEN2, OUTPUT);
pinMode(ledRED2, OUTPUT);
pinMode(ledBLUE3, OUTPUT);
pinMode(ledGREEN3, OUTPUT);
pinMode(ledRED3, OUTPUT);
pinMode(ledBLUE4, OUTPUT);
pinMode(ledGREEN4, OUTPUT);
pinMode(ledRED4, OUTPUT);
pinMode(ledBLUE5, OUTPUT);
pinMode(ledGREEN5, OUTPUT);
pinMode(ledRED5, OUTPUT);
}
void loop() {
allred();
runred();
allred();
allgreen();
rungreen();
allgreen();
allblue();
runblue();
allblue();
allaqua();
runaqua();
allaqua();
allyellow();
runyellow();
allyellow();
allviolet();
runviolet();
allviolet();
}
void allred()
{
  digitalWrite(ledRED1, HIGH);
  digitalWrite(ledRED2, HIGH);
  digitalWrite(ledRED3, HIGH);
  digitalWrite(ledRED4, HIGH);
  digitalWrite(ledRED5, HIGH);
delay(pause);
  digitalWrite(ledRED1, LOW);
  digitalWrite(ledRED2, LOW);
  digitalWrite(ledRED3, LOW);
  digitalWrite(ledRED4, LOW);
  digitalWrite(ledRED5, LOW);
delay(pause);
}  
void allgreen()
{
  digitalWrite(ledGREEN1, HIGH);
  digitalWrite(ledGREEN2, HIGH);
  digitalWrite(ledGREEN3, HIGH);
  digitalWrite(ledGREEN4, HIGH);
  digitalWrite(ledGREEN5, HIGH);
delay(pause);
  digitalWrite(ledGREEN1, LOW);
  digitalWrite(ledGREEN2, LOW);
  digitalWrite(ledGREEN3, LOW);
  digitalWrite(ledGREEN4, LOW);
  digitalWrite(ledGREEN5, LOW);
delay(pause);
} 
void allblue()
{
  digitalWrite(ledBLUE1, HIGH);
  digitalWrite(ledBLUE2, HIGH);
  digitalWrite(ledBLUE3, HIGH);
  digitalWrite(ledBLUE4, HIGH);
  digitalWrite(ledBLUE5, HIGH);
delay(pause);
  digitalWrite(ledBLUE1, LOW);
  digitalWrite(ledBLUE2, LOW);
  digitalWrite(ledBLUE3, LOW);
  digitalWrite(ledBLUE4, LOW);
  digitalWrite(ledBLUE5, LOW);
delay(pause); 
}
void allaqua()
{
  digitalWrite(ledBLUE1, HIGH);
  digitalWrite(ledBLUE2, HIGH);
  digitalWrite(ledBLUE3, HIGH);
  digitalWrite(ledBLUE4, HIGH);
  digitalWrite(ledBLUE5, HIGH);
  
  digitalWrite(ledGREEN1, HIGH);
  digitalWrite(ledGREEN2, HIGH);
  digitalWrite(ledGREEN3, HIGH);
  digitalWrite(ledGREEN4, HIGH);
  digitalWrite(ledGREEN5, HIGH);
delay(pause);
  digitalWrite(ledBLUE1, LOW);
  digitalWrite(ledBLUE2, LOW);
  digitalWrite(ledBLUE3, LOW);
  digitalWrite(ledBLUE4, LOW);
  digitalWrite(ledBLUE5, LOW);
  
    digitalWrite(ledGREEN1, LOW);
  digitalWrite(ledGREEN2, LOW);
  digitalWrite(ledGREEN3, LOW);
  digitalWrite(ledGREEN4, LOW);
  digitalWrite(ledGREEN5, LOW);
delay(pause); 
}
void allyellow()
{
  digitalWrite(ledRED1, HIGH);
  digitalWrite(ledRED2, HIGH);
  digitalWrite(ledRED3, HIGH);
  digitalWrite(ledRED4, HIGH);
  digitalWrite(ledRED5, HIGH);
  
 digitalWrite(ledGREEN1, HIGH);
  digitalWrite(ledGREEN2, HIGH);
  digitalWrite(ledGREEN3, HIGH);
  digitalWrite(ledGREEN4, HIGH);
  digitalWrite(ledGREEN5, HIGH);
delay(pause);
digitalWrite(ledRED1, LOW);
  digitalWrite(ledRED2, LOW);
  digitalWrite(ledRED3, LOW);
  digitalWrite(ledRED4, LOW);
  digitalWrite(ledRED5, LOW);
  
    digitalWrite(ledGREEN1, LOW);
  digitalWrite(ledGREEN2, LOW);
  digitalWrite(ledGREEN3, LOW);
  digitalWrite(ledGREEN4, LOW);
  digitalWrite(ledGREEN5, LOW);
delay(pause); 
}
void allviolet()
{
    digitalWrite(ledRED1, HIGH);
  digitalWrite(ledRED2, HIGH);
  digitalWrite(ledRED3, HIGH);
  digitalWrite(ledRED4, HIGH);
  digitalWrite(ledRED5, HIGH);
 digitalWrite(ledBLUE1, HIGH);
  digitalWrite(ledBLUE2, HIGH);
  digitalWrite(ledBLUE3, HIGH);
  digitalWrite(ledBLUE4, HIGH);
  digitalWrite(ledBLUE5, HIGH);
  delay(pause);
  digitalWrite(ledRED1, LOW);
  digitalWrite(ledRED2, LOW);
  digitalWrite(ledRED3, LOW);
  digitalWrite(ledRED4, LOW);
  digitalWrite(ledRED5, LOW);
    digitalWrite(ledBLUE1, LOW);
  digitalWrite(ledBLUE2, LOW);
  digitalWrite(ledBLUE3, LOW);
  digitalWrite(ledBLUE4, LOW);
  digitalWrite(ledBLUE5, LOW);
delay(pause); 
  
}
void runred()
{
  digitalWrite(ledRED1, HIGH);
  delay(pause1);
  digitalWrite(ledRED2, HIGH);
  delay(pause1);
  digitalWrite(ledRED3, HIGH);
  delay(pause1);
  digitalWrite(ledRED4, HIGH);
  delay(pause1);
  digitalWrite(ledRED5, HIGH);
  delay(pause1);
  
  digitalWrite(ledRED1, LOW);
  delay(pause1);
  digitalWrite(ledRED2, LOW);
  delay(pause1);
  digitalWrite(ledRED3, LOW);
  delay(pause1);
  digitalWrite(ledRED4, LOW);
  delay(pause1);
  digitalWrite(ledRED5, LOW);
  delay(pause1);
}
void rungreen()
{
  digitalWrite(ledGREEN1, HIGH);
  delay(pause1);
  digitalWrite(ledGREEN2, HIGH);
  delay(pause1);
  digitalWrite(ledGREEN3, HIGH);
  delay(pause1);
  digitalWrite(ledGREEN4, HIGH);
  delay(pause1);
  digitalWrite(ledGREEN5, HIGH);
  delay(pause1);
  
  digitalWrite(ledGREEN1, LOW);
  delay(pause1);
  digitalWrite(ledGREEN2, LOW);
  delay(pause1);
  digitalWrite(ledGREEN3, LOW);
  delay(pause1);
  digitalWrite(ledGREEN4, LOW);
  delay(pause1);
  digitalWrite(ledGREEN5, LOW);
  delay(pause1);
}
void runblue()
{
  digitalWrite(ledBLUE1, HIGH);
  delay(pause1);
  digitalWrite(ledBLUE2, HIGH);
  delay(pause1);
  digitalWrite(ledBLUE3, HIGH);
  delay(pause1);
  digitalWrite(ledBLUE4, HIGH);
  delay(pause1);
  digitalWrite(ledBLUE5, HIGH);
  delay(pause1);
  
  digitalWrite(ledBLUE1, LOW);
  delay(pause1);
  digitalWrite(ledBLUE2, LOW);
  delay(pause1);
  digitalWrite(ledBLUE3, LOW);
  delay(pause1);
  digitalWrite(ledBLUE4, LOW);
  delay(pause1);
  digitalWrite(ledBLUE5, LOW);
  delay(pause1);
}
void runaqua()
{
 digitalWrite(ledBLUE1, HIGH);
   digitalWrite(ledGREEN1, HIGH);
 delay(pause1);
  digitalWrite(ledBLUE2, HIGH);
    digitalWrite(ledGREEN2, HIGH);
delay(pause1);
  digitalWrite(ledBLUE3, HIGH);
   digitalWrite(ledGREEN3, HIGH);
  delay(pause1);
  digitalWrite(ledBLUE4, HIGH);
    digitalWrite(ledGREEN4, HIGH);
  delay(pause1);
  digitalWrite(ledBLUE5, HIGH);
    digitalWrite(ledGREEN5, HIGH);
delay(pause1);  
digitalWrite(ledBLUE1, LOW);
   digitalWrite(ledGREEN1, LOW);
 delay(pause1);
  digitalWrite(ledBLUE2, LOW);
    digitalWrite(ledGREEN2, LOW);
delay(pause1);
  digitalWrite(ledBLUE3, LOW);
   digitalWrite(ledGREEN3, LOW);
  delay(pause1);
  digitalWrite(ledBLUE4, LOW);
    digitalWrite(ledGREEN4, LOW);
  delay(pause1);
  digitalWrite(ledBLUE5, LOW);
    digitalWrite(ledGREEN5, LOW);
delay(pause1);  
}
void runyellow()
{
 digitalWrite(ledRED1, HIGH);
   digitalWrite(ledGREEN1, HIGH);
 delay(pause1);
 digitalWrite(ledRED2, HIGH);
   digitalWrite(ledGREEN2, HIGH);
 delay(pause1);
 digitalWrite(ledRED3, HIGH);
   digitalWrite(ledGREEN3, HIGH);
 delay(pause1);
 digitalWrite(ledRED4, HIGH);
   digitalWrite(ledGREEN4, HIGH);
 delay(pause1);
 digitalWrite(ledRED5, HIGH);
   digitalWrite(ledGREEN5, HIGH);
 delay(pause1);
 digitalWrite(ledRED1, LOW);
   digitalWrite(ledGREEN1, LOW);
 delay(pause1);
 digitalWrite(ledRED2, LOW);
   digitalWrite(ledGREEN2, LOW);
 delay(pause1);
 digitalWrite(ledRED3, LOW);
   digitalWrite(ledGREEN3, LOW);
 delay(pause1);
 digitalWrite(ledRED4, LOW);
   digitalWrite(ledGREEN4, LOW);
 delay(pause1);
 digitalWrite(ledRED5, LOW);
   digitalWrite(ledGREEN5, LOW);
 delay(pause1);
}
 void runviolet()
 {
   digitalWrite(ledRED1, HIGH);
   digitalWrite(ledBLUE1, HIGH);
 delay(pause1);
   digitalWrite(ledRED2, HIGH);
   digitalWrite(ledBLUE2, HIGH);
 delay(pause1);
  digitalWrite(ledRED3, HIGH);
   digitalWrite(ledBLUE3, HIGH);
 delay(pause1);
  digitalWrite(ledRED3, HIGH);
   digitalWrite(ledBLUE3, HIGH);
 delay(pause1);
  digitalWrite(ledRED4, HIGH);
   digitalWrite(ledBLUE4, HIGH);
 delay(pause1);
  digitalWrite(ledRED5, HIGH);
   digitalWrite(ledBLUE5, HIGH);
 delay(pause1);
  digitalWrite(ledRED1, LOW);
   digitalWrite(ledBLUE1, LOW);
 delay(pause1);
   digitalWrite(ledRED2, LOW);
   digitalWrite(ledBLUE2, LOW);
 delay(pause1);
  digitalWrite(ledRED3, LOW);
   digitalWrite(ledBLUE3, LOW);
 delay(pause1);
  digitalWrite(ledRED3, LOW);
   digitalWrite(ledBLUE3, LOW);
 delay(pause1);
  digitalWrite(ledRED4, LOW);
   digitalWrite(ledBLUE4, LOW);
 delay(pause1);
  digitalWrite(ledRED5, LOW);
   digitalWrite(ledBLUE5, LOW);
 delay(pause1);
 }
LED Contest 2017

Participated in the
LED Contest 2017