⏲️ درس 78: نمایشگر ۴ رقمی TM1637
یک تایمر آشپزخانهی واقعی: دقیقه:ثانیه با دو نقطهی چشمکزن، روی دو سیم.
سطح: متوسط · زمان: حدود 17 دقیقه · مفاهیم: TM1637، تایمر، millis
قدمهای این درس
- چرا TM1637؟
- قدم ۱ — نمایشگر و دکمه
- قدم ۲ — شمارش معکوس
- اشتباه رایج: ۹۰ ثانیه = 00:90 ؟!
- چالش: زنگ پایان
نمونهای از کد این درس
// 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);
}
چرا این درس؟
دورهی تینکرکد فارسی تعاملی است: هر قدم را خودت داخل شبیهساز انجام میدهی — مدار واقعی میچینی، کد واقعی اجرا میکنی و نتیجه را همان لحظه میبینی. این درس روی درسهای قبلی ساخته شده، پس اگر تازه شروع کردهای از درس ۱ بیا!
این درس را رایگان در شبیهساز شروع کن 🎓