Buzz Wire Alarm Clock
Buzz Wire Alarm Clock
Buzz Wire Alarm Clock
Buzz Wire Alarm Clock
Buzz Wire Alarm Clock

Does it happen to you to slide your finger across your phone's screen and turn the alarm off ... just because you have automated this task and don't even need to open your eyes?

Well, let me present to you the alarm clock that WILL MAKE YOU:

..... stand from the bed ..... open your eyes ..... get you absolutely focused ..... and finaly WAKE UP !!!






Check out the video above!

Here are some stories from life that may encourage you to buld such a 100%-wake-up-clock for yourself ...

I am an engineering student in third year now and this speaks that I do not get enough sleep during the term time.

For me being prepared means actually managing to wake up for the 9am lecture which is very tough ..... and unfortunately I have to do it every day except Thursday and the weekends. It comes hard when I have an assessment in the lab and really have to do it that early.

I have joined the Instructables Be Prepared Contest because it is quite dramatic when I oversleep and then rush without having breakfast and miss the bus ... and have to walk another 40mins going to the second lecture. I hate myself when this happens.

I want to add a happy-ending story that once happened to me to wake up at 7am while I had a flight at 8:30am and now I'm scared to oversleep whenever I'm going to bed.

Step 1: Buzz Wire Alarm Clock

Buzz Wire Alarm Clock
Buzz Wire Alarm Clock
Buzz Wire Alarm Clock
Buzz Wire Alarm Clock
Buzz Wire Alarm Clock
Buzz Wire Alarm Clock
I was inspired by some sort of a game that you need to focus and move a hook across a wire and not touch the wire ...

