/*
This Code is built for Arduino Keypad shield,
arduino UNO or MEGA(remember to change board)
Tools -> board -> UNO or MEGA -> port -> <your port no. your using>COM
Default time for alarm is 8:30AM(change line 139 to the time of ringing and 35 and 36 1 min after your time )
press RST button on keypad if you want ringing to stop
UP = Minutes + 1
DOWN = hours + 1
*/
#include <LiquidCrystal.h>
#include "LCDKeypad.h"
byte Bell[8] = {
B00000,
B00100,
B01110,
B01110,
B01110,
B11111,
B00000,
B00100
};
int starttime;
int activetime;
int prevoustime = 0;
int hours = 8;
int mins = 30;
int secs = 0;
LCDKeypad lcd;
void setup()
{
lcd.begin(16, 2);
lcd.clear();
Serial.begin(9600);
;
pinMode(A0, INPUT);
pinMode(A1, OUTPUT);
starttime = millis() / 1000;
lcd.createChar(1, Bell);
}
void loop() {
int A0 = analogRead(A0);
lcd.setCursor(5, 0);
lcd.write(byte(1));
lcd.setCursor(11, 0);
lcd.write(byte(1));
lcd.setCursor(1, 1);
lcd.write("Arnnav's Clock");//change this to your Name or Message
int button = lcd.button();
switch (button) {
case KEYPAD_UP:
lcd.clear();
lcd.setCursor(5, 1);
lcd.print("Set Time");
lcd.setCursor(6, 0);
mins++;
break;
case KEYPAD_DOWN:
lcd.clear();
lcd.setCursor(5, 1);
lcd.print("Set Time");
lcd.setCursor(6, 0);
hours++;
}
lcd.setCursor(5, 0);
lcd.write(byte(1));
lcd.setCursor(11, 0);
lcd.write(byte(1));
lcd.setCursor(1, 1);
lcd.write("Arnnav's Clock");
activetime = (millis() / 1000) - starttime;
if (secs > 59)
{
secs++;
}
if (secs > 59)
{
mins++;
secs = 0;
}
if (prevoustime < (activetime - 59))
{
mins++;
prevoustime = activetime;
}
if (mins > 59)
{
hours++;
mins = 0;
}
if (hours > 23)
{
hours = 0;
}
lcd.setCursor(6, 0);
if (hours < 10)
{
lcd.print("0");
lcd.print(hours);
}
else
{
lcd.print(hours);
}
lcd.print(":");
if (mins < 10)
{
lcd.print("0");
lcd.print(mins);
}
else
{
lcd.print(mins);
}
lcd.print("");
if (8 == hours && 30 == mins )// change 8 and 30 to your time for this to ring
{
tone(A1, 1000, 277 );
delay(100);
noTone(9);
delay(100);
noTone(9);
delay(100);
//lcd.clear();
delay(10);
lcd.setCursor(4, 0);
lcd.print("WAKE UP!!!");
//delay(0);
}
else
{
delay(300);
}
lcd.clear();
Serial.println(mins);
Serial.println(hours);
Serial.println("");
Serial.println(amins);
Serial.println(ahours);
Serial.println("");
Serial.println(activetime);
Serial.println(prevoustime);
Serial.println(starttime);
Serial.println("");
}
Replies to Arduino Alarm Clock
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}