When I am working on a project I love long stretches of uninterrupted creative thought, so I designed this Busy-o-meter to let people know if I'm in the zone before they come interrupt me.
Things you will need:
- Cardboard (Tissue Box)
- X-acto knife (or scissors)
- Green, Red, and Yellow LED's
- Resistors
- Breadboard
- Wires
- Momentary Button
- Diffusion Paper (Wax paper or any slightly transparent paper)
- Tape
- Sharpie
Step 1. Materials Needed
If you don't have all the materials here, feel free to just make the circuit or make your own custom take on this project. There is no wrong way to learn
Step 2: Cutting the Cardboard
Start by drawing a line about one inch from the edge. I used the piezo buzzer we got in our kit to them make three evenly spaced circles centered on that line. These will be cut out and then replaced with transparent paper to become windows for out LED's to shine through.
Next I wrote down what I think each level of busyness should represent. Don't worry if you want to change these later we are going to spray paint the box and write the final levels in a later step.
Finally I cut out the windows with an X-Acto knife. Please be careful as these are crazy sharp.
Step 3: Making the Windows
Cut a rectangle out of your diffusion paper that is slightly larger than your holes, then tape that rectangle onto the inside of your Busy-o-Meter box.
Two Images, no captions
Step 4: Spray Paint Box
Now replace the circle cutouts and spray paint your box whatever color you like. I'm going with Pure White spray paint from Montana. Also, check to see if your cardboard has a coating, this tissue box had a waxy coating that made spray painting slightly more difficult. If you prep the surface with a little sand paper you will be good to go :)
Step 5: Add Wires to LED's
While our box could totally fit the Arduino and breadboard inside with some creative positioning. I am going to elongate the LED wires and keep the Arduino and breadboard on the outside for east reprogramming.
To lengthen the LED's I used red and black copper wire. I first stripped both ends with the universal wire stripper. Remember that the negative side of the LED is the shorter side, so make sure to attach the black wire properly so you don't accidentally fry the LED.
For bonus points I spun the wire in a drill to keep everything neat and tidy
Step 6: Adding LED's to Busy-o-Meter
Now we need to get the LED's into the windows of our Busy-o-Meter. I decided to use tape to secure them to the inside of the box behind the diffusion paper. You could also hot glue them.
Step 7: Breadboard Circuit Part 1
For this project we are going to want each LED to be controlled by a different pin on the Arduino. This requires us making three different circuits for each LED (don't worry this is way easier than it sounds). First plug the black wire of each LED into the negative (Ground) side of the breadboard, and run a jumper cable form the GND pin on the Arduino to the negative rail of the breadboard.
Next we are going to add three resistors onto the positive side of each LED. You want resistors that have two red stripes followed by a brown stripe. Place the resistor across the center of the breadboard. This ensures that the two ends of the resistor are not electrically connected.
o finish off this step we are going run jumper wires from pins 3,4 and 5 to the Red, Yellow and Green LED's.
Step 8: Breadboard Circuit Part 2
To finish off the circuitry for this project we are going to add a button with which to scroll through our different busy settings. For this we are going to use something called a pull up resistor. As you can see in the picture above you want the button to bridge the middle of the breadboard. Now grab two long wires from your kit. Plug one into the 5V pin of the Arduino and then into the breadboard below the button. Plug the second into pin 6 on the Arudino and the top pin of the button.
Next, grab a resistor, the exact same value as the ones used in the last step (red, red brown = 220 Ohms) and plug one end into the same row as the button and the wire coming from pin 6 and the other end into the same row as the yellow wire coming from the 5V pin on the Arduino, in the picture this is the lower one.
Finally, you'll need to add a small jumper wire, to connect the bottom pin of the button to the negative column of the breadboard.
Step 9: Coding
I've attached the code to make your Busy-o-Meter run to this step. Download the code and open it up in your Arduino IDE. Verify and compile to code to your Arduino.
const int buttonPin = 6;
const int redPin = 3 ;
const int yellowPin = 4 ;
const int greenPin = 5 ;
int buttonState = 0 ;
int busyState = 0 ;
void setup() {
Serial.begin(9600);
// initialize LED pins:
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(yellowPin, OUTPUT);
pinMode(buttonPin, INPUT);
}
void loop(){
// read the button value:
buttonState = digitalRead(buttonPin);
if (buttonState == LOW) {
busyState += 1 ;
if (busyState>3){
busyState = 1 ;
}
Serial.println(busyState);
switch (busyState) {
case 0:
digitalWrite(redPin, LOW);
digitalWrite(yellowPin, LOW);
digitalWrite(greenPin, LOW);
break;
case 1:
digitalWrite(redPin, HIGH);
digitalWrite(yellowPin, LOW);
digitalWrite(greenPin, LOW);
Serial.println("in case 1");
break;
case 2:
digitalWrite(redPin, LOW);
digitalWrite(yellowPin, HIGH);
digitalWrite(greenPin, LOW);
Serial.println("in case 2");
break;
case 3:
digitalWrite(redPin, LOW);
digitalWrite(yellowPin, LOW);
digitalWrite(greenPin, HIGH);
Serial.println("in case 3");
break;
}
delay(200);
}
}