🕐 درس 47: ساعت دیجیتال
ثانیه، دقیقه، ساعت — و ریاضیِ زمان.
سطح: پیشرفته · زمان: حدود 15 دقیقه · مفاهیم: millis، باقیمانده، LCD
قدمهای این درس
- ساعت یعنی شمردن با سرریز
- قدم ۱ — از میلیثانیه به ساعت
- قدم ۲ — دکمههای تنظیم
- چالش: زنگ ساعت
نمونهای از کد این درس
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
unsigned long lastTick = 0;
long totalSeconds = 0;
void setup() {
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Saat:");
Serial.begin(9600);
}
void loop() {
if (millis() - lastTick >= 1000) {
lastTick += 1000; // نه = millis()، تا خطا جمع نشود
totalSeconds++;
int s = totalSeconds % 60;
int m = (totalSeconds / 60) % 60;
int h = (totalSeconds / 3600) % 24;
lcd.setCursor(0, 1);
if (h < 10) lcd.print("0");
lcd.print(h);
lcd.print(":");
if (m < 10) lcd.print("0");
lcd.print(m);
lcd.print(":");
if (s < 10) lcd.print("0");
lcd.print(s);
}
}
چرا این درس؟
دورهی تینکرکد فارسی تعاملی است: هر قدم را خودت داخل شبیهساز انجام میدهی — مدار واقعی میچینی، کد واقعی اجرا میکنی و نتیجه را همان لحظه میبینی. این درس روی درسهای قبلی ساخته شده، پس اگر تازه شروع کردهای از درس ۱ بیا!
این درس را رایگان در شبیهساز شروع کن 🎓