🕐 درس 47: ساعت دیجیتال

ثانیه، دقیقه، ساعت — و ریاضیِ زمان.

سطح: پیشرفته · زمان: حدود 15 دقیقه · مفاهیم: millis، باقی‌مانده، LCD

قدم‌های این درس

  1. ساعت یعنی شمردن با سرریز
  2. قدم ۱ — از میلی‌ثانیه به ساعت
  3. قدم ۲ — دکمه‌های تنظیم
  4. چالش: زنگ ساعت

نمونه‌ای از کد این درس

#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);
  }
}

چرا این درس؟

دوره‌ی تینکرکد فارسی تعاملی است: هر قدم را خودت داخل شبیه‌ساز انجام می‌دهی — مدار واقعی می‌چینی، کد واقعی اجرا می‌کنی و نتیجه را همان لحظه می‌بینی. این درس روی درس‌های قبلی ساخته شده، پس اگر تازه شروع کرده‌ای از درس ۱ بیا!

این درس را رایگان در شبیه‌ساز شروع کن 🎓

درس‌های دیگر دوره

🚨

درس 46: دزدگیر کامل

🎮

درس 48: بازی سایمون