#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4); // set the LCD address to 0x27 for a 16 chars and 2 line display
int upPin = 2;
int downPin = 3;
int okPin = 4;
int backPin = 5;
int led = 13;
int upV, downV, okV, backV;
int data = 1, demo = 0;
int h = 0, m = 0, s = 0; int i = 59, j = 59, k = 59;
int val, val1, val2;
void setup()
{
pinMode(led, OUTPUT);
pinMode(upPin, INPUT_PULLUP);
pinMode(downPin, INPUT_PULLUP);
pinMode(okPin, INPUT_PULLUP);
pinMode(backPin, INPUT_PULLUP);
lcd.init(); // initialize the lcd
lcd.init();
// Print a message to the LCD.
lcd.backlight();
}
void loop()
{
upV = digitalRead(upPin);
downV = digitalRead(downPin);
okV = digitalRead(okPin);
backV = digitalRead(backPin);
times(0, 30, 59);
if (h == 0 && m == 0 && s == 0) {
digitalWrite(led, HIGH);
}
else {
digitalWrite(led, LOW);
}
}
// for(int)
/*
if (okV != data){
if (okV == 0){
demo++;
if(demo ==1 ){
hh();
}
else if (demo == 2){
mm();
}
else if (demo == 3){
ss();
}
else if (demo == 4){
demo =0;
}
}
}
data = okV;
if (upV !=data ){
if (upV == 0){
if(demo == 1){
hUp();
}
else if (demo == 2){
mUp();
}
else if (demo == 3){
sUp();
}
else if (demo == 4){
demo=0;
}
}
}
data = upV;
if (downV != data){
if (downV == 0){
if(demo == 1){
hUp();
}
else if (demo == 2){
mUp();
}
else if (demo == 3){
sUp();
}
else if (demo == 4){
demo=0;
}
}
}
data = downV;
}
/*
bif (h ==59){
h=0;
if(m == 59){
m=0;
if(s==59){
s=0;
}
else {
s++;
}
ss();
}
else {
m++;
}
mm();
}
else {
h++;
}
hh();
}
*/
void times(int H, int M, int S) {
for ( int i = H; i >= 0; i--) {
for (int j = M; j >= 0; j--) {
for (int k = S; k >= 0; k--) {
lcd.setCursor(1, 1);
lcd.print(i);
lcd.setCursor(1, 2);
lcd.print(j);
lcd.setCursor(1, 3);
lcd.print(k);
}
}
}
}
void time(int H, int M, int S) {
for ( int i = 0; i <= H; i++) {
for (int j = 0; j <= M; j++) {
for (int k = 0; k <= S; k++) {
lcd.setCursor(1, 1);
lcd.print(i);
lcd.setCursor(1, 2);
lcd.print(j);
lcd.setCursor(1, 3);
lcd.print(k);
}
}
}
}
void run () {
for (int i = h; i > 0; i--) {
if (h == 0)
{
h = 59;
}
else {
h--;
}
hh();
delay(200);
}
}
void Main() {
switch (val) {
case 1:
hUp();
hDown();
break;
case 2:
mUp();
mDown();
break;
case 3:
sUp();
sDown();
break;
}
}
void Up() {
switch (val1) {
case 0:
sUp();
break;
case 1:
mUp;
break;
case 2:
hUp;
break;
}
}
void Down() {
switch (val1) {
case 0:
sDown();
break;
case 1:
mDown;
break;
case 2:
hDown();
break;
}
}
void hUp() {
if (h == 59)
{
h = 0;
}
else {
h++;
}
hh();
delay(200);
}
void mUp () {
if (m == 59)
{
m = 0;
}
else {
m++;
}
mm();
delay(200);
}
void sUp () {
if (s == 59)
{
s = 0;
}
else {
s++;
}
ss();
delay(200);
}
void hDown() {
if (h == 0)
{
h = 59;
}
else {
h--;
}
hh();
delay(200);
}
void mDown() {
if (m == 0)
{
m = 59;
}
else {
m--;
}
mm();
delay(200);
}
void sDown() {
if (s == 0)
{
s = 59;
}
else {
s--;
}
ss();
delay(200);
}
void hh()
{
lcd.clear();
lcd.setCursor(1, 1);
lcd.print("Hours ");
lcd.setCursor(7, 1);
lcd.print(h);
}
void mm()
{
lcd.clear();
lcd.setCursor(1, 2);
lcd.print("Minute ");
lcd.setCursor(7, 2);
lcd.print(m);
}
void ss()
{
lcd.clear();
lcd.setCursor(1, 3);
lcd.print("Secunte ");
lcd.setCursor(7, 3);
lcd.print(s);
}