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 !!!
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
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
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
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
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
- 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
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 <Wire.h>
#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 < 0 ) { brightness = 0; delay(beep_delay);
beep(); delay(beep_delay); beep(); }
matrix.setBrightness(brightness);
Serial.print(“Brightness level changed:”);
Serial.print(brightness);
Serial.print(“\n”);
delay(150);
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Draw
dots every second – On/Off
void drawDots(){
gettime();
if((s%2) == 1){
matrix.drawColon(false);
matrix.writeDisplay();
}
else{
matrix.drawColon(true);
matrix.writeDisplay();
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int
gettime(){
time = millis();
time += offset_m;
h = int(time/3600000); //Get time in hours in variable h
if(h > 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
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.