Page 6

#include <LiquidCrystal.h> // LCD library ကို include ပြုလုပ်ခြင်း
// LCD ကို Arduino board နှင့် ချိတ်ဆက်ခြင်း (RS, E, D4, D5, D6, D7)
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
unsigned long previousMillis = 0; // မီလီစက္ကန့် (milliseconds) ကို သိမ်းဆည်းမည့် variable
const long interval = 1000; // တစ်စက္ကန့် (1 second) ပြည့်သွားတဲ့အခါ time update လုပ်မည်
// အစပိုင်းမှာ မိနစ်နှင့် နာရီကို သတ်မှတ်ခြင်း
int seconds = 0;
int minutes = 23;
int hours = 4;
void setup() {
lcd.begin(16, 2); // 16 columns, 2 rows ရှိတဲ့ LCD ကို initialize ပြုလုပ်ခြင်း
displayTime(); // LCD ပေါ်မှာ စတင်သောအချိန်ကို ပြသမည်
}
void loop() {
unsigned long currentMillis = millis(); // millis() function သည် Arduino run တဲ့အချိန်မှစ၍ မီလီစက္ကန့်ရေတွက်ပေးမည်
// 1 စက္ကန့် interval ပြည့်လျှင် အလုပ်လုပ်မည်
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis; // မည်သည့်အချိန်က update လုပ်ခဲ့သလဲ သိမ်းထားမည်
seconds++; // စက္ကန့် တစ်ခု တိုးမည်
// **Time Overflow ကို Handle ပြုလုပ်ခြင်း**
if (seconds >= 60) { // 60 seconds ပြည့်လျှင်
seconds = 0; // 0 သို့ reset
minutes++; // မိနစ် တစ်ခုတိုးမည်
}
if (minutes >= 60) { // 60 minutes ပြည့်လျှင်
minutes = 0; // 0 သို့ reset
hours++; // နာရီ တစ်ခုတိုးမည်
}
if (hours >= 12) { // 12 hours ပြည့်လျှင်
hours = 0; // နာရီကို reset ပြုလုပ်မည် (12-hour format)
}
displayTime(); // LCD ပေါ်တွင် အချိန်ကို ပြန်လည်ပြသမည်
}
}
// **LCD Screen မှာ အချိန်ပြမည့် Function**
void displayTime() {
lcd.setCursor(0, 0);
lcd.print("Time: "); // ပြီးခဲ့တဲ့ value တွေ မကျန်အောင် space ဖြည့်ထည့်ခြင်း
lcd.setCursor(0, 1); // ဒုတိယ row (line 1) မှာ အချိန်ကို ပြသမည်
// **နာရီ ပြခြင်း (Leading Zero ထည့်ခြင်း)**
if (hours < 10) lcd.print('0');
lcd.print(hours);
lcd.print(':');
// **မိနစ် ပြခြင်း (Leading Zero ထည့်ခြင်း)**
if (minutes < 10) lcd.print('0');
lcd.print(minutes);
lcd.print(':');
// **စက္ကန့် ပြခြင်း (Leading Zero ထည့်ခြင်း)**
if (seconds < 10) lcd.print('0');
lcd.print(seconds);
}Last updated