آموزش کامل راه اندازی TM1637 با ESP32 + پروژه ساعت و شمارنده
آیا تا به حال خواستهاید در پروژههای الکترونیک یا اینترنت اشیا (IoT) خود یک ساعت دیجیتال، شمارنده یا نمایشگر دما بسازید، اما با دیدن شلوغی سیمکشی سون سگمنتهای قدیمی پشیمان شده باشید؟ خبر خوب این است که ترکیب ESP32 و ماژول TM1637 این مشکل را به کلی حل کرده است!
🚀 برد ESP32 مورد نیاز این پروژه را تهیه کنید
برای اجرای این آموزش و ساخت پروژههایی مانند ساعت اینترنتی، نمایشگر هوشمند و پروژههای IoT، استفاده از یک برد ESP32 قدرتمند بهترین انتخاب است.
چرا نمایشگر TM1637 بهترین انتخاب برای ESP32 است؟
TM1637 یک ماژول نمایشگر سون سگمنت چهار رقمی است که به یک تراشه درایور داخلی مجهز شده است. این تراشه وظیفه مدیریت روشن و خاموش شدن سگمنتها، کنترل روشنایی و دریافت اطلاعات را برعهده دارد.
مزایای کلیدی این ماژول:
- اشغال تعداد بسیار کم پایهها: کنترل کامل ۴ رقم تنها با ۲ پایه (
CLKوDIO). - تنظیم روشنایی نرمافزاری: تغییر میزان نور در ۸ سطح مختلف (مناسب برای حالت شب یا محیطهای کمنور).
- پشتیبانی از علامت دو نقطه (Colon): عالی و ایدهآل برای نمایش زمان و ساخت ساعتهای دیجتالی (
12:30). - قیمت بسیار اقتصادی: این ماژول نسبت به نمایشگرهای گرافیکی مانند OLED هزینه بسیار پایینتری دارد.
- خوانایی بسیار بالا: اعداد روی نمایشگر LED حتی از فاصله دور نیز به راحتی و با شفافیت دیده میشوند.

مشخصات فنی ماژول TM1637
| ویژگی | مشخصات فنی |
|---|---|
| نوع نمایشگر | سون سگمنت 4 رقمی LED (دیجیتال) |
| درایور داخلی | تراشه اختصاصی TM1637 |
| تعداد پایه ارتباطی | ۲ پایه (CLK و DIO) |
| ولتاژ کاری | ۳.۳ تا ۵ ولت (سازگار کامل با ESP32) |
| قابلیت تنظیم نور | ۸ سطح روشنایی نرمافزاری |
| کاربرد اصلی | ساعت آنلاین، شمارنده صنعتی، نمایشگر دما و رطوبت |
🛒 آماده ساخت پروژه با TM1637 هستید؟
ماژول سون سگمنت ۴ رقمی TM1637 یکی از سادهترین و اقتصادیترین انتخابها برای ساخت ساعت دیجیتال، شمارنده و نمایشگرهای عددی با ESP32 است.
جدول مقایسه: TM1637 در برابر سون سگمنت معمولی و OLED
قبل از انتخاب نمایشگر برای پروژه خود، نگاهی به جدول زیر بیندازید. ماژول TM1637 یک گزینه تعادلی عالی بین سون سگمنتهای ساده و نمایشگرهای گرافیکی گرانقیمت است:
| ویژگی / مشخصه | نمایشگر TM1637 | نمایشگر OLED (SSD1306) | سون سگمنت معمولی |
|---|---|---|---|
| تعداد پایه مورد نیاز | ۲ پایه | ۲ پایه (I2C) | ۸ تا ۱۲ پایه |
| نوع داده قابل نمایش | اعداد، برخی حروف، زمان | متن، تصویر، نمودار | فقط اعداد |
| پیچیدگی کدنویسی | بسیار ساده | متوسط | نسبتاً سخت |
| خوانایی از فاصله دور | عالی (شفاف) | متوسط | عالی |
| قیمت و مقرونبهصرفه بودن | بسیار ارزان و اقتصادی | متوسط تا بالا | ارزان |
نحوه اتصال TM1637 به ESP32 (Pinout و سیمکشی)
اتصال این ماژول تنها به ۴ سیم نیاز دارد و کمتر از ۲ دقیقه زمان میبرد:
| پایه TM1637 | اتصال به ESP32 | توضیح عملکرد |
|---|---|---|
| VCC | 3.3V یا 5V | تغذیه مثبت ماژول |
| GND | GND | زمین مدار |
| CLK | GPIO 22 | خط کلاک ارتباطی (قابل تغییر) |
| DIO | GPIO 21 | ارسال و دریافت داده (قابل تغییر) |

💡 نکته کاربردی و هوشمندانه: پایههای
CLKوDIOاجباری نیستند و میتوانید آنها را در برنامه روی هر پایه دیجیتال دیگری از ESP32 تنظیم کنید. اگر قصد دارید یک ساعت اینترنتی زنده بسازید، ترکیب ESP32 با این نمایشگر بهترین گزینه موجود در بازار است!
📚 آموزشهای بیشتر الکترونیک و پروژههای کاربردی
اگر به ساخت پروژههای الکترونیکی، کار با میکروکنترلرها و آموزشهای کاربردی علاقه دارید، مجموعه مقالات تخصصی ما را مشاهده کنید و ایدههای جدید برای پروژههای خود پیدا کنید.
آموزش نصب کتابخانه TM1637 در Arduino IDE
برای کنترل سریع این نمایشگر در محیط Arduino IDE، بهترین گزینه استفاده از کتابخانه TM1637Display (ساخت Avishay Orpaz) است.
- نرمافزار Arduino IDE را باز کنید.
- از منوی بالا به مسیر
Sketch>Include Library>Manage Librariesبروید. - در باکس جستجو عبارت TM1637Display را تایپ کنید.
- کتابخانه اصلی را پیدا کرده و روی گزینه Install کلیک کنید.
📄 دیتاشیت TM1637
برای بررسی مشخصات فنی، نحوه ارتباط پایهها و جزئیات عملکرد تراشه TM1637، دیتاشیت کامل این ماژول را مشاهده کنید.
پروژههای عملی و کدهای آماده تست
۱. ساخت ساعت دیجیتال با ESP32 و TM1637
کد زیر زمان را به همراه علامت دو نقطه وسط (Colon) روی نمایشگر نشان میدهد. با اضافه کردن کتابخانه WiFi میتوانید آن را به یک ساعت اینترنتی دقیق تبدیل کنید:
#include <Arduino.h>
#include <TM1637Display.h>
// تعریف پایهها
#define CLK 22
#define DIO 21
TM1637Display display(CLK, DIO);
void setup() {
// تنظیم حداکثر روشنایی (از 0 تا 7 یا 0x0f)
display.setBrightness(0x0f);
}
void loop() {
// نمایش ساعت 12:30 با روشن بودن دو نقطه وسط
display.showNumberDecEx(1230, 0b01000000, true);
delay(1000);
}
۲. ساخت شمارنده دیجیتال سریالی
این کد برای یادگیری کار با نمایشگرها و ساخت شمارندههای فروشگاهی یا صنعتی بسیار مفید است:
#include <Arduino.h>
#include <TM1637Display.h>
#define CLK 22
#define DIO 21
TM1637Display display(CLK, DIO);
void setup() {
display.setBrightness(7);
}
void loop() {
// شمارش از 0 تا 9999
for(int i = 0; i <= 9999; i++) {
display.showNumberDec(i);
delay(200);
}}

⚡ شروع دنیای الکترونیک با پژوهشگران
برای مشاهده جدیدترین محصولات، آموزشها و راهکارهای تخصصی حوزه الکترونیک، از وبسایت اصلی پژوهشگران بازدید کنید.
رفع مشکلات رایج هنگام راهاندازی
۱. نمایشگر اصلاً روشن نمیشود:
اتصالات پایه VCC و GND را چک کنید و از سالم بودن کابلهای جامپر مطمئن شوید.
۲. اعداد بسیار کمنور هستند:
در کد برنامه مقدار setBrightness() را روی عدد 7 یا 0x0f بگذارید.
۳. اعداد بهصورت نا مفهوم یا اشتباه چاپ میشوند:
پایههای CLK و DIO به صورت جابهجا وصل شدهاند. جای این دو سیم را روی برد عوض کنید.
❓ سوالات متداول کاربران (FAQ)
۱. آیا میتوان ماژول TM1637 را مستقیم به ولتاژ 3.3 ولت ESP32 وصل کرد؟
بله! تراشه TM1637 با ولتاژهای بین ۳.۳V تا ۵V به خوبی کار میکند و محدودیتی با سطح ولتاژ منطقی ESP32 ندارد.
۲. آیا برای خرید قطعات این پروژه نیاز به برد توسعه خاصی است؟
خیر، شما میتوانید از هر کدام از بردهای استاندارد ESP32 (مانند ESP32 NodeMCU 38Pin یا 30Pin) به همراه ماژول TM1637 استفاده کنید.
۳. آیا امکان ساخت ساعت اینترنتی (NTP) با این ترکیب وجود دارد؟
بله، این یکی از پرطرفدارترین پروژههاست! به دلیل داشتن Wi-Fi در برد ESP32، میتوان ساعت دقیق را از سرورهای جهانی دریافت و روی TM1637 نمایش داد.





