⏳ ماموریت ۸۳: تایمر شمارش معکوس
TM1637: CLK→D2، DIO→D3. ثانیهها را با millis کم کن، با showNumberDecEx دقیقه:ثانیه نشون بده و در صفر بازر D8 را روشن کن.
سطح: متوسط ⭐⭐ · مود: آردوینو — با کد
هدفها
- ☐ یه آردوینو روی صحنه باشه
- ☐ یه نمایشگر TM1637
- ☐ یه بازر
- ☐ عدد روی TM1637 نشون داده بشه
- ☐ زمانگیری با millis
- ☐ شبیهسازی در حال اجرا
قطعههای لازم
- Arduino Uno
- نمایشگر ۴ رقمی TM1637
- بازر زنگی
💡 گیر کردی؟ داخل شبیهساز راهنما را ببین، و اگر باز هم نشد دکمهی «برام حلش کن» مدار را برایت میچیند تا ببینی چطور کار میکند.
جواب کامل
اول خودت امتحان کن! بعد جواب را ببین 👀
سیمکشی
- Arduino Uno (D2) ⟷ 4-Digit Display (TM1637) (CLK)
- Arduino Uno (D3) ⟷ 4-Digit Display (TM1637) (DIO)
- Arduino Uno (VCC5) ⟷ 4-Digit Display (TM1637) (VCC)
- 4-Digit Display (TM1637) (GND) ⟷ Arduino Uno (GND1)
- Arduino Uno (D8) ⟷ بازر زنگی (POS)
- بازر زنگی (NEG) ⟷ Arduino Uno (GND2)
کد
// TM1637 countdown timer: 1:00 down to 0:00, then beep
#include <TM1637Display.h>
TM1637Display display(2, 3); // CLK, DIO
const int BUZZER = 8;
int secondsLeft = 60;
unsigned long lastTick = 0;
void setup() {
pinMode(BUZZER, OUTPUT);
display.setBrightness(5);
}
void loop() {
int shown = (secondsLeft / 60) * 100 + (secondsLeft % 60);
display.showNumberDecEx(shown, 0b01000000, true); // mm:ss with the colon
if (secondsLeft == 0) {
digitalWrite(BUZZER, HIGH); // time is up
return;
}
if (millis() - lastTick >= 1000) {
lastTick = millis();
secondsLeft--;
}
}
ماموریتهای مشابه
😊
ماموریت ۸۱: شکلک روی ماتریس ۸×۸
📱
ماموریت ۸۵: کنترل LED با بلوتوث
🕰️
ماموریت ۷۹: ساعت واقعی با DS3231
🌗
ماموریت ۸۷: محو شدن LED با ledc
📚 برای یاد گرفتن پایهها سری به دورهی آموزش آردوینو بزن · 🎯 همهی ماموریتها