Ψηφιακό Ρολόι στη σειριακή οθόνη του Arduino

Ο κώδικας

Απαιτεί από τη σειριακή οθόνη  εισαγωγή ώρας 2 ψηφία και στη συνέχεια ENTER, εισαγωγή λεπτών και στη συνέχεια ENTER, εισαγωγή δευτερολέπτων και στη συνέχεια ENTER

int s1;
int m1;
int h1;

void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(2,OUTPUT);
while (Serial.available()==0) { //Wait for user input

}

h1=Serial.parseInt();
while (Serial.available()==0) { //Wait for user input

}
m1=Serial.parseInt();

while (Serial.available()==0) { //Wait for user input

}
s1=Serial.parseInt();

}
String maket1(int x) {
if(x<10) {
Serial.print("0");
Serial.print(x);}
else if(x>9){
Serial.print(x);
}
}
String maket(int x) {
if(x<10) {
Serial.print("0");
Serial.println(x);}
else if(x>9){
Serial.println(x);
}
}
void loop() {
// put your main code here, to run repeatedly:



delay(1000);
s1=s1+1;
if(s1%60==0) {m1=m1+1;
s1=0;}
if(m1%60==0 & m1!=0) {h1=h1+1;
m1=0;}
else {h1=h1;}
if(h1%24==0) {
h1=0;}
// Serial.print(h1);
maket1(h1);
Serial.print(":");
// Serial.print(m1);
maket1(m1);
Serial.print(":");
// Serial.println(s1);
maket(s1);

// Παρακάτω ελέγχουμε αν η ώρα έχει κάποια συγκεκριμένη τιμή οπότε τυπώνεται στην σειριακή οθόνη ring και ανάβει ένα LED
if(h1==23 & m1==50 ) { Serial.println("ring!");
digitalWrite(2,HIGH);}
else { digitalWrite(2,LOW);}
}