Introduction: Super Simple Flashing Light Doorbell Demo

Picture of Super Simple Flashing Light Doorbell Demo

This is a very simple and cheap, audible and visualizable doorbell system that can be made for under $10.

Sometimes, when I'm working with power tools or just listening to loud music, I cannot hear the doorbell ring. I need a visual cue to tell me if someone is waiting at door, so I made a doorbell that flashes a Super Bright LED, to alert me every time someone has pushed the button.

My goal is to have a doorbell on my room door, since I like to keep my room door locked and closed for privacy reasons (i.e. to get rid of those nosy meddlers). I almost always have headphones or earphones on and most of the time I wouldn't even notice someone is knocking outside until I see that they have messaged or emailed me, so I needed a visual cue to let me know. Thankfully, this device has solved my problems!

Step 1: BoM

Picture of BoM
  • Arduino 101 or Uno
  • Push Button
  • 10k Ohm resistor
  • Buzzer
  • 10mm Super Bright LED
  • Jumper Wires

Step 2: Calculating the Resistance

Picture of Calculating the Resistance

  • The LED is white, so the voltage drop across the LED is around 3 to 3.5V.
  • The supply voltage that the Arduino board can supply is either 3.3V or 5V.
  • The desired current for the LED is 25 milliamps as specified by the LED specifications.

By using Ohm's law it is calculated that the resistor needed assuming the voltage drop accross the LED is 3V, is a 12Ω resistor. For a 5V power source and a 3.5V voltage drop the resistor needed is 60Ω. I had neither of these resistors so I opted to use the 3.3V power source without a resistor since the resistor needed is quite low anyway.

You can calculate this resistance by using V = IR (Voltage = Current * Resistance) or by using this online lED resistor calculator: http://ledcalc.com/#

Step 3: Hardware Hookup

Picture of Hardware Hookup

Buzzer

  • Connect one of the pins of the buzzer to pin 6 on the Arduino, while the other pin connects to GND on the Arduino.

Super Bright LED

  • Connect the Anode (positive pin) of the LED to pin 9 on the Arduino.
  • Connect the Cathode (negative pin) of the LED to the ground pin of the buzzer. It does not matter which ground it is connected to since all grounds are the same. Ground is ground, all are common!

Button

  • Connect one of the button pins to pin A0. Connect this same pin to a 10kΩ resistor.
  • Then, connect the end of this resistor in series to 3.3V on the Arduino.
  • Connect the other pin of the button to any of the common ground, either the Arduino common ground, or the buzzer/LED, all are the same as mentioned before.

Step 4: Coding

Picture of Coding
// declare all pin constants
const int led = 9;
const int buzz = 6;
const int pb = 0;
int toggle = 0;
void setup() {
  //declare output pins
  pinMode (buzz, OUTPUT);
  pinMode (led, OUTPUT);
  digitalWrite (led, LOW);
}
void loop() {
  if (analogRead (pb) == 0){  // if button is pressed
    if (toggle == 0){
      for (int i  = 0; i<10; i ++){
      digitalWrite (led, HIGH);
      dingdong();
      delay (250); //delay a total of 1/4 of a second before flashing again  
      digitalWrite (led, LOW);  // turn on light
      delay(250); // delay for 1/4 seconds
      toggle = 1; // toggle so it turns off next press
      }
    } else { 
      toggle = 0; 
      digitalWrite (led, LOW);
      noTone (buzz);
    }
  }  
}
void dingdong(){
  tone (buzz, 5000); // play a tone of a frequency of 5000Hz
  delay (50); // play for only 50 milli seconds
  noTone (buzz);  // stop the tone 
  delay(50);  // stop for 50 milli seconds
  tone(buzz, 2000);   // play another tone at 2000Hz this time
  delay(50); // play for only 50 milli seconds
  noTone (buzz);  // stop the tone
  delay(50); // stop for 50 millisecodns
}

Step 5: Done!

You're done. You can make a PCB circuit for this and mount it at your door. I prefer just taping it to my door, since I'm only using it for my room so that I'll know when someone's at my door, when I'm playing or listening to music.

Comments

About This Instructable

531views

8favorites

License:

Bio: Aerospace Engineer working in Software Development with a passion for Hardware.
More by TechMartian:Flying Captain America's Shield - RC PlaneWide Angle ShotsLED Ping Pong With Shift Register
Add instructable to: