ماژول ساعت Real-Time DS1302 (بدون باتری)

ماژول زمان‌سنج دقیق با حافظه پشتیبان

ماژول ساعت Real-Time DS1302: نگهدار زمان دقیق برای پروژه‌های مستقل و داده‌بَر

ماژول ساعت Real-Time DS1302 یک ماژول زمان‌سنج دقیق با حافظه پشتیبان داخلی و رابط ارتباطی ساده است که امکان نگهداری زمان و تاریخ به صورت مستقل از میکروکنترلر اصلی را فراهم می‌کند. این ماژول حتی در صورت قطع برق اصلی، به کمک باتری پشتیبان (که در این مدل موجود نیست) یا سوپرکپاسیتور زمان را حفظ می‌کند.


ویژگی‌های کلیدی و مزایا

  • دقت زمانی بالا: با کریستال ۳۲.۷۶۸ کیلوهرتز خارجی.

  • حافظه پشتیبان: ۳۱ بایت حافظه RAM برای ذخیره داده‌های کاربر (تنها با منبع پشتیبان فعال می‌ماند).

  • رابط ارتباطی ساده: رابط ۳ سیمه (Three-Wire Interface) مشابه SPI اما ساده‌تر.

  • مصرف انرژی بسیار پایین: در حالت پشتیبان کمتر از ۳۰۰ نانوآمپر (با باتری ۳V).

  • فرمت زمان ۱۲/۲۴ ساعته: قابل انتخاب توسط برنامه.

  • قابلیت محاسبه خودکار: محاسبه تاریخ تا سال ۲۱۰۰ با در نظر گرفتن سال کبیسه.


مشخصات فنی DS1302

پارامتر مشخصات فنی
تراشه اصلی Dallas DS1302 (یا Maxim DS1302)
ولتاژ کاری اصلی (Vcc) ۲.۰ تا ۵.۵ ولت (سازگار با ۳.۳V و ۵V)
ولتاژ پشتیبان (Vbat) ۲.۰ تا ۳.۵ ولت (باتری سکه‌ای یا سوپرکپاسیتور)
فرمت زمان ثانیه، دقیقه، ساعت (۱۲/۲۴)، روز، ماه، سال، روز هفته
دقت ±۲۰ppm (حدود ۱.۷ ثانیه در روز) با کریستال مرغوب
رابط ارتباطی Serial 3-Wire (CE, I/O, SCLK)
فرکانس کلاک ۳۲.۷۶۸ کیلوهرتز (کریستال خارجی)
حافظه RAM پشتیبان ۳۱ بایت (فرار – با منبع پشتیبان نگهداری می‌شود)
جریان مصرف (حالت فعال) ≈ ۱.۵ میلی‌آمپر در ۵V
جریان پشتیبان < ۳۰۰ نانوآمپر (با باتری ۳V)

پین‌های ماژول (نسخه بدون باتری)

پین ماژول نام عملکرد
VCC ولتاژ اصلی اتصال به ۳.۳V یا ۵V (منبع اصلی)
GND زمین اتصال به زمین مشترک
CLK (SCLK) کلاک سیگنال کلاک از میکروکنترلر
DAT (I/O) داده دوطرفه خط داده برای خواندن/نوشتن
RST (CE) ریست/فعال فعال‌سازی تراشه (High برای شروع ارتباط)
پین‌های باتری خالی برای اتصال باتری پشتیبان یا سوپرکپاسیتور (در این مدل کاربر باید خودش اضافه کند)

نکته مهم: در این ماژول باتری پشتیبان تعبیه نشده است. برای حفظ زمان پس از قطع برق، باید خودتان باتری سکه‌ای ۳V (CR2032) یا سوپرکپاسیتور ۰.۲۲F-۱F به پین‌های Vbat و GND ماژول وصل کنید.


اتصال به آردوینو

پین ماژول DS1302 اتصال به آردوینو UNO/NANO
VCC 5V (یا ۳.۳V)
GND GND
CLK پین دیجیتال (مثلاً D6)
DAT پین دیجیتال (مثلاً D7)
RST پین دیجیتال (مثلاً D8)

کد نمونه: راه‌اندازی و خواندن زمان

// کتابخانه DS1302 - نصب از طریق Library Manager
#include <DS1302.h>

// تعریف پین‌ها
DS1302 rtc(8, 7, 6);  // (RST, DAT, CLK)

void setup() {
  Serial.begin(9600);
  
  // Initialize the RTC
  rtc.halt(false);  // اطمینان از اینکه RTC در حال اجراست
  rtc.writeProtect(false); // غیرفعال کردن حفاظت در برابر نوشتن

  // تنظیم زمان اولیه (فقط یک بار اجرا شود، سپس کامنت کنید!)
  // rtc.setDOW(FRIDAY);        // تنظیم روز هفته (جمعه)
  // rtc.setTime(14, 30, 0);    // تنظیم زمان: 14:30:00
  // rtc.setDate(9, 8, 2024);   // تنظیم تاریخ: 9 August 2024
  
  Serial.println("ماژول ساعت DS1302 آماده است.");
}

void loop() {
  // خواندن و نمایش روز هفته
  Serial.print(rtc.getDOWStr()); // به صورت متن
  Serial.print(" ");
  
  // خواندن و نمایش تاریخ
  Serial.print(rtc.getDateStr()); // فرمت: DD/MM/YYYY
  Serial.print(" -- ");
  
  // خواندن و نمایش زمان
  Serial.println(rtc.getTimeStr()); // فرمت: HH:MM:SS
  
  // خواندن مقادیر خام برای پردازش بیشتر
  // Time t = rtc.getTime();
  // Serial.print("ساعت: "); Serial.print(t.hour);
  // Serial.print(" دقیقه: "); Serial.print(t.min);
  // Serial.print(" ثانیه: "); Serial.println(t.sec);
  
  delay(1000); // تاخیر 1 ثانیه
}

نحوه افزودن باتری پشتیبان یا سوپرکپاسیتور

گزینه ۱: باتری سکه‌ای (CR2032)

  • مثبت باتری (+) → پین Vbat روی ماژول

  • منفی باتری (-) → پین GND روی ماژول

  • مزایا: عمر طولانی (۲-۵ سال)، ولتاژ پایدار.

  • معایب: قابل شارژ نیست.

گزینه ۲: سوپرکپاسیتور (۰.۲۲F تا ۱F)

  • مثبت سوپرکپاسیتور → پین Vbat

  • منفی سوپرکپاسیتور → پین GND

  • مزایا: قابل شارژ، عمر بسیار طولانی (۱۰+ سال).

  • معایب: نیاز به دیود شاتکی برای جلوگیری از شارژ معکوس و مقاومت محدودکننده جریان.



کاربردهای اصلی

  1. سیستم‌های داده‌بَر (Data Logger): ثبت زمان دقیق نمونه‌برداری از سنسورها.

  2. ساعت دیواری/رومیزی دیجیتال: ساخت ساعت با نمایشگر LCD یا LED.

  3. تایمرها و سیستم‌های برنامه‌ریزی: کنترل روشن/خاموش دستگاه در ساعات خاص.

  4. دستگاه‌های اندازه‌گیری: ثبت زمان تست و آزمایش.

  5. سیستم‌های امنیتی: ثبت زمان وقوع حوادث و آلارم.

  6. پروژه‌های آموزشی: آموزش مفاهیم RTC و مدیریت زمان.


مقایسه با سایر ماژول‌های RTC

ویژگی DS1302 DS3231 DS1307
دقت متوسط (±۲۰ppm) عالی (±۲ppm) – با جبران دما متوسط (±۲۰ppm)
رابط ارتباطی ۳-Wire I2C I2C
ولتاژ پشتیبان ۲.۰-۳.۵V ۲.۳-۵.۵V ۲.۰-۳.۵V
حافظه RAM ۳۱ بایت ندارد ۵۶ بایت
هزینه بسیار کم متوسط کم
امکانات اضافه ندارد سنسور دمای داخلی، آلارم ندارد

نکات حیاتی برای استفاده بهینه

⚠️ تنظیم اولیه زمان: پس از اولین اتصال یا قطع باتری، حتماً زمان را یک بار تنظیم کنید. کد تنظیم زمان را فقط یک بار اجرا کرده و سپس کامنت کنید.
🔋 منبع پشتیبان: بدون منبع پشتیبان، زمان با قطع برق ریست می‌شود. برای پروژه‌های جدی حتماً باتری یا سوپرکپاسیتور اضافه کنید.
⏱️ دقت زمانی: دقت به کیفیت کریستال بستگی دارد. ممکن است نیاز به تنظیم دقیق (کالیبراسیون نرم‌افزاری) داشته باشد.
🔌 اتصال سیم‌ها: از سیم‌های کوتاه استفاده کنید. سیم‌های بلند می‌توانند باعث نویز و خطا در ارتباط شوند.
📅 سال کبیسه: این تراشه به طور خودکار سال‌های کبیسه را تا سال ۲۱۰۰ محاسبه می‌کند.


پروژه عملی: ساخت داده‌بَر دما و زمان

قطعات:

  • آردوینو نانو

  • ماژول DS1302 (با باتری پشتیبان)

  • سنسور دما DS18B20

  • ماژول کارت حافظه SD

  • نمایشگر OLED کوچک (اختیاری)

خروجی: فایل CSV روی کارت SD با ستون‌های تاریخ، زمان، دما.


سوالات متداول (FAQ)

✅ چرا ماژول بدون باتری می‌فروشید؟
۱. کاهش هزینه برای کاربرانی که نیاز به حفظ زمان ندارند. ۲. امکان انتخاب باتری یا سوپرکپاسیتور با کیفیت دلخواه توسط کاربر. ۳. افزایش عمر مفید محصول (باتری‌های داخلی ممکن است پس از چند سال خراب شوند).

✅ چگونه بفهمم باتری پشتیبان کار می‌کند؟
برق اصلی را قطع کنید. باتری را وصل کنید. چند دقیقه صبر کنید. دوباره برق را وصل کرده و زمان را چک کنید. اگر زمان حفظ شده باشد، باتری کار می‌کند.

✅ آیا می‌توانم از دو ماژول DS1302 در یک پروژه استفاده کنم؟
بله، اما باید از پین‌های RST جداگانه استفاده کنید. پین‌های CLK و DAT می‌توانند مشترک باشند.

✅ تفاوت این ماژول با DS3231 چیست؟
DS3231 بسیار دقیق‌تر (با جبران دمایی داخلی) و دارای رابط I2C است اما گران‌تر. DS1302 برای اکثر کاربردهای معمولی کافی و مقرون‌به‌صرفه است.

✅ آیا می‌توانم تاریخ شمسی (هجری شمسی) نمایش دهم؟
خیر، تراشه فقط تاریخ میلادی محاسبه می‌کند. باید در کد آردوینو، تاریخ میلادی را به شمسی تبدیل کنید (با الگوریتم یا کتابخانه).

✅ حافظه RAM چگونه استفاده می‌شود؟
می‌توان داده‌های دلخواه (تنظیمات، شمارنده‌ها و…) را در ۳۱ بایت ذخیره کرد. این داده‌ها فقط با منبع پشتیبان فعال حفظ می‌شوند.

✅ اگر زمان اشتباه نشان دهد چکار کنم؟
۱. باتری پشتیبان را چک کنید. ۲. کریستال را بررسی کنید (شاید آسیب دیده). ۳. کد را مجدداً آپلود کنید و زمان را تنظیم کنید.


چرا ماژول DS1302 را از ما بخرید؟

✅ کریستال با کیفیت: استفاده از کریستال ۳۲.۷۶۸kHz با دقت بالا.
✅ پایه‌های با کیفیت: پایه‌های طلایی با مقاومت در برابر اکسیداسیون.
✅ تست کامل: تست دقت زمانی و ارتباط قبل از ارسال.
✅ پشتیبانی فنی: ارائه کدهای نمونه کامل، کتابخانه و راهنمای اضافه کردن باتری.


پکیج پیشنهادی برای شروع

  1. ماژول ساعت DS1302 (بدون باتری)

  2. باتری سکه‌ای CR2032 با هولدر

  3. سوپرکپاسیتور ۰.۲۲F 5.5V (گزینه جایگزین)

  4. دیود شاتکی 1N5817 (برای مدار با سوپرکپاسیتور)

  5. سیم‌های جامپر نری-مادگی (۵ عدد)


نحوه انتخاب منبع پشتیبان مناسب

  • پروژه‌های کوتاه‌مدت/آزمایشی: بدون باتری یا با سوپرکپاسیتور کوچک.

  • پروژه‌های دائمی با قطع برق کوتاه: سوپرکپاسیتور ۰.۲۲F تا ۰.۴۷F.

  • پروژه‌های دائمی با قطع برق طولانی: باتری CR2032 (حدود ۳-۵ سال عمر).