shv6
Published © GPL3+

Timer

Do you not know how to manage time. Do you want to time yourself for something but you don't want a phone time. Then this is for you.

IntermediateFull instructions provided496
Timer

Things used in this project

Hardware components

Arduino UNO
Arduino UNO
×1
Switch Actuator, Head for spring return push-button
Switch Actuator, Head for spring return push-button
×4
Alphanumeric LCD, 16 x 2
Alphanumeric LCD, 16 x 2
×1
Breadboard (generic)
Breadboard (generic)
×1
Buzzer, Piezo
Buzzer, Piezo
×1

Story

Read more

Schematics

Circuit

Tinkercad Circuit

Code

Code

C/C++
You can use it on Arduino IDE for real projects. Or in tinkercad for simulation
#include <LiquidCrystal.h>

#define TONO_ERROR 600
#define TIME_INTERVAL 3000


LiquidCrystal lcd(7, 8, 9, 10, 11, 12); 

int hours = 0;            
int minutes = 0;         
int seconds = 0;         



int hourbutton = 2;             
int minutebutton = 3;            
int secondsbutton = 4;             
int nueva = 0;
int startbutton = 6;
int aux;
int aux2;
int aux3;
int startbuttonstate;
int buzzer = 5;


void setup()
{
   lcd.begin(16, 2);          
 
   pinMode(hourbutton, INPUT);     
   pinMode(minutebutton, INPUT);     
   pinMode(secondsbutton, INPUT);     
   pinMode(startbutton, INPUT); 
   pinMode(buzzer,OUTPUT);
  

      lcd.setCursor(0,0);
       lcd.print("Timer with");
       lcd.setCursor(1,1);
       lcd.print("Arduino + LCD");
       delay(2500);
       lcd.clear();
}


void loop()
{
aux = digitalRead(hourbutton);
aux2 = digitalRead(minutebutton);
aux3 = digitalRead(secondsbutton);
startbuttonstate = digitalRead(startbutton);
  if(nueva==0) {
  lcd.setCursor(0,0);
       lcd.print("Enter Time");
       lcd.setCursor(1,1);
       lcd.print(hours); 
       lcd.print(":"); 
       lcd.print(minutes); 
       lcd.print(":"); 
       lcd.print(seconds); 
       lcd.print(":"); 
       delay(200);
       lcd.clear();


       if(aux==HIGH){
      
hours=hours+1;

    if(hours>=59){

      hours=0;

    }

       }else{

hours=hours;
       }

    if(aux2==HIGH){

    minutes=minutes+1;
    if(minutes>=59){

      minutes=0;

    }
 
    }else{
minutes=minutes;  
    }
  if(aux3==HIGH){

    seconds=seconds+1;

    if(seconds>=59){

      seconds=0;
      
    }
  }else{

  seconds=seconds;

  }

  if(startbuttonstate==HIGH){

  nueva=1;
  
  }else{

  nueva=0;

    
  }
  


  
  } else if(nueva==1){

  lcd.setCursor(0,0);
       lcd.print("Getting Started");
       lcd.setCursor(1,1);
       lcd.print(hours); 
       lcd.print(":"); 
       lcd.print(minutes); 
       lcd.print(":"); 
       lcd.print(seconds); 
       lcd.print(":"); 
       delay(200);



        if(seconds==0){
          if(minutes!=0){
            seconds=59;
          }
          
          if(minutes<=0){
            minutes=0;
          }else{
            minutes=minutes-1;
          }
        if(minutes==0){
          if(hours!=0){
            minutes=59;
          }
          
          if(hours<=0){
            hours=0;
          }else{
            hours=hours-1;
          }

        if(hours==0){
          if(minutes==0){
            if(seconds==0){
              nueva=2; 
            }
          }
          
        }
        
        }
        
        }else{
        seconds=seconds-1;
          delay(1000);
        }


       
          
}

else if(nueva==2){

            lcd.setCursor(0,0);
              lcd.print("Time Up");

                digitalWrite(buzzer,HIGH);
  				tone(buzzer, 2000, 1000);
    			delay(1000);
                digitalWrite(buzzer,LOW);
  				delay(1000);

                  nueva=0;

                  seconds=0;
                  minutes=0;
                  hours=0;


                  
}





}

Credits

shv6
2 projects • 0 followers

Comments