⏲️ درس 78: نمایشگر ۴ رقمی TM1637

یک تایمر آشپزخانه‌ی واقعی: دقیقه:ثانیه با دو نقطه‌ی چشمک‌زن، روی دو سیم.

سطح: متوسط · زمان: حدود 17 دقیقه · مفاهیم: TM1637، تایمر، millis

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

  1. چرا TM1637؟
  2. قدم ۱ — نمایشگر و دکمه
  3. قدم ۲ — شمارش معکوس
  4. اشتباه رایج: ۹۰ ثانیه = 00:90 ؟!
  5. چالش: زنگ پایان

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

// TM1637 countdown timer MM:SS. Button on D4 starts / pauses it.
#include <TM1637Display.h>

TM1637Display display(2, 3);       // CLK, DIO
const int BUTTON = 4;
int minutes = 1, seconds = 30;     // start from 01:30
bool running = false;
bool wasPressed = false;
unsigned long lastTick = 0;

void show() {
  // 0b01000000 lights the colon; true = keep leading zeros (01:30)
  display.showNumberDecEx(minutes * 100 + seconds, 0b01000000, true);
}

void setup() {
  pinMode(BUTTON, INPUT_PULLUP);
  display.setBrightness(5);        // 0..7
  show();
}

void loop() {
  bool pressed = digitalRead(BUTTON) == LOW;
  if (pressed && !wasPressed) running = !running;   // start / pause
  wasPressed = pressed;

  if (running && millis() - lastTick >= 1000) {
    lastTick = millis();
    if (seconds > 0) seconds--;
    else if (minutes > 0) { minutes--; seconds = 59; }
    else running = false;            // 00:00 - finished
    show();
  }
  delay(20);
}

چرا این درس؟

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

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

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

📜

درس 77: متن متحرک روی ماتریس LED

🚪

درس 79: کارت RFID و در هوشمند