Maintenance: Project Hub will be unavailable on Wednesday 25 (9AM to 6PM CET) while we deploy critical improvements
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.
Components and supplies
4
Switch Actuator, Head for spring return push-button
1
Buzzer, Piezo
1
Breadboard (generic)
1
Arduino UNO
1
Alphanumeric LCD, 16 x 2
Project description
Code
Code
c_cpp
You can use it on Arduino IDE for real projects. Or in tinkercad for simulation
1#include <LiquidCrystal.h> 2 3#define TONO_ERROR 600 4#define TIME_INTERVAL 3000 5 6 7LiquidCrystal lcd(7, 8, 9, 10, 11, 12); 8 9int hours = 0; 10int minutes = 0; 11int seconds = 0; 12 13 14 15int hourbutton = 2; 16int minutebutton = 3; 17int secondsbutton = 4; 18int nueva = 0; 19int startbutton = 6; 20int aux; 21int aux2; 22int aux3; 23int startbuttonstate; 24int buzzer = 5; 25 26 27void setup() 28{ 29 lcd.begin(16, 2); 30 31 pinMode(hourbutton, INPUT); 32 pinMode(minutebutton, INPUT); 33 pinMode(secondsbutton, INPUT); 34 pinMode(startbutton, INPUT); 35 pinMode(buzzer,OUTPUT); 36 37 38 lcd.setCursor(0,0); 39 lcd.print("Timer with"); 40 lcd.setCursor(1,1); 41 lcd.print("Arduino + LCD"); 42 delay(2500); 43 lcd.clear(); 44} 45 46 47void loop() 48{ 49aux = digitalRead(hourbutton); 50aux2 = digitalRead(minutebutton); 51aux3 = digitalRead(secondsbutton); 52startbuttonstate = digitalRead(startbutton); 53 if(nueva==0) { 54 lcd.setCursor(0,0); 55 lcd.print("Enter Time"); 56 lcd.setCursor(1,1); 57 lcd.print(hours); 58 lcd.print(":"); 59 lcd.print(minutes); 60 lcd.print(":"); 61 lcd.print(seconds); 62 lcd.print(":"); 63 delay(200); 64 lcd.clear(); 65 66 67 if(aux==HIGH){ 68 69hours=hours+1; 70 71 if(hours>=59){ 72 73 hours=0; 74 75 } 76 77 }else{ 78 79hours=hours; 80 } 81 82 if(aux2==HIGH){ 83 84 minutes=minutes+1; 85 if(minutes>=59){ 86 87 minutes=0; 88 89 } 90 91 }else{ 92minutes=minutes; 93 } 94 if(aux3==HIGH){ 95 96 seconds=seconds+1; 97 98 if(seconds>=59){ 99 100 seconds=0; 101 102 } 103 }else{ 104 105 seconds=seconds; 106 107 } 108 109 if(startbuttonstate==HIGH){ 110 111 nueva=1; 112 113 }else{ 114 115 nueva=0; 116 117 118 } 119 120 121 122 123 } else if(nueva==1){ 124 125 lcd.setCursor(0,0); 126 lcd.print("Getting Started"); 127 lcd.setCursor(1,1); 128 lcd.print(hours); 129 lcd.print(":"); 130 lcd.print(minutes); 131 lcd.print(":"); 132 lcd.print(seconds); 133 lcd.print(":"); 134 delay(200); 135 136 137 138 if(seconds==0){ 139 if(minutes!=0){ 140 seconds=59; 141 } 142 143 if(minutes<=0){ 144 minutes=0; 145 }else{ 146 minutes=minutes-1; 147 } 148 if(minutes==0){ 149 if(hours!=0){ 150 minutes=59; 151 } 152 153 if(hours<=0){ 154 hours=0; 155 }else{ 156 hours=hours-1; 157 } 158 159 if(hours==0){ 160 if(minutes==0){ 161 if(seconds==0){ 162 nueva=2; 163 } 164 } 165 166 } 167 168 } 169 170 }else{ 171 seconds=seconds-1; 172 delay(1000); 173 } 174 175 176 177 178} 179 180else if(nueva==2){ 181 182 lcd.setCursor(0,0); 183 lcd.print("Time Up"); 184 185 digitalWrite(buzzer,HIGH); 186 tone(buzzer, 2000, 1000); 187 delay(1000); 188 digitalWrite(buzzer,LOW); 189 delay(1000); 190 191 nueva=0; 192 193 seconds=0; 194 minutes=0; 195 hours=0; 196 197 198 199} 200 201 202 203 204 205}
Downloadable files
Circuit
Tinkercad Circuit
Circuit
Circuit
Tinkercad Circuit
Circuit
Comments
Only logged in users can leave comments