ماژول ساعت و تاریخ DS1307 RTC | مناسب آردوینو و میکروکنترلر
ماژول ساعت و تاریخ DS1307 RTC یکی از ماژولهای پرکاربرد برای اضافه کردن قابلیت نگهداری زمان و تاریخ به پروژههای الکترونیکی و میکروکنترلری است. این ماژول با استفاده از تراشه DS1307 و رابط ارتباطی I2C، اطلاعات مربوط به ثانیه، دقیقه، ساعت، روز، تاریخ، ماه و سال را در اختیار میکروکنترلر قرار میدهد.
ماژول DS1307 RTC گزینهای مناسب برای استفاده در پروژههای Arduino، AVR، PIC، STM32 و سایر سیستمهای مبتنی بر میکروکنترلر با سطح منطقی حداکثر 5V DC است. ارتباط ساده از طریق I2C باعث میشود تنها با چند پایه بتوان اطلاعات زمان و تاریخ را از ماژول دریافت و در برنامه استفاده کرد.
یکی از مهمترین ویژگیهای ماژول ساعت و تاریخ DS1307 RTC ، امکان استفاده از باتری پشتیبان برای حفظ اطلاعات زمان هنگام قطع تغذیه اصلی است. در صورت استفاده از باتری مناسب، تراشه DS1307 میتواند زمان را بدون نیاز به تغذیه اصلی حفظ کند و پس از روشن شدن مجدد سیستم، اطلاعات ساعت و تاریخ در دسترس میکروکنترلر قرار بگیرد.
ماژول ساعت و تاریخ DS1307 RTC از رابط I2C برای ارتباط با میکروکنترلر استفاده میکند. این رابط باعث میشود اتصال ماژول به بردهایی مانند آردوینو ساده باشد و از تعداد کمی پایه برای انتقال اطلاعات استفاده شود. به همین دلیل DS1307 یکی از گزینههای محبوب برای پروژههایی است که به ثبت یا کنترل زمان نیاز دارند.
ماژول ساعت و تاریخ DS1307 RTC است ثانیه، دقیقه، ساعت، روز هفته، روز ماه، ماه و سال را شمارش و ثبت کند. تاریخ پایان ماههایی که کمتر از ۳۱ روز دارند بهصورت خودکار اصلاح میشود و قابلیت جبران سال کبیسه نیز تا سال ۲۱۰۰ دارد. تراشه DS1307 دارای ۵۶ بایت RAM غیرفرار با پشتیبانی باتری است؛ بنابراین دادههای ذخیرهشده در آن با قطع تغذیه اصلی، در صورت وجود باتری پشتیبان، حفظ میشوند. عبارت «2100 byte RAM» در متن اصلی نادرست است و مشخصه صحیح DS1307، ۵۶ بایت RAM است.nxp
این ماژول از رابط سریال دو سیمه I²C استفاده میکند، خروجی موج مربعی قابلبرنامهریزی دارد و هنگام افت یا قطع ولتاژ تغذیه، بهطور خودکار به باتری پشتیبان متصل میشود. مصرف جریان آن در حالت باتری پشتیبان، در دمای ۲۵ درجه سانتیگراد، کمتر از ۵۰۰ نانوآمپر است.
اگر پروژه شما نیاز به ثبت و نگهداری زمان و تاریخ دارد، ماژول ساعت و تاریخ DS1307 RTC یک راهکار ساده و اقتصادی است. وجود رابط I2C، امکان استفاده از باتری پشتیبان و سازگاری با بسیاری از بردهای میکروکنترلری، این ماژول را به گزینهای کاربردی برای پروژههای الکترونیکی تبدیل کرده است.
نکته مهم
دقت زمانی DS1307 به کریستال مورد استفاده و شرایط محیطی، بهخصوص دما، وابسته است. بنابراین برای پروژههایی که به دقت زمانی بسیار بالا نیاز دارند، بهتر است از RTCهای دقیقتر مانند DS3231 استفاده شود. برای تهیه ماژول ساعت و تاریخ دقیق تر می توانید به لینک زیر مراجعه نمایید :
توجه: باتری همراه این محصول ارائه نمیشود و باید بهصورت جداگانه تهیه شود. برای تهیه باتری مناسب ماژول ساعت و تاریخ DS1307 RTC می توانید از طریق لینک زیر اقدام نمایید:
کاربردها
• ساخت ساعت و تقویم دیجیتال
• پروژههای آردوینو و میکروکنترلری
• ثبت زمان رخدادها و اطلاعات در دیتالاگر
• سیستمهای ثبت ورود و خروج
• کنترل روشن و خاموش شدن تجهیزات در زمان مشخص
• پروژههای اتوماسیون و هوشمندسازی
• تایمرهای دیجیتال و سیستمهای زمانبندی
• نمایش ساعت و تاریخ روی LCD یا OLED
• پروژههای آموزشی، دانشجویی و DIY
• سیستمهای اندازهگیری و ثبت اطلاعات
راهاندازی (SETUP)
1. اتصال پایههای ماژول
راهاندازی ماژول DS1307 نسبتاً ساده است و از طریق رابط ارتباطی I2C انجام میشود .
توضیحات پایههای ماژول RTC
• پایه SQ: این پایه خروجی موج مربعی قابلبرنامهریزی است و میتواند یکی از چهار فرکانس زیر را تولید کند:
۱ هرتز، ۴ کیلوهرتز، ۸ کیلوهرتز یا ۳۲ کیلوهرتز. این خروجی میتواند برای تولید پالس زمانی، وقفه یا همگامسازی مدارهای دیگر استفاده شود.
• پایه DS: اگر روی ماژول، کنار نگهدارنده باتری، سنسور دمای DS18B20 نصب شده باشد، این پایه برای ارسال اطلاعات دما در نظر گرفته شده است. در بعضی بردها این سنسور با نام U1 مشخص میشود. اگر سنسور روی ماژول وجود نداشته باشد، این پایه کاربردی ندارد.
• پایه SCL: پایه کلاک رابط I²C است. میکروکنترلر از این خط برای همگامسازی انتقال داده در ارتباط سریال I²C استفاده میکند.
• پایه SDA: پایه داده رابط I²C است و انتقال و دریافت داده میان ماژول و میکروکنترلر از طریق این خط انجام میشود.
نکته مهم: پایههای ارتباطی SDA و SCL در ماژول DS1307 به کمک مقاومتهای Pull-up به پایه VCC متصل شدهاند. به همین دلیل، سطح منطقی سیگنالهای این دو پایه به ولتاژ تغذیه ماژول وابسته است. در صورت استفاده از تغذیه 5 ولت، سطح منطقی High روی پایههای SDA و SCL تقریباً 5 ولت خواهد بود.
بنابراین برای اتصال مستقیم و کار با میکروکنترلر هایی که سطح ولتاژ منطقی آنها حداکثر 3.3V DC است مناسب نیست و نیاز به مبدل سطح ولتاژ خواهد بود. در صورت استفاده با میکروکنترلر هایی با سطح ولتاز منطقی حداکثر 3.3V DC بهتر است از نمنه مشابه آن یعنی ماژول DS3231 استفاده نمایید. برای مشاهده تهیه ماژول ساعت و تاریخ DS3231 می توانید به لینک زیر مراجعه نمایید :
• پایه VCC: پایه تغذیه ماژول است. ولتاژ تغذیه قابلاستفاده معمولاً در محدوده 4.5-5.5V DC قرار دارد و مقدار توصیه شده 5V DC و جریان مصرفی حداقل 5mA است.
• پایه GND: پایه زمین یا قطب منفی تغذیه مدار است.
• پایه BAT: ورودی تغذیه پشتیبان برای اتصال باتری شارژی با برد محافظ شارژ و دشارژ ۳ ولت، مانند باتری سکهای CR2032، یا هر منبع پشتیبان مناسب دیگر است. در صورت استفاده از باتری قابل شارژ خروجی برد محافظ باتری را تنظیم و سپس به پایه BAT اعمال نمایید و از اتصال باتری سکه ای غیر قابل شارژ خودداری کنید. این باتری هنگام قطع تغذیه اصلی، ساعت و تاریخ ماژول را حفظ میکند. در صورت استفاده از باتری سکه ای معمولی و غیر قابل شارژ نیازی به استفاده از این پایهBAT نیست.
مثلا اتصال معمول ماژول به آردوینو به شکل زیر است:
پایه DS1307 آردوینو Uno/Nano
VCC 5V
GND GND
SDA A4
SCL A5
در میکروکنترلرها و بردهای دیگر، پایههای SDA و SCL ممکن است متفاوت باشند؛ بنابراین باید پایههای I2C همان برد بررسی شود.
2. اتصال باتری
برای حفظ ساعت و تاریخ هنگام قطع برق، باتری مناسب را در محل مخصوص آن قرار دهید. باتری رایج برای این ماژول CR2032 سه ولتی است و معمولاً همراه محصول عرضه نمیشود. برای تهیه باتری مناسب ماژول ساعت و تاریخ DS1307 RTC می توانید از طریق لینک زیر اقدام نمایید:
3. نصب کتابخانه
کتابخانه مناسب با میکروکنترلر انتخابی را نصب و در محیط برنامه نویسی سازگار شروع به کدنویسی کنید.
برای استفاده در آردوینو، میتوان از کتابخانههای RTC سازگار با DS1307 از جمله کتابخانه RTClib استفاده کرد. پس از نصب کتابخانه، زمان اولیه در برنامه تنظیم شده و سپس اطلاعات ساعت و تاریخ از ماژول خوانده میشود. برای نصب کتابخانه RTClib می توانید از طریق Library Manager نرم افزار آردوینو و یا ازطریق لینک های زیر اقدام نمایید :
در صورت مشکل در باز شدن لینک ها از فیلترشکن استفاده نمایید.
4. اجرای برنامه تست
برای مشاهده نمونه کدنویسی ماژول ds1307 برای آردوینو می توانید به فایل بخش دیتاشیت محصول مراجعه و یا از طریق لینک های زیر اقدام نمایید :
در صورت مشکل در باز شدن لینک ها از فیلترشکن استفاده نمایید.
5. معمولا آدرس I2C تراشه DS1307 برابر 0x68 و آدرس I2C – AT24C32 برابر 0x50 تا 0x57 است. اما بهتر است اگر از Arduino استفاده میکنید، یک برنامه I2C Scanner روی برد آپلود کنید. این برنامه تمام آدرسهای فعال روی باس I2C را پیدا میکند. بعد از اجرای Serial Monitor، میتوانید آدرس تراشه DS1307 و تراشه حافظه روی ماژول را مشاهده نمایید.
6. تنظیم زمان اولیه
در اولین راهاندازی، باید ساعت و تاریخ صحیح در کد وارد شود. پس از بارگذاری برنامه، تراشه زمان تنظیمشده را در صورت وجود باتری پشتیبان حفظ میکند و هنگام قطع تغذیه اصلی نیز به شمارش زمان ادامه میدهد.
7. خواندن اطلاعات زمان
میکروکنترلر میتواند اطلاعات زیر را از DS1307 دریافت کند:
• ثانیه
• دقیقه
• ساعت
• روز هفته
• روز ماه
• ماه
• سال
این اطلاعات میتوانند روی نمایشگر LCD، OLED، سونسگمنت یا هر رابط کاربری دیگری نمایش داده شوند.
نکات مهم هنگام استفاده
• قطب مثبت و منفی تغذیه را قبل از اتصال بررسی کنید. اتصال اشتباه قطبیت های مثبت و منفی باعث آسیب به ماژول خواهد شد.
• از اعمال ولتاژ ورودی VCC در خارج از محدوده مجاز 4.5-5.5V DC خودداری کنید.
• پایههای SDA و SCL را به پایههای صحیح I2C میکروکنترلر متصل کنید.
• پایههای ارتباطی SDA و SCL در ماژول DS1307 به کمک مقاومتهای Pull-up به پایه VCC متصل شدهاند. به همین دلیل، سطح منطقی سیگنالهای این دو پایه به ولتاژ تغذیه ماژول وابسته است. در صورت استفاده از تغذیه 5 ولت، سطح منطقی High روی پایههای SDA و SCL تقریباً 5 ولت خواهد بود. بنابراین برای اتصال و کار با میکروکنترلر هایی که سطح ولتاز منطقی آنها حداکثر 3.3V DC است مناسب نیست و نیاز به مبدل سطح ولتاز خواهد بود. در صورت استفاده با میکروکنترلر هایی با سطح ولتاز منطقی حداکثر 3.3V DC بهتر است از نمنه مشابه آن یعنی ماژول DS3231 استفاده نمایید. برای مشاهده تهیه ماژول ساعت و تاریخ DS3231 می توانید به لینک زیر مراجعه نمایید :
مشاهده تهیه ماژول ساعت و تاریخ DS3231
• برای حفظ زمان هنگام قطع برق، باتری پشتیبان باید سالم و دارای ولتاژ مناسب باشد.
• باتری همراه محصول ارائه نمیشود و باید جداگانه تهیه شود.
• باتری معمولی CR2032 را در ماژولی که مدار شارژ باتری دارد استفاده نکنید؛ در این حالت باید از باتری قابل شارژ سازگار استفاده شود.
• در اولین استفاده، ساعت و تاریخ را در برنامه تنظیم کنید.
DS1307 برای کاربردهای عمومی مناسب است، اما دقت آن به کریستال و دمای محیط وابسته است. برای کاربردهای حساس به زمان که به دقت بالاتری نیاز دارند، استفاده از ماژول RTC مدل DS3231 پیشنهاد میشود. برای مشاهده و تهیه ماژول ساعت و تاریخ دقیقتر DS3231، میتوانید به لینک زیر مراجعه کنید:
خرید ماژول فوق دقیق DS3231 مناسب برای بردهای رزبری پای
• اگر ساعت پس از قطع برق متوقف میشود، ابتدا باتری، جهت نصب باتری و اتصالات آن را بررسی کنید.
مشخصات فنی :
تراشه اصلی: DS1307
نوع ماژول: ساعت بلادرنگ (RTC – Real-Time Clock)
وظیفه اصلی: ارائه اطلاعات زمان و تاریخ و نگهداری آنها در صورت وجود باتری پشتیبان سالم
حافظه داخلی DS1307: 56 بایت RAM
حافظه جانبی: AT24C32 در نسخههای مجهز به EEPROM
نوع حافظه جانبی: EEPROM غیر فرّار (Non-Volatile)
تراشه حافظه: AT24C32
ظرفیت اسمی حافظه: 32 کیلوبیت
ظرفیت قابل استفاده حافظه: 4 کیلوبایت
رابط ارتباطی: I2C
پایههای ارتباطی: SDA و SCL
ولتاژ کاری: 4.5 تا 5.5 ولت DC
ولتاژ کاری توصیهشده: 5 ولت DC
جریان مصرفی: حدود 5 میلیآمپر
جریان مصرفی باتری پشتیبان: کمتر از 500 نانوآمپر
سطح منطقی I2C: وابسته به ولتاژ Pull-up و تقریباً برابر با VCC
باتری پشتیبان: پشتیبانی از باتری 3 ولتی مانند CR2032
باتری همراه محصول: ندارد
اطلاعات قابل نگهداری: ثانیه، دقیقه، ساعت، روز، تاریخ، ماه و سال، در صورت وجود و سلامت باتری پشتیبان
حفظ زمان هنگام قطع برق: دارد؛ در صورت وجود و سلامت باتری پشتیبان
فرمت ساعت: 12 یا 24 ساعته
سازگاری: Arduino، AVR، PIC، STM32 و سایر میکروکنترلرهای دارای رابط I2C
کاربردهای ماژول RTC: ساعت دیجیتال، دیتالاگر، تایمر، ثبت زمان و پروژههای اتوماسیون
باتری رایج: CR2032 – 3V
رابط تغذیه: VCC و GND
دقت زمانی: وابسته به کریستال و دمای محیط
پایههای اصلی: VCC، GND، SDA و SCL
کاربردهای عمومی: پروژههای آموزشی، صنعتی، DIY و میکروکنترلری
حفظ اطلاعات EEPROM هنگام قطع برق: دارد
تعداد دفعات نوشتن حافظه EEPROM: حدود 1 میلیون چرخه برای هر سلول
اشتراک باس ارتباطی: پایههای SDA و SCL بهصورت مشترک با DS1307
ابعاد ماژول: حدود 27 × 28 × 8.5 میلیمتر
محدوده دمای کاری ماژول: حدود 0 تا 70+ درجه سانتیگراد برای DS1307 در محدوده دمایی تجاری
نحوه نصب: پد لحیمکاری، پین هدر با فاصله 2.54 میلیمتر و سوراخهای نصب مناسب پیچ 3 میلیمتری
سوالات متداول:
ماژول DS1307 چیست؟
ماژول DS1307 یک RTC یا ساعت بلادرنگ است که برای ارائه و نگهداری ساعت و تاریخ در پروژههای الکترونیکی و میکروکنترلری استفاده میشود.
ماژول DS1307 با چه بردهایی سازگار است؟
این ماژول به دلیل استفاده از رابط I2C با بردهایی مانند Arduino، AVR، PIC، STM32 و بسیاری از میکروکنترلرهای دارای I2C قابل استفاده است.
آدرس I2C ماژول DS1307 چیست؟
معمولا آدرس I2C تراشه DS1307 برابر 0x68 و آدرس I2C – AT24C32 برابر 0x50 تا 0x57 است. اما بهتر است اگر از Arduino استفاده میکنید، یک برنامه I2C Scanner روی برد آپلود کنید. این برنامه تمام آدرسهای فعال روی باس I2C را پیدا میکند. بعد از اجرای Serial Monitor، میتوانید آدرس تراشه DS1307 و تراشه حافظه روی ماژول را مشاهده نمایید.
آیا DS1307 حافظه دارد؟
بله. خود تراشه DS1307 دارای 56 بایت RAM غیر فرّار برای ذخیره اطلاعات است. این نسخه از ماژول علاوه بر DS1307 دارای حافظه EEPROM مدل AT24C32 با ظرفیت 4KByte نیز هست.
آیا باتری همراه ماژول ارائه میشود؟
خیر، باتری همراه محصول ارائه نمیشود و باید جداگانه تهیه شود. باتری رایج برای حفظ زمان در این ماژول CR2032 سه ولتی است. برای تهیه باتری مناسب ماژول ساعت و تاریخ DS1307 RTC می توانید از طریق لینک زیر اقدام نمایید:
خرید باتری سکه ای 2032 مارک MAXELL
آیا DS1307 هنگام قطع برق زمان را حفظ میکند؟
بله. در صورت وجود و سلامت باتری پشتیبان مناسب، DS1307 میتواند هنگام قطع تغذیه اصلی به شمارش زمان ادامه دهد.
ولتاژ کاری DS1307 چقدر است؟
ولتاژ تغذیه قابلاستفاده معمولاً در محدوده 4.5-5.5V DC قرار دارد و مقدار توصیه شده 5V DC و جریان مصرفی حداقل 5mA است.
پایههای SDA و SCL چه کاربردی دارند؟
این دو پایه برای ارتباط I2C استفاده میشوند. SDA خط انتقال داده و SCL خط کلاک ارتباطی است. با توجه به محدوده ولتاژ تغذیه و آرایش پایه های SDA و SCL این ماژول برای اتصال و کار با میکروکنترلرهای دارای سطح ولتاژ منطقی حداکثر 5VDC مناسب است و برای کار با سایر میکروکنترلرها مستقیما مناسب نیست و نیاز به مبدل سطح ولتاژ دارد.
آیا میتوان DS1307 را به ESP32 متصل کرد؟
از نظر رابط I2C امکان اتصال وجود دارد، اما باید سطح منطقی SDA/SCL و ولتاژ Pull-up ماژول بررسی شود؛ زیرا بسیاری از ماژولهای DS1307 دارای Pull-up متصل به 5V هستند.
دقت ساعت DS1307 چقدر است؟
دقت DS1307 به کیفیت کریستال 32.768kHz و شرایط محیطی، بهخصوص دما، وابسته است. برای کاربردهای بسیار دقیق، RTCهایی مانند DS3231 گزینه مناسبتری هستند. برای مشاهده تهیه ماژول ساعت و تاریخ دقیق تر DS3231 می توانید به لینک زیر مراجعه نمایید :
کاربرد ماژول DS1307 چیست؟
از این ماژول میتوان برای ساخت ساعت و تقویم دیجیتال، دیتالاگر، ثبت زمان رخدادها، تایمر، سیستمهای اتوماسیون و پروژههای Arduino استفاده کرد.
آیا ماژول DS1307 نیاز به برنامهنویسی دارد؟
خود ماژول مستقل از برنامهنویسی نیست و برای خواندن، تنظیم و استفاده از اطلاعات زمان معمولاً باید از طریق میکروکنترلر و رابط I2C با آن ارتباط برقرار شود.
نقد و بررسیها
هنوز بررسیای ثبت نشده است.