The Buzz Wire Alarm Clock shares exactly the same idea ...
  • First you set the time / screen brightness
  • You have a nice clock that even beeps every exact hour!
  • Then you set two alarms - Alarm 1 and Alarm 2 ON/OFF/Set time
  • Wait for the alarm to start beeping the buzzer and flashing the lights - Now you want to turn the alarm off
  • Get the hook and touch either end of the alarm stand
  • Carefully get the hook across the other end of the alarm stand without touching the wire - ALARM OFF :)
  • If you happen to touch the wire :( Now repeat again starting from either end of the alarm stand
  • As simple as that.
  • And what's more cool - you can customize the buzz wire to your own preferences - make it look like a roller coaster or maybe simple and with minimum bends.
  • You can also choose the hole diameter of the hook!
  • Below is the settings video:




    Step 2: Parts List

    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    To complete this instructable you will need:
  • Arduino board (I used Arduino Uno, but similar would do ... Arduino Mega etc.)
  • Arduino Prototyping shield OR any breadbord would do
  • 4-digit 7-segment display - the one I used is from Adafruit (If you want to use my Arduino code, you will need the same display, but if you decide to connect 4 separate 7-segment displays ... then write your own code)
  • Resistors - 5pcs, anything between 20 kOhm and 50 kOhm
  • Button swithes - 3pcs
  • Buzzer
  • Wires
  • Heat shrink tubing
  • Cable shield
  • Piece of foam - 10 x 3 x 3 cm (could use cardboard or wood)
  • Sticky notes for decoration
  • Basic tools required:
  • Soldering iron & wire
  • Cable strippers/cutters
  • Lighter or heat gun

  • Step 3: The Display

    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Plug the 4-digit 7-segment display into the board using the correct orientation - the four lower dots are marked on the board.

    Solder the 14 pins and trim the excess wires.

    Plug and solder the 4-pin header.

    Step 4: Arduino Hardware Set Up

    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    I have not specifically shown the building process as it is very straight forward. Also, there is an unlimited number of ways you can put your components around just at your best convenience.

    The pins as programmed are:

    Analog:
  • A4 - Screen data
  • A5 - Screen Clock signal
  • Digital:
  • 2 - Buzzer (output)
  • 3 - LED set one (output)
  • 4 - LED set two (output)
  • 5 - Button switch for minutes (input)
  • 8 - Button switch for hours (input)
  • 10 - Button switch for settings/in/out (input)
  • 11 - One contact ring of alarm stand (input)
  • 12 - Other contact ring of alarm stand (input)
  • 13 - Buzz wire (input)
  • 14 - Used as ground
  • Step 5: Arduino Software Set Up

    Buzz Wire Alarm Clock
  • Download the Adafruit LED Backpack library from github
  • You'll also need to download the Adafruit GFX library that provides the graphics drawing routines, and must be installed!

    To download click the DOWNLOADS button in the top right corner, download, uncompress. The uncompressed folders Adafruit_LEDBackpack & Adafruit_GFX are what you need. Check that the Adafruit_LEDBackpack folder contains Adafruit_LEDBackpack.cpp and Adafruit_LEDBackpack.h Place the Adafruit_LEDBackpack & Adafruit_GFX library folders in your arduinosketchfolder/libraries/ folder. You may need to create the libraries subfolder if its your first library.
  • *If you get stuck at some point here, do not hesistate to ask me.

    I have uploaded a pic to show you the folder structure.

    Step 6: Coding

    Buzz Wire Alarm Clock
    Here is the developed version of the software that you should upload to the Arduino Uno.

    It took me around a week to complete it.

    You may notice some new functions like:

    matrix.writeDigitRaw(0,B01110111); //"A" < This is the bit to the left
    matrix.writeDigitRaw(1,B00111000); //"l" < This is the middle left bit
    matrix.writeDigitRaw(3,B11010000); //"r." < This is the middle right bit
    matrix.writeDigitRaw(4,B00000000); //" " < This is the bit to the right
    matrix.writeDisplay(); < This is needed to "put" your symbols to the display

    This is all to do with the 4-digit display and the way that you write characters to it.
    The above lines of code would mean that "Alr. " is written on the screen where "B11010000" is an 8-bit mask.

    Program code:

    /*************************************************** Clock v 8.0 by Pavel Mihaylov Oct 2012 ****************************************************/ #include #include "Adafruit_LEDBackpack.h" #include "Adafruit_GFX.h" Adafruit_7segment matrix = Adafruit_7segment(); //int pwr = A2; //int grnd = A3; //Buttons int alarm_off_1 = 11; int alarm_off_2 = 12; int alarm_wire = 13; int button_set_mins_in = 5; int button_set_hrs_in = 8; int button_settings_in = 10; int beeper = 2; int led_RGB_1 = 3; int led_RGB_2 = 4; //Constants int brightness = 6; //Matrix initial brightness: 0(dimmed) - 15(bright) int del = 160; //120 Delay betweeen screens when writing messages int del2 = 320; //320 Delay betweeen "PAUSE" screens when writing messages long int millis_left = 0; int beep_delay = 7; //Length of a beep sound when a button is pressed int beepOK = 0; //Variable checked whether it is an exact hour in order to produce two beeps: beepOK = 1 if minutes = 59, otherwise beepOK = 0; int alarm_1_time = 2400; //Holds alarm time DO NOT CHANGE int alarm = 1; //alarm status DO NOT CHANGE long int offset_m = 0; //minutes setting offset unsigned long time; int h, m, s; int h1, h2, m3, m4; int a1h1, a1h2, a1m3, a1m4; void setup() { pinMode(beeper, OUTPUT); pinMode(led_RGB_1, OUTPUT); pinMode(led_RGB_2, OUTPUT); pinMode(button_set_mins_in, INPUT); pinMode(button_set_hrs_in, INPUT); pinMode(button_settings_in, INPUT); pinMode(alarm_off_1, INPUT); pinMode(alarm_off_2, INPUT); pinMode(alarm_wire, INPUT); digitalWrite(beeper, LOW); digitalWrite(led_RGB_1, LOW); digitalWrite(led_RGB_2, LOW); Serial.begin(9600); Serial.println("7 Segment Backpack Test"); matrix.begin(0x70); matrix.setBrightness(brightness); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void loop() { //Write time Serial.print(" --- Time \n"); writetime(); delay(30); //Draw dots drawDots(); delay(30); //Check whether to go into settings mode if(digitalRead(button_settings_in) == HIGH){ beep(); Serial.print("In settings \n"); settings(); } delay(30); //Now check if we have alarm acivated! gettime(); //Serial.print("Before: Alarm = "); //Serial.print(alarm); //Serial.print("\n"); //delay(30); if( time == alarm_1_time && alarm){ //alarm = 0; alarm_beep(); //Play the beep Serial.print("NO MORE BEEP \n"); delay(500); } else if(time != alarm_1_time) alarm = 1; //Serial.print("After: Alarm = "); //Serial.print(alarm); //Serial.print("\n"); //Serial.print("NO ALARM \n"); //delay(60); //Check brightness if (digitalRead(button_set_mins_in) == HIGH){ //check minutes button brightness++; //increase brightness beep(); if( brightness > 15 ) { brightness = 15; delay(beep_delay); beep(); delay(beep_delay); beep(); } matrix.setBrightness(brightness); Serial.print("Brightness level changed:"); Serial.print(brightness); Serial.print("\n"); delay(150); } if (digitalRead(button_set_hrs_in) == HIGH){ //check hours button brightness--; //decrease brightness beep(); if( brightness 23) do{ h -= 24; } while(h > 23); //If hours exceed 23, cunstract 24 until hours are 23 or less time = time%3600000; m = int(time/60000); //Get time in minutes in variable m time = time%60000; s = int(time/1000); //Get time in seconds in variable s millis_left = time; time = h*100 + m; //loop to produce two beeps at an exact hour i.e. XX:00 if(m == 0 && beepOK){ beep(); delay(beep_delay*6); beep(); beepOK = 0; } else if(m == 59) beepOK = 1; return time; } void writetime(){ gettime(); h1 = time/1000; time -= h1*1000; h2 = time/100; time -= h2*100; m3 = time/10; m4 = time%10; matrix.writeDigitNum(0, h1); matrix.writeDigitNum(1, h2); matrix.writeDigitNum(3, m3); matrix.writeDigitNum(4, m4); matrix.writeDisplay(); } void settings(){ delay(500); print_set(); //Print "Set" on the screen //Firstly set the time do{ set_hrs_mins(); } while (digitalRead(button_settings_in) == LOW); beep(); print_set_alrarm_1(); //Print "Set" on the screen //Then set Alarm 1 do{ set_alarm_1(); } while (digitalRead(button_settings_in) == LOW); beep(); print_out(); delay(500); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Function to set time offset in minutes and hours void set_hrs_mins(){ if (digitalRead(button_set_mins_in) == HIGH){ //check minutes button offset_m = offset_m + 60000; //add one minute to offset beep(); Serial.print("Increment minutes"); Serial.print(offset_m); Serial.print("\n"); delay(200); } if (digitalRead(button_set_hrs_in) == HIGH){ //check hours button offset_m = offset_m + 60*60000; //add 60*1 minutes to offset the time beep(); Serial.print("Increment hours"); Serial.print(offset_m); Serial.print("\n"); delay(200); } beepOK = 0; gettime(); //Now make the display blink while setting the time. if((millis_left%1000) > 500){ //0.5 seconds lit up writetime(); matrix.drawColon(true); matrix.writeDisplay(); } else{ matrix.drawColon(false); //0.5 seconds lit off matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Function to set Alarm time 1 void set_alarm_1(){ if (digitalRead(button_set_mins_in) == HIGH){ //check minutes button if(alarm_1_time==2400){ alarm_1_time = 0; } alarm_1_time++; //add one minute to offset beep(); Serial.print("Increment alarm minutes "); Serial.print(alarm_1_time); Serial.print("\n"); delay(200); } if (digitalRead(button_set_hrs_in) == HIGH){ //check hours button if(alarm_1_time==2400){ alarm_1_time = 0; } alarm_1_time += 100; //add 60*1 minutes to offset the time beep(); Serial.print("Increment alarm hours "); Serial.print(alarm_1_time); Serial.print("\n"); delay(200); } if(alarm_1_time%100 == 60){ //alarm time is now maybe 1260, but it should not be! alarm_1_time += 40; //alarm time goes to 1300 Serial.print("Alarm 1 time corrected to +40\n"); } if(alarm_1_time > 2359){ //alarm time is now 2401, but it should not be! alarm_1_time = 2400; //alarm time goes to 0000 Serial.print("Alarm 1 time corrected to 0000\n"); } Serial.print("Alarm 1 time: "); Serial.print(alarm_1_time); Serial.print("\n"); gettime(); //Now make the display blink while setting the Alarm 1 time. if((millis_left%1000) > 500){ //0.5 seconds lit up if(alarm_1_time == 2400){ //If alarm is deactivated from user matrix.drawColon(false); matrix.writeDigitRaw(0,B01000000); //"-" matrix.writeDigitRaw(1,B01000000); //"-" matrix.writeDigitRaw(3,B01000000); //"-" matrix.writeDigitRaw(4,B01000000); //"-" matrix.writeDisplay(); } else{ a1h1 = alarm_1_time/1000; a1h2 = ( alarm_1_time - a1h1 * 1000 ) / 100; a1m3 = ( alarm_1_time - a1h1 * 1000 - a1h2 * 100 ) / 10; a1m4 = alarm_1_time % 10; matrix.drawColon(true); matrix.writeDigitNum(0, a1h1); matrix.writeDigitNum(1, a1h2); matrix.writeDigitNum(3, a1m3); matrix.writeDigitNum(4, a1m4); matrix.writeDisplay(); } } else{ matrix.drawColon(false); //0.5 seconds lit off matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Beep-Beep Alarm void alarm_beep(){ int count0 = 0; do{ count0++; int count = 0; //cut the beep at some point writetime(); drawDots(); delay(20); digitalWrite(led_RGB_1, HIGH); digitalWrite(led_RGB_2, HIGH); if( count0%3 == 0 ){ print_sad(); //Print a sad smile delay(300); } //Serial.print("In alarm - beep \n"); beep(); delay(100); beep(); delay(100); beep(); delay(150); if (digitalRead(alarm_off_1) == HIGH){ //Serial.print("One 1 end touched :) \n"); digitalWrite(led_RGB_1, LOW); print_smile(); delay(500); do{ //Now beep less if(count%5 == 0) { beep(); } count++; writetime(); drawDots(); if (digitalRead(alarm_off_2) == HIGH){ //Alarm off //Serial.print("Other 2 end touched, alarm = 0 \n"); digitalWrite(led_RGB_2, LOW); alarm = 0; break; } //Serial.print("In while loop 1! \n"); delay(100); } while(digitalRead(alarm_wire) == LOW || alarm == 0); delay(100); //Serial.print("While loop exited, now exit alarm \n"); } else if (digitalRead(alarm_off_2) == HIGH){ //Serial.print("One 2 end touched :) \n"); digitalWrite(led_RGB_2, LOW); print_smile(); delay(500); do{ //Now beep less if(count%5 == 0) { beep(); } count++; writetime(); drawDots(); if (digitalRead(alarm_off_1) == HIGH){ //Alarm off //Serial.print("Other 1 end touched, alarm = 0 \n"); digitalWrite(led_RGB_1, LOW); alarm = 0; break; } Serial.print("In while loop 2! \n"); delay(100); } while(digitalRead(alarm_wire) == LOW || alarm == 0); delay(100); //Serial.print("While loop exited, now exit alarm \n"); //exit; } } while( alarm != 0 ); print_smile(); //Show a smile delay(700); print_alarm_off(); //Serial.print("I said!!!!! Exit alarm loop: Alarm = "); //Serial.print(alarm); //Serial.print("\n"); } // " " B00000000 // S B01101101 // E B01111001 // t B01111000 // O B00111111 // u B00011100 // A B01110111 // l B00111000 (letter) // r. B11010000 // r B01010000 // 1 B00000110 (digit) // H B01110110 // o B01011100 // ] B00001111 // [ B00111001 // F B01110001 //Print "Set Hour" on screen - Rolling void print_set(){ matrix.drawColon(false); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDigitRaw(4,000000000); //" " matrix.writeDisplay(); delay(del); //" " //" " //" " matrix.writeDigitRaw(4,B01101101); //"S" matrix.writeDisplay(); delay(del); //" " //" " matrix.writeDigitRaw(3,B01101101); //"S" matrix.writeDigitRaw(4,B01111001); //"E" matrix.writeDisplay(); delay(del); //" " matrix.writeDigitRaw(1,B01101101); //"S" matrix.writeDigitRaw(3,B01111001); //"E" matrix.writeDigitRaw(4,B01111000); //"t" matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B01101101); //"S" matrix.writeDigitRaw(1,B01111001); //"E" matrix.writeDigitRaw(3,B01111000); //"t" matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); delay(del2); matrix.writeDigitRaw(0,B01111001); //"E" matrix.writeDigitRaw(1,B01111000); //"t" matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDigitRaw(4,B01110110); //"H" matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B01111000); //"t" matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDigitRaw(3,B01110110); //"H" matrix.writeDigitRaw(4,B01011100); //"o" matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B01110110); //"H" matrix.writeDigitRaw(3,B01011100); //"o" matrix.writeDigitRaw(4,B00011100); //"u" matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B01110110); //"H" matrix.writeDigitRaw(1,B01011100); //"o" matrix.writeDigitRaw(3,B00011100); //"u" matrix.writeDigitRaw(4,B01010000); //"r" matrix.writeDisplay(); delay(del2); matrix.writeDigitRaw(0,B01011100); //"o" matrix.writeDigitRaw(1,B00011100); //"u" matrix.writeDigitRaw(3,B01010000); //"r" matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B00011100); //"u" matrix.writeDigitRaw(1,B01010000); //"r" matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B01010000); //"r" matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDisplay(); delay(del*3); } void print_out(){ //Print "Out" on screen. Rolling. matrix.drawColon(false); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDigitRaw(4,000000000); //" " matrix.writeDisplay(); delay(del); //matrix.writeDigitRaw(0,B00000000); //" " //matrix.writeDigitRaw(1,B00000000); //" " //matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDigitRaw(4,B00111111); //"O" matrix.writeDisplay(); delay(del); //matrix.writeDigitRaw(0,B00000000); //" " //matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDigitRaw(3,B00111111); //"O" matrix.writeDigitRaw(4,B00011100); //"u" matrix.writeDisplay(); delay(del); //matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B00111111); //"O" matrix.writeDigitRaw(3,B00011100); //"u" matrix.writeDigitRaw(4,B01111000); //"t" matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B00111111); //"O" matrix.writeDigitRaw(1,B00011100); //"u" matrix.writeDigitRaw(3,B01111000); //"t" matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); delay(del2); matrix.writeDigitRaw(0,B00011100); //"E" matrix.writeDigitRaw(1,B01111000); //"t" matrix.writeDigitRaw(3,B00000000); //" " //matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B01111000); //"t" matrix.writeDigitRaw(1,B00000000); //" " //matrix.writeDigitRaw(3,B00000000); //" " //matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDisplay(); delay(del*3); } //Print "Set Alr. 1" on screen - Rolling void print_set_alrarm_1(){ matrix.drawColon(false); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); delay(del); //" " //" " //" " matrix.writeDigitRaw(4,B01101101); //"S" matrix.writeDisplay(); delay(del); //" " //" " matrix.writeDigitRaw(3,B01101101); //"S" matrix.writeDigitRaw(4,B01111001); //"E" matrix.writeDisplay(); delay(del); //" " matrix.writeDigitRaw(1,B01101101); //"S" matrix.writeDigitRaw(3,B01111001); //"E" matrix.writeDigitRaw(4,B01111000); //"t" matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B01101101); //"S" matrix.writeDigitRaw(1,B01111001); //"E" matrix.writeDigitRaw(3,B01111000); //"t" matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); delay(del2); matrix.writeDigitRaw(0,B01111001); //"E" matrix.writeDigitRaw(1,B01111000); //"t" matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDigitRaw(4,B01110111); //"A" matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B01111000); //"t" matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDigitRaw(3,B01110111); //"A" matrix.writeDigitRaw(4,B00111000); //"l" matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B01110111); //"A" matrix.writeDigitRaw(3,B00111000); //"l" matrix.writeDigitRaw(4,B11010000); //"r." matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B01110111); //"A" matrix.writeDigitRaw(1,B00111000); //"l" matrix.writeDigitRaw(3,B11010000); //"r." matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); delay(del2); matrix.writeDigitRaw(0,B00111000); //"l" matrix.writeDigitRaw(1,B11010000); //"r." matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDigitRaw(4,B00000110); //"1" matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B11010000); //"r." matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDigitRaw(3,B00000110); //"1" matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B00000110); //"1" matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B00000110); //"1" matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDisplay(); delay(del2); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDisplay(); delay(del*3); } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Print "Alarm Off" void print_alarm_off(){ matrix.drawColon(false); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDigitRaw(4,B01110111); //"A" matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDigitRaw(3,B01110111); //"A" matrix.writeDigitRaw(4,B00111000); //"l" matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B01110111); //"A" matrix.writeDigitRaw(3,B00111000); //"l" matrix.writeDigitRaw(4,B11010000); //"r." matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B01110111); //"A" matrix.writeDigitRaw(1,B00111000); //"l" matrix.writeDigitRaw(3,B11010000); //"r." matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); delay(del2); matrix.writeDigitRaw(0,B00111000); //"l" matrix.writeDigitRaw(1,B11010000); //"r." matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDigitRaw(4,B00111111); //"O" matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B11010000); //"r." matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDigitRaw(3,B00111111); //"O" matrix.writeDigitRaw(4,B01110001); //"F" matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B00111111); //"O" matrix.writeDigitRaw(3,B01110001); //"F" matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B00111111); //"O" matrix.writeDigitRaw(1,B01110001); //"F" matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); delay(del2); matrix.writeDigitRaw(0,B01110001); //"F" matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDisplay(); delay(del*3); } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Print :] void print_smile(){ matrix.drawColon(true); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDigitRaw(3,B00001111); //"]" matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); delay(del*2); } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Print :[ rolling void print_sad(){ matrix.drawColon(true); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDigitRaw(3,B00111001); //"[" matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); delay(del*2); } //Button press beep function void beep(){ digitalWrite(beeper, HIGH); delay(beep_delay); digitalWrite(beeper, LOW); }

    Step 7: Alarm Stand and Deactivation Circuit: Contact Rings

    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Make two 1.5cm diameter rings from the cable shield. You can also make another one - the hook. We will need it later.

    Solder a piece of cable on each ring insulating the solder joints with heat shrink tube.

    Feed the cables through the styrofoam leaving the rings lay on top of the styrofoam.

    Step 8: Alarm Stand and Deactivation Circuit: Lights

    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Show All 10 Items
    I have chosen 6 colourful LEDs for my project. When voltage is applied across the LED's terminals, it lights up in Red, Green and Blue at random.

  • Choose a number of LEDs that you wish to put around the styrofoam.
  • Group the LEDs to two distinctive groups - one for each contact ring.
  • Solder short cables to all LEDs' legs and feed the LEDs through the styrofoam.
  • Place the LEDs inside the contact rings.
  • Now solder each group's anodes (+) separately x3 and cathodes (-) all together x6.
  • Step 9: Buzz Wire

    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Buzz wire:
  • Use a piece of thick wire that is somewhat tough to bend.
  • Bend it in a shape that you prefer. If you want to wake up 100%,make it swirl round and round and round .... and so on.
  • Then solder a cable to one of the ends of your wire and insulate the connection.
  • Using heat shrink tubes insulate the end bits that stay in the styrofoam.
  • Step 10: Buzz Hook

    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Make a hook from the cable shield and solder a 35-45cm long wire on its end. Vary the diameter of the ring depending on your preferences.

    Insulate the connection with some heat shrink tube.

    Step 11: Alarm Stand and Deactivation Circuit: Assemble

    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Feed the hook through the Buzz wire.

    Feed the Buzz wire through the styrofoam where the contact rings are.

    The last picture shows the LED's in action!

    Step 12: Get Creative

    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Make your display the colour you want it to be!

    Use some sticky notes and cut a piece with the size of the display. Then simply stick the piece of note to the display.

    Step 13: Mounting Options

    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    I have tried two mounting methods:

    - On my camera tripod
    - On the wall using a piece of cardboard

    All you need is wire or cable ties and bluetag or similar stuff.

    Step 14: Buzz Wire Mod

    Buzz Wire Alarm Clock
    Buzz Wire Alarm Clock
    Depending on how you personally feel it and the ability to focus in the morning, bend the buzz wire as you wish.

    The trickier the bends swivel around - the more annoyed you are going to wake up! ........ be careful with that :D



    TO DO

  • I will be adding code comments in a few days time.

  • Thanks for watching!
     
     

    Tag cloud

    make build easy simple arduino making homemade solar laser printed portable cheap mini building custom cardboard wooden create super lego turn paracord chocolate your paper light intel