//انجمن رباتیک دانشگاه بیرجند
#include <TM1637Display.h>
#define CLK 11
#define DIO 12
TM1637Display display(CLK, DIO);
// تعریف یک انیمیشن چرخش (سگمنتهای بیرونی نمایشگر یکی یکی روشن میشوند)
const uint8_t animation[] = {
0b00000001, // سگمنت بالا
0b00000010, // سگمنت بالا راست
0b00000100, // سگمنت پایین راست
0b00001000, // سگمنت پایین
0b00010000, // سگمنت پایین چپ
0b00100000 // سگمنت بالا چپ
};
// DONE نمایش کلمه
const uint8_t doneText[] = {
0b01011110, // d (به صورت کوچک تا با عدد 0 اشتباه نشه)
0b01011100, // o (به صورت کوچک روی سگمنتهای پایین)
0b01010100, // n (به صورت کوچک)
0b01111001 // E (به صورت بزرگ)
};
void setup() {
display.setBrightness(5); // تنظیم نور نمایشگر
}
void loop() {
// اجرای انیمیشن لودینگ
for (int r = 0; r < 3; r++) { // سه بار چرخش کامل
for (int i = 0; i < 6; i++) {
uint8_t data[] = { animation[i], animation[i], animation[i], animation[i] };
display.setSegments(data);
delay(100);
}
}
display.clear();
delay(500);
// شمارش معکوس (از ۱۰ تا ۰)
for (int i = 10; i >= 0; i--) {
display.showNumberDec(i);
delay(400); // سرعت شمارش
}
//چشمک زدن عدد صفر
for (int i = 0; i < 3; i++) {
display.clear();
delay(200);
display.showNumberDec(0);
delay(200);
}
delay(500);
//. نمایش کلمه حرفی "DONE" در پایان
display.setSegments(doneText);
delay(3000); // توقف ۳ ثانیهای قبل از شروع مجدد حلقه
}