Arduino – CLCD with I2C – Time (hh:mm:ss) + Switch 2
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 98 |
#include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); #define buttonHourUp 5 #define buttonMinuteUp 4 unsigned long times=0; int timesSecond=0; int timesMinute=0; int timesHour=0; unsigned long cnt=0; void setup() { pinMode(buttonHourUp, INPUT); pinMode(buttonMinuteUp, INPUT); lcd.init(); delay(1000); lcd.backlight(); lcd.setCursor(0,0); lcd.print(" = Clock! = "); times=millis() / 1000; } void loop() { if (digitalRead(buttonHourUp)==HIGH && cnt==0) { timesHour++; if (timesHour>=12) { timesHour=0; } cnt=millis(); } else if (digitalRead(buttonMinuteUp)==HIGH && cnt==0) { timesMinute++; if (timesMinute>=60) { timesMinute=0; } cnt=millis(); } else if (millis() > cnt+300) { cnt=0; } if (millis()/1000 > times) { timesSecond++; times=millis() / 1000; if (timesSecond>=60) { timesMinute++; timesSecond=0; if (timesMinute>=60) { timesHour++; timesMinute=0; if (timesHour>=12) { timesHour=0; } } } } lcd.setCursor(4,1); if (timesHour<10) { lcd.print("0"); } lcd.print(timesHour); lcd.print(":"); if (timesMinute<10) { lcd.print("0"); } lcd.print(timesMinute); lcd.print(":"); if (timesSecond<10) { lcd.print("0"); } lcd.print(timesSecond); } |