Arduino – CLCD – clock setting
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
#include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,16,2); // or 0x3F #define btnH 5 #define btnM 4 unsigned long times=0; unsigned long seconds=0; unsigned long minutes=0; unsigned long hours=0; unsigned long cnt=0; void setup() { lcd.init(); delay(1000); lcd.backlight(); lcd.setCursor(0,0); lcd.print(" Arduino Clock! "); times=millis() / 1000; pinMode(btnH, INPUT); pinMode(btnM, INPUT); } void loop() { if (digitalRead(btnH)==HIGH && cnt==0) { hours++; if (hours>=24) { hours=0; } cnt=millis(); } else if (digitalRead(btnM)==HIGH && cnt==0) { minutes++; if (minutes>=60) { minutes=0; } cnt=millis(); } else if (millis() > cnt+200) { cnt=0; } if (millis() / 1000 > times) { seconds++; if (seconds>=60) { minutes++; seconds=0; if (minutes>=60) { hours++; minutes=0; if (hours>=24) { hours=0; } } } times=millis() / 1000; } lcd.setCursor(4,1); if (hours<10) { lcd.print("0"); } lcd.print(hours); lcd.print(":"); if (minutes<10) { lcd.print("0"); } lcd.print(minutes); lcd.print(":"); if (seconds<10) { lcd.print("0"); } lcd.print(seconds); } |