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}