#include <Arduino.h>
#include <TM1637Display.h>
#define CLK 3
#define DIO 2
TM1637Display display(CLK, DIO);
int next_Hatch = 1;
int hour1 = 13;
int minute1 = 00;
int time1 = 0;
int hour2 = 18;
int minute2 = 00;
int time2 = 0;
int hour3 = 11;
int minute3 = 22;
int time3 = 0;
int MODE = 1;
int buttonMinute = 9;
int buttonHour = 8;
int almchooserPin = 12;
int minuteState = 0;
int hourState = 0;
int MODE_BTN =3;
int awake = 0;
unsigned long time_start;
unsigned long time_elapsed;
int time_limit = 3000;
const uint8_t A_one[] = {
SEG_A | SEG_B | SEG_C | SEG_E | SEG_F | SEG_G, // A
SEG_B | SEG_C // 1
};
const uint8_t A_two[] = {
SEG_A | SEG_B | SEG_C | SEG_E | SEG_F | SEG_G, // A
SEG_A | SEG_B | SEG_G | SEG_E | SEG_D // 2
};
const uint8_t A_three[] = {
SEG_A | SEG_B | SEG_C | SEG_E | SEG_F | SEG_G, // A
SEG_A | SEG_B | SEG_C | SEG_D | SEG_G // 3
};
void setup() {
pinMode(buttonMinute, INPUT);
pinMode(buttonHour, INPUT);
pinMode(almchooserPin, INPUT);
display.setBrightness(10);
Serial.begin(9600);
}
void loop() {
minuteState = digitalRead(buttonMinute);
hourState = digitalRead(buttonHour);
MODE_BTN = digitalRead(almchooserPin);
if(MODE_BTN == HIGH && minuteState == LOW && hourState == LOW){
switch(MODE){
case 1:
MODE = 1;
display.clear();
display.setSegments(A_one,2,2);
delay(1000);
break;
case 2:
MODE = 2;
display.clear();
display.setSegments(A_two,2,2);
delay(1000);
break;
case 3:
MODE = 3;
display.clear();
display.setSegments(A_three,2,4);
delay(1000);
break;
}
}
// ---------------------Set new time alarm 1
if(MODE == 1 && MODE_BTN == LOW){
if(minuteState == HIGH && hourState == LOW && minute1 < 60){
minute1++;
delay(300);
}
if(minute1 >= 60){
minute1 = 0;
}
if(hourState == HIGH && minuteState == LOW && hour1 < 24){
hour1++;
delay(300);
}
if(hour1 >= 24){
hour1 = 0;
}
time1 = hour1*100+minute1;
display.showNumberDecEx(time1);
}
// ---------------------Set new time alarm 2
if (MODE == 2 && MODE_BTN == LOW){
if(minuteState == HIGH && hourState == LOW && minute2 < 60){
minute2++;
delay(300);
}
if(minute2 >= 60){
minute2 = 0;
}
if(hourState == HIGH && minuteState == LOW && hour2 < 24){
hour2++;
delay(300);
}
if(hour2 >= 24){
hour2 = 0;
}
time2 = hour2*100+minute2;
display.showNumberDecEx(time2);
}
// ---------------------Set new time alarm 3
if (MODE == 3 && MODE_BTN == LOW){
if(minuteState == HIGH && hourState == LOW && minute3 < 60){
minute3++;
delay(300);
}
if(minute3 >= 60){
minute3 = 0;
}
if(hourState == HIGH && minuteState == LOW && hour3 < 24){
hour3++;
delay(300);
}
if(hour3 >= 24){
hour3 = 0;
}
time3 = hour3*100+minute3;
display.showNumberDecEx(time3);
}
}