Devices & Components
Arduino Uno Rev3
Switch Actuator, Head for spring return push-button
Buzzer, Piezo
Breadboard (generic)
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