تراشه DS3231 یک ساعت بیدرنگ RTC با دقت بالا است که دارای یک نوسانگر کوارتز جبران شده با دمای داخلی است که منجر به تغییر زمان تنها 2± دقیقه در سال می شود. علاوه بر این، یک تابع زنگ اجرا شده است، و همچنین یک خروجی وقفه وجود دارد. ساعت را می توان به عنوان یک ماژول آردوینو آماده با عناصر تسمه ای و یک محفظه باتری خریداری کرد.
من ماژول را اینجا سفارش دادم. نمودار در تصویر زیر نشان داده شده است:
میکرو مدار از مواردی که به طور گسترده استفاده می شود استفاده می کند. از نرخ داده استاندارد (100 کیلوهرتز) و بالا (400 کیلوهرتز) پشتیبانی می کند. آدرس ریز مدار (7 بیت) در گذرگاه I2C 1101000 است. علاوه بر این، ماژول دارای حافظه I2C (24C32) است که در نمودار نشان داده نشده است.
ولتاژ تغذیه ریز مدار می تواند در محدوده 2.3 ... 5.5 ولت باشد، دو خط برق برای یک منبع خارجی (خط Vcc) و همچنین برای باتری (Vbat) وجود دارد. ولتاژ منبع خارجی به طور مداوم نظارت می شود و هنگامی که از آستانه Vpf=2.5V پایین می آید، به خط باتری سوئیچ می کند. جدول زیر شرایط تعویض بین خطوط برق را نشان می دهد:
دقت ساعت با نظارت بر دمای محیط حفظ می شود. ریز مدار یک روش داخلی را برای تنظیم فرکانس ژنراتور ساعت شروع می کند؛ مقدار تنظیم با استفاده از نمودار خاصی از فرکانس در برابر دما تعیین می شود. این روش پس از اعمال برق شروع می شود و سپس هر 64 ثانیه اجرا می شود.
به منظور صرفه جویی در شارژ، هنگامی که باتری متصل است (ولتاژ به خط Vbat اعمال می شود)، ژنراتور ساعت شروع نمی شود تا زمانی که ولتاژ در خط Vcc از مقدار آستانه Vpf بیشتر شود، یا آدرس صحیح ریز مدار از طریق انتقال داده شود. رابط I2C زمان راه اندازی مولد ساعت کمتر از یک ثانیه است. تقریباً 2 ثانیه پس از اعمال برق (Vcc)، یا دریافت آدرس از طریق رابط I2C، روند تصحیح فرکانس شروع می شود. هنگامی که مولد ساعت شروع به کار کرد، تا زمانی که Vcc یا Vbat وجود دارد به کار خود ادامه می دهد. هنگامی که برای اولین بار روشن می شود، رجیسترهای تاریخ و زمان بازنشانی می شوند و مقادیر زیر را دارند: 01/01/00 – 01 – 00/00/00 (روز/ماه/سال/ – روز هفته – ساعت/دقیقه /ثانیه).
مصرف جریان هنگام تغذیه با باتری 3.63 ولت 3 µA است، در صورت عدم انتقال داده از طریق رابط I2C. با استفاده از منبع تغذیه خارجی 5.5 ولت و سرعت بالای انتقال داده I2C، حداکثر جریان مصرفی می تواند به 300 µA برسد.
خط RST می تواند برای تنظیم مجدد خارجی استفاده شود و همچنین دارای عملکرد هشدار ولتاژ پایین است. این خط از طریق یک مقاومت داخلی به بالا کشیده می شود؛ نیازی به کشیدن بیرونی نیست. برای استفاده از عملکرد بازنشانی خارجی، یک دکمه را می توان بین خط RST و سیم مشترک وصل کرد؛ ریزمدار دارای محافظ پرش تماسی است. عملکرد هشدار زمانی فعال می شود که ولتاژ تغذیه Vcc به زیر مقدار آستانه Vpf کاهش یابد، در حالی که خط RST روی یک سطح منطقی پایین تنظیم شده است.
جدول زیر فهرستی از رجیسترهای ساعت بلادرنگ را نشان می دهد:
نشانی | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | تابع | محدودیت ها |
0x00 | 0 | 10 ثانیه | ثانیه ها | ثانیه ها | 00-59 | |||||
0x01 | 0 | 10 دقیقه | دقایق | دقایق | 00-59 | |||||
0x02 | 0 | 12/24 | قبل از ظهر بعد از ظهر | 10 ساعت | ساعت | تماشا کردن | 1-12 + AM/PM یا 00-23 | |||
10 ساعت | ||||||||||
0x03 | 0 | 0 | 0 | 0 | 0 | روز | روز هفته | 1-7 | ||
0x04 | 0 | 0 | 10 | عدد | تاریخ | 01-31 | ||||
0x05 | قرن | 0 | 0 | 10 ماه | ماه | ماه/قرن | 01-12 + قرن | |||
0x06 | 10 سال | سال | سال ها | 00-99 | ||||||
0x07 | A1M1 | 10 ثانیه | ثانیه ها | ثانیه ها، زنگ اول | 00-59 | |||||
0x08 | A1M2 | 10 دقیقه | دقایق | دقیقه، زنگ اول | 00-59 | |||||
0x09 | A1M3 | 12/24 | قبل از ظهر بعد از ظهر | 10 ساعت | ساعت | ساعت، زنگ اول | 1-12 + AM/PM یا 00-23 | |||
10 ساعت | ||||||||||
0x0A | A1M4 | DY/DT | 10 | روز | روز هفته، 1 زنگ هشدار | 1-7 | ||||
عدد | تاریخ، زنگ اول | 01-31 | ||||||||
0x0B | A2M2 | 10 دقیقه | دقایق | دقیقه، زنگ دوم | 00-59 | |||||
0x0C | A2M3 | 12/24 | قبل از ظهر بعد از ظهر | 10 ساعت | ساعت | ساعت، زنگ دوم | 1-12 + AM/PM یا 00-23 | |||
10 ساعت | ||||||||||
0x0D | A2M4 | DY/DT | 10 | روز | روز هفته، زنگ دوم | 1-7 | ||||
عدد | تاریخ، زنگ دوم | 01-31 | ||||||||
0x0E | EOSC | BBSQW | CONV | RS2 | RS1 | INTCN | A2IE | A1IE | ثبت تنظیمات (کنترل) | |
0x0F | O.S.F. | 0 | 0 | 0 | EN32 کیلوهرتز | BSY | A2F | A1F | ثبت وضعیت | |
0x10 | امضا کردن | داده ها | داده ها | داده ها | داده ها | داده ها | داده ها | داده ها | ثبت نام افست پیری | |
0x11 | امضا کردن | داده ها | داده ها | داده ها | داده ها | داده ها | داده ها | داده ها | ثبت دما، بایت بالا | |
0x12 | داده ها | داده ها | 0 | 0 | 0 | 0 | 0 | 0 | ثبت دما، بایت کم |
اطلاعات زمان در قالب اعشاری باینری ذخیره می شود، یعنی هر رقم از یک عدد اعشاری (از 0 تا 9) به عنوان یک گروه 4 بیتی نشان داده می شود. در مورد یک بایت، نیبل کم یک ها، نیبل زیاد ده ها می شمرد، و غیره. زمان در ثبات هایی با آدرس های 0x00-0x06 شمارش می شود؛ برای شمارش ساعت ها، می توانید حالت 12 یا 24 ساعت را انتخاب کنید. تنظیم بیت ششم ثبت ساعت (آدرس 0x02) حالت 12 ساعته را تنظیم می کند، که در آن بیت 5 زمان روز را نشان می دهد، مقدار 1 مربوط به بعد از ظهر (PM)، مقدار 0 مربوط به بعد از ظهر (AM) است. مقدار صفر بیت ششم مربوط به حالت 24 ساعته است، در اینجا بیت 5 در شمارش ساعت ها نقش دارد (مقادیر 20-23).
ثبت روز هفته در نیمه شب افزایش می یابد، از 1 تا 7 شمارش می شود، ثبت ماه (آدرس 0x05) حاوی بیت قرن (بیت هفتم) است، که وقتی ثبت سال شمارش (آدرس 0x06) سرریز می شود، از 99 به 00 تغییر می کند. .
تراشه DS3231 دو ساعت زنگ دار را اجرا می کند، ساعت زنگ دار اول با استفاده از رجیسترهایی با آدرس های 0x07-0x0A پیکربندی شده است، ساعت زنگ دوم با استفاده از ثبات های 0x0B-0x0D پیکربندی شده است. بیت های A1Mx و A2Mx را می توان برای پیکربندی حالت های مختلف برای آلارم ها استفاده کرد؛ تنظیم بیت، ثبت مربوطه را از عملیات مقایسه حذف می کند. جداول زیر ترکیب بیت ها را برای حالت های مختلف هشدار نشان می دهد:
ترکیبات بیتی که در جداول مشخص نشده اند منجر به عملکرد نادرست آلارم ها می شود. اگر بیت DY/DT پاک شود، مطابقت تاریخ (روز ماه) برای ساعت زنگ دار نظارت می شود؛ وقتی بیت DY/DT تنظیم می شود، مطابقت روز هفته بررسی می شود.
اکثر توابع در رجیستر کنترل پیکربندی شده اند. بیت EOSC شروع مولد ساعت را کنترل می کند، با تنظیم مجدد بیت، مولد ساعت را شروع می کند. تنظیم بیت، ژنراتور را فقط برای حالت باتری (Vbat) متوقف می کند. هنگامی که از یک منبع خارجی (Vcc) تغذیه می شود، نوسانگر بدون توجه به وضعیت بیت EOSC همیشه در حال کار است. وقتی فعال باشد، مقدار بیت پیشفرض 0 است.
تنظیم بیت BBSQW به خروجی INT/SQW (پین سوم) اجازه می دهد تا در حالت تغذیه باتری، در غیاب برق خارجی، کار کند. هنگامی که بیت روی صفر تنظیم می شود، اگر ولتاژ منبع خارجی Vcc کمتر از مقدار آستانه Vpf باشد، خروجی INT/SQW به حالت 3 می رود (غیرفعال می شود). پس از اعمال برق، مقدار بیت پیش فرض 0 است.
بیت CONV مسئول اندازهگیری دمای اجباری است؛ تنظیم بیت فرآیند تبدیل را آغاز میکند، که طی آن فرکانس مولد ساعت نیز تنظیم میشود؛ نتیجه اندازهگیری در ثباتهایی با آدرسهای 0x11، 0x12 قرار دارد. شروع فقط در صورت اتمام تبدیل قبلی امکان پذیر است ؛ قبل از شروع ، باید پرچم شلوغ را بررسی کنید. تبدیل دمای اجباری بر چرخه تنظیم فرکانس 64 ثانیه داخلی تأثیر نمی گذارد. تنظیم بیت Conv بر پرچم BSY برای 2 میلی ثانیه تأثیر نمی گذارد. بیت های Conv و BSY پس از اتمام تبدیل به طور خودکار پاک می شوند.
BITS RS2 ، RS1 فرکانس پالس های مستطیل (موج مربع) را در خروجی INT/SQW تنظیم می کند. به طور پیش فرض ، هنگامی که فعال می شوند ، بیت ها روی 1 تنظیم می شوند. جدول زیر ترکیبات احتمالی بیت ها را نشان می دهد:
بیت INTCN خروجی INT/SQW را کنترل می کند. اگر بیت مجدداً تنظیم شود ، پالس های مستطیل شکل (امواج مربع) در خروجی ظاهر می شوند که فرکانس آن توسط بیت های RS2 ، RS1 تنظیم می شود. هنگامی که بیت INTCN تنظیم شده است ، از خروجی برای ایجاد وقفه های زنگ استفاده می شود. به طور پیش فرض، مقدار بیت 1 است. نوع خروجی INT/SQW است - تخلیه باز، بنابراین لازم است آن را از طریق یک مقاومت به سطح منطقی بالا بکشید، سطح فعال پایین است.
تنظیم بیت های A1ie ، A2IE به ترتیب وقفه ها را در سیگنال های زنگ 1 و 2 امکان پذیر می کند. بازنشانی بیت ها ، وقفه ها را غیرفعال می کند. مقدار پیش فرض 0 است.
ثبت وضعیت حاوی پرچم های رویداد است و خروجی 32 کیلوهرتز را کنترل می کند. پرچم OSF وضعیت مولد ساعت را نشان می دهد، مقدار 1 به این معنی است که مولد ساعت متوقف شده است، این رویداد می تواند در موارد زیر رخ دهد:
پس از تنظیم، مقدار بیت تغییر نمی کند، بیت باید به صورت دستی تنظیم مجدد شود.
تنظیم بیت EN32kHz اجازه می دهد تا پالس های مستطیلی (امواج مربع) در خروجی 32 کیلوهرتز (پین اول) تولید شود، فرکانس پالس ثابت و برابر با 32.768 کیلوهرتز است. تنظیم مجدد بیت این عملکرد را غیرفعال می کند و خروجی را به حالت سوم (امپدانس ورودی بالا) منتقل می کند. به طور پیش فرض، مقدار بیت 1 است؛ پس از اعمال برق، پالس ها در خروجی ظاهر می شوند. نوع خروجی 32 کیلوهرتز تخلیه باز است، بنابراین نیاز به کشش تا سطح منطقی بالا دارد.
پرچم شلوغ BSY در طی فرآیند تبدیل دما و تنظیم ساعت تنظیم شده است. پرچم پس از اتمام تبدیل دوباره تنظیم می شود.
پرچم های ساعت زنگ A1f ، A2F هنگامی تنظیم می شوند که مقادیر ثبت نام های شمارش زمان و ثبت های ساعت زنگ دار مطابقت داشته باشند. اگر زنگ هشدار A1IE را قطع کند، A2IE فعال شود، و یک خروجی وقفه اختصاص داده شود (بیت INTCN تنظیم شده است)، سپس یک سیگنال وقفه در خروجی INT/SQW ظاهر می شود (انتقال از سطح منطقی بالا به پایین). پرچم ها باید با نوشتن مقدار 0 به صورت دستی تنظیم مجدد شوند.
رجیستر Aging Offset برای تنظیم فرکانس مولد ساعت طراحی شده است. اگر تغییر دما تشخیص داده شود، و همچنین هنگامی که تبدیل دما توسط بیت CONV فعال می شود، مقدار ثبت به فرکانس اسیلاتور در طول فرآیند تنظیم داخلی اضافه می شود. مقدار افست امضا شده است، یعنی مقادیر مثبت (1-127) فرکانس را کاهش می دهد، مقادیر منفی (128-255) آن را افزایش می دهد. برای همان افست، تغییر فرکانس بسته به دما متفاوت خواهد بود. در 25+ درجه سانتیگراد، تغییر فرکانس 0.1 ppm/LSB خواهد بود.
مقدار دمای فعلی در ثبات هایی با آدرس های 0x11 و 0x12 ذخیره می شود، بایت های بالا و پایین به ترتیب، مقدار دما در ثبات ها به طور دوره ای به روز می شود. تراز سمت چپ تنظیم شده است، وضوح 10 بیت یا 0.25 درجه سانتیگراد / LSB است، یعنی بایت بالا شامل قسمت صحیح دما است و بیت های 6 و 7 در ثبات های پایین بخش کسری را تشکیل می دهند. در بایت بالا، بیت 7 نشانه دما را نشان می دهد، به عنوان مثال، مقدار 00011011 01 مربوط به دمای +27.25 درجه سانتیگراد است، مقدار 11111110 10 مربوط به دمای -2.5 درجه سانتیگراد است.
هنگام خواندن رجیسترهای زمان، توصیه می شود از یک بافر اضافی استفاده کنید، یعنی چندین رجیستر را به طور همزمان بخوانید و نه جداگانه، زیرا بین عملیات خواندن فردی، ثبات های زمان می توانند مقدار خود را تغییر دهند. این قانون همچنین توصیه می شود هنگام نوشتن داده های جدید در ثبت حساب ها رعایت شود. نوشتن یک مقدار جدید در ثبات ثانیه، ساعت را به مدت 1 ثانیه مکث می کند، ثبات های باقی مانده باید در این مدت بازنویسی شوند.
من ساعت را به یک میکروکنترلر PIC16F628A وصل کردم و استفاده کردم. نمودار اتصال در زیر نشان داده شده است:
پس از اعمال برق، خط تیره (– – – – – –) روی نشانگرها نمایش داده میشود، سپس ساعت اولیه میشود، مقدار زمان با تأخیر 1 ثانیه روی نشانگرها ظاهر میشود که برای راهاندازی مولد ساعت لازم است. نشانگرها ساعت ها، دقیقه ها و ثانیه ها را با یک نقطه اعشار از هم جدا می کنند و فرمت زمان 24 ساعته است. با استفاده از دکمه SB1 "Indication" می توانید فرمت نمایش را تغییر دهید، جایی که نشانگرها دما و همچنین مقدار ساعت و دقیقه را با یک نقطه اعشار از هم جدا می کنند که با فرکانس 2 هرتز چشمک می زند. دما بدون بخش کسری نمایش داده می شود؛ برنامه فقط بایت بالای ذخیره دما را در آدرس 0x11 می خواند.
مقدار زمان از طریق یک وقفه در خط SQW/INT از ساعت خوانده میشود، که توسط اولین سیگنال زنگ کنترل میشود؛ در طول شروع اولیه ساعت، ساعت زنگ دار روی سیگنال هر ثانیه تنظیم میشود. LED HL1 به عنوان یک نشانگر عمل می کند و هر ثانیه در سیگنال وقفه چشمک می زند. در صورت بروز خطا در انتقال داده ها از طریق رابط I2C، LED HL2 روشن می شود.
علاوه بر این، من قابلیت تنظیم ساعت را با استفاده از دکمه های SB2 "Settings"، SB3 "Installation" به برنامه اضافه کردم. با فشار دادن دکمه SB2 به حالت تنظیم وارد می شود؛ نشانگرها به جای دقیقه و ثانیه (00 – – – –) ساعت 00 و خط تیره را نشان می دهند. با استفاده از دکمه SB3، مقدار ساعت را تنظیم می کنید (با هر بار فشار دادن افزایش می یابد)، سپس با فشار دادن دکمه SB2 به ویرایش دقیقه تغییر می کند؛ به جای خط تیره، 00 دقیقه نمایش داده می شود. دکمه SB3 نیز مقدار مورد نیاز و غیره را تنظیم می کند. پس از ویرایش ثانیه ها و فشار دادن دکمه SB2، زمان در ساعت بازنویسی می شود و زمان به روز شده روی نشانگرها نمایش داده می شود.
کد برنامه جزئی در زیر آورده شده است (نسخه کامل را می توانید در انتهای مقاله دانلود کنید):
;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;; ; #عبارتند از
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; #عبارتند از CONFIG H"3F10" ؛ پیکربندی میکروکنترلر errorlevel -302 ;پیام های خطای 302 را در لیست نشان ندهید Sec equ 0020h ;رجیسترهای حساب کمکی معادله Sec1 0021h ; معادله Sec2 0022h ; scetbit equ 0024h ؛ شمارش تعداد بیت های ثبت کمکی perem equ 0025h ;ثبت دریافت/انتقال بایت کمکی از طریق spi, i2c دمای equ 0026h ;رجیستر دما رجیستر کمکی perem_1 equ 0027h ;BCD نتیجه معادله 0028h ;رجیستر کمکی مبدل باینری-اعشاری dat_ind equ 0029h ؛ ثبت داده برای انتقال از طریق پروتکل spi adr_ind equ 002Ah ;رجیستر آدرس برای انتقال از طریق پروتکل spi معادله دوم 002Bh ;ثانیه ثبت ذخیره برای تنظیم زمان minut equ 002Ch ;ثبت ذخیره دقیقه برای تنظیم زمان ساعت معادل 002Dh ;ثبت ذخیره سازی ساعت برای تنظیم زمان adr_i2c equ 002Eh ;ثبت کننده زیربرنامه انتقال داده رابط i2c tmp_i2c معادل 002Fh slave_adr equ 0030h data_i2c معادله 0031h flag equ 007Fh ; ثبت پرچم #تعریف int PORTB,0 ؛ خط وقفه INT/SQW DS3231 #DEFINE sda PORTB,1 ;خط SDA برای اتصال DS3231 #تعریف scl PORTB,2 ;خط SCL برای اتصال DS3231 #DEFINE datai PORTB,5؛ خط ورودی داده از درایور MAX7219 #DEFINE cs PORTB,6 ;خط انتخاب راننده MAX7219 #تعریف clk PORTB,7 خط ساعت از درایور MAX7219 #DEFINE led PORTB,4 ;i2c خطا LED #DEFINE led_sec PORTB,3؛ نشانگر پیشرفت ساعت LED 1Hz #Define Regim Porta ، 2 ؛ دکمه نشانه - حالت نمایش را تغییر می دهد #DEFINE nast PORTA,3؛ دکمه تنظیمات - وارد حالت تنظیم زمان می شود #define UST Porta ، 4 ؛ دکمه تنظیم - مقدار ساعت را تنظیم کنید ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; org 0000h ؛ شروع برنامه را از آدرس 0000H شروع کنید goto Start ؛ به برچسب Start بروید ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ؛ برنامه اصلی Movlw B "00000000" را شروع کنید ؛ مقادیر قفل خروجی بندر A را تنظیم کنید Movlw B "01000000" ؛ مقادیر قفل خروجی بندر B را تنظیم کنید movlw b"00000111"؛ مقایسه کننده ها را خاموش کنید bsf STATUS,RP0 ؛ بانک اول را انتخاب کنید MOVLW B "00000111" ؛ پیکربندی خطوط ورودی/خروجی پورت B MOVWF TRISB ؛ RB0 -RB2 - به ورودی ، بقیه به خروجی MOVLW B "111111111" ؛ تنظیم خطوط ورودی/خروجی بندر A movwf TRISA ;همه خطوط برای ورودی bcf STATUS,RP0 ؛ بانک 0 را انتخاب کنید clrf flag ;رجیستر پرچم را بازنشانی کنید با init_lcd تماس بگیرید ؛ با روال اولیه سازی راننده تماس بگیرید (MAX7219) با VIV_NOT تماس بگیرید ؛ نمادهای خروجی Dash "------" به شاخص ها ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; آدرس دستگاه movlw b"11010000" (DS3231) ؛ 4 بایت را برای ثبت/انتقال از طریق I2C بنویسید MOVLW DATA_I2C ؛ تنظیم اولین ثبت دریافت/انتقال از طریق I2C Movlw B "10000000" ؛ داده برای ثبت ثانیه های زنگ 1 MOVLW B "10000000" ؛ داده برای ثبت نام دقایقی از زنگ 1 MOVLW B "10000000" ؛ داده برای ثبت ساعت زنگ 1 MOVLW B "10000000" ؛ داده برای تاریخ/روز ثبت نام هفته زنگ هشدار 1 movlw .4 ;انتقال 4 بایت از طریق i2c movlw 0x07 ;تنظیم آدرس ثبت ثانیه های ساعت زنگ دار اول |
ویژگی های متمایز کننده:
کاربرد:
نمودار اتصال معمولی برای DS3231:
توضیحات کلی:
DS3231 یک ساعت بیدرنگ (RTC) با دقت بالا با رابط داخلی I 2 C، نوسانگر کریستالی جبران شده با دما (TCXO) و تشدید کننده کوارتز است. این دستگاه دارای ورودی برای اتصال یک منبع تغذیه خودکار پشتیبان است که امکان اندازه گیری زمان و دما را حتی زمانی که ولتاژ منبع تغذیه اصلی خاموش است را می دهد. تشدید کننده کوارتز داخلی عمر مفید دستگاه را افزایش می دهد و تعداد عناصر خارجی مورد نیاز را کاهش می دهد. DS3231 در نسخه های دمایی تجاری و صنعتی موجود است و در بسته بندی 300 میل 16 پین SO بسته بندی می شود.
RTC شمارش ثانیه ها، دقیقه ها، ساعت ها، روزهای هفته، روزهای ماه و سال را فراهم می کند. تاریخ پایان ماه به طور خودکار با در نظر گرفتن سال های کبیسه تعیین می شود. ساعت واقعی در قالب 24 یا 12 ساعت با نشان دادن نیمه فعلی روز (AM/PM) کار می کند. دستگاه دارای دو آلارم روزانه و خروجی موج مربعی با فرکانس قابل برنامه ریزی می باشد. تبادل داده با دستگاه از طریق رابط داخلی سازگار با سریال I 2 C انجام می شود.
". بیایید با ماژول ساعت بیدرنگ DS3231 آشنا شویم. این مقاله حاوی دستورالعمل های ویدئویی، لیست برنامه ها، هدف و روش های اتصال ماژول ها از خانواده DS به آردوینو است.
ماژول ساعت واقعی DS3231
ماژول ساعت زمان واقعی- این یک مدار الکترونیکی است که برای ثبت داده های زمان سنجی (زمان فعلی، تاریخ، روز هفته و غیره) طراحی شده است و سیستمی متشکل از یک منبع برق مستقل و یک دستگاه ضبط است.
ماژول DS3231در اصل یک ساعت معمولی است. بردهای آردوینو قبلاً دارای سنسور زمان داخلی هستند میلیسبا این حال، فقط زمانی کار می کند که برق به برد اعمال شود. اگر آردوینو را خاموش و سپس روشن کنید، زمان میلیس به صفر می رسد. و DS3231 دارای یک باتری روی برد است که حتی زمانی که برد آردوینو قطع میشود، ماژول را "تغذیه" میکند و به آن امکان اندازهگیری زمان را میدهد.
این ماژول می تواند به عنوان ساعت یا ساعت زنگ دار بر اساس بردهای آردوینو استفاده شود. یا به عنوان یک هشدار برای سیستم های مختلف، به عنوان مثال در یک خانه هوشمند.
مشخصات DS3231:
32 هزار- خروجی طراحی شده برای تامین برق خارجی >12 ولت.
S.Q.W.- خروجی سیگنال موج مربعی قابل برنامه ریزی
SCL– از طریق این پین، داده ها با ساعت از طریق رابط I2C رد و بدل می شوند.
S.D.A.- داده های ساعت از طریق این پین منتقل می شود.
VCC- منبع تغذیه برای ساعت واقعی، 5 ولت مورد نیاز. اگر ولتاژی به این پین داده نشود، ساعت به حالت خواب می رود.
GND- زمین.
پین های SDA و SCL در بردهای مختلف آردوینو:
S.D.A. | SCL | |
سازمان ملل متحد | A4 | A5 |
مینی | A4 | A5 |
نانو | A4 | A5 |
Mega2560 | 20 | 21 |
لئوناردو | 2 | 3 |
بیایید ماژول ساعت بلادرنگ را به Arduino UNO متصل کنیم. SDA - پین A4، SCL - پین A5.
برنامه زیر برای کارکرد مدل مناسب است (به سادگی می توانید برنامه را در Arduino IDE کپی کنید):
#عبارتند از
void setup() (
تاخیر(300);
Serial.begin(9600);
time.begin();
}
حلقه خالی()
}
}
در این طرح، زمان به سادگی در حال شمارش معکوس است.
اول از همه، در sktech، کتابخانه را متصل کنید iarduino_RTC.h.
در آنجا نام دقیق ماژول خود را برای کار صحیح با آن مشخص کنید.
در نتیجه، خروجی زمان را از ماژول DS3231 به نمایشگر پورت دریافت می کنیم. ساعت، دقیقه، ثانیه نمایش داده می شود.
در طرح بعدی یک تابع اضافه می کنیم مدت زمان معینی، که به شما امکان می دهد زمان شمارش معکوس اولیه را تنظیم کنید.
#عبارتند از
زمان iarduino_RTC (RTC_DS3231)؛
void setup() (
تاخیر(300);
Serial.begin(9600);
time.begin();
time.settime(0,0,18,24,04,17,1); // 0 ثانیه، 0 دقیقه، 18 ساعت، 24 آوریل 2017، دوشنبه
}
حلقه خالی()
if(millis()%1000==0)( // اگر 1 ثانیه گذشته باشد
Serial.println(time.gettime("d-m-Y، H:i:s، D")); // نمایش زمان
تاخیر (1); // 1 میلی ثانیه مکث کنید تا زمان چندین بار در 1 میلی ثانیه نمایش داده نشود
}
}
در مثال، زمان از 0 ثانیه، 0 دقیقه، ساعت 18، 24 آوریل 2017، دوشنبه شروع به شمارش می کند.
پست های درس:
امروز ما به جستجوی خود برای تراشه کامل ساعت واقعی (RTC) ادامه خواهیم داد. ما ساعت هایی را بر اساس . صفحه نمایش برای توسعه راحت تر خواهد بود - یک صفحه نمایش LCD که تمام اطلاعات را به جز تنظیمات یکباره نمایش می دهد. در این فرم، ساعت برای استفاده به عنوان یک گزینه دسکتاپ راحت است.
بنابراین، بیایید به خود تراشه DS3231 نگاه کنیم. DS3231 یک ساعت بیدرنگ با حرکت بسیار دقیق (سازندگان کلمه را انتخاب کردند) به لطف تشدید کننده کوارتز داخلی با جبران دما است. رابط انتقال داده I 2 C است. این ریزمدار یک ورودی برای ولتاژ باتری پشتیبان نیز دارد؛ هنگامی که برق اصلی قطع می شود، ریز مدار به طور خودکار از باتری پشتیبان به کار می رود، دقت کار از باتری پشتیبان نیست. متأثر، تحت تأثیر، دچار، مبتلا. خیلی خوشایند است، اینطور نیست؟ DS3231 از شمارش ثانیه ها، دقیقه ها، ساعت ها، روزهای ماه (تاریخ)، روزهای هفته، ماه ها و سال ها (شامل سال کبیسه برای ماه ها) پشتیبانی می کند. پشتیبانی از کار در قالب 12 و 24 ساعته. 2 ساعت زنگ دار با قابلیت پیکربندی و نظارت بر وضعیت آنها وجود دارد. تنظیم دقت جبران دما و همچنین دو خروجی - در 32 کیلوهرتز (خروجی 32.768 کیلوهرتز) و یک خروجی قابل برنامه ریزی از 1 هرتز تا 8.192 کیلوهرتز. همچنین یک پین تنظیم مجدد وجود دارد - RST. تراشه ساعت بلادرنگ در بسته بندی SO-16 موجود است. کیس کاملاً بزرگ است ، اما اگر در نظر بگیرید که قبلاً کوارتز در داخل وجود دارد و همچنین دما جبران می شود ، به نظر من همه چیز با ابعاد خوب است. DS3231 یک دوقلو به شکل DS3232 دارد که البته 2 پایه دیگر دارد. همه اینها بسیار یادآور محصولات NXP - تراشه های ساعت PCA2129 و PCF2129 است. تشدید کننده کوارتز داخلی با جبران دما مشابه، هر دو دوقلوهای یکسان فقط با تعداد متفاوت n.c هستند. پین ها و عملکردهای مشابه نسبت به DS3231 علاوه بر زمان سنجی.
RTC DS3231 به صورت ماژول هایی با سیم کشی لازم و همچنین کامل با تراشه EEPROM که اغلب مورد نیاز نیست برای فروش در دسترس است، فقط وزن را اضافه می کند:
بر روی برد ماژول علاوه بر قطعات لازم یک LED نیز تعبیه شده است که وظیفه آن نشان دادن اتصال برق به پایانه ها می باشد. آنها احتمالا آن را فقط برای زیبایی تحویل داده اند.
چیزی که هنگام کار با چنین تراشه ساعت بیدرنگ مهم است این است که چگونه داده ها را از آن استخراج کنید یا در آنجا بنویسید. ساعت دارای یک رابط I 2 C است. برای نوشتن داده ها (و این برای خواندن داده ها نیز ضروری است)، باید شرط شروع را بگذرانید (این دستورات با استفاده از سخت افزار یا نرم افزار I 2 C برای میکروکنترلر)، سپس آدرس تراشه را با رکورد بیت ارسال کنید، سپس آدرس رجیستری را که به آن دسترسی خواهیم داشت ارسال کنید و سپس یک بایت داده را به این ثبات منتقل کنید، اگر بایت دیگری از داده را منتقل کنید، این خواهد شد. به ثبت نام بعدی و غیره نوشته شده است. پس از اتمام، باید شرایط توقف را پشت سر بگذارید. نمایش گرافیکی موارد فوق در شکل:
ضبط داده برای راه اندازی اولیه و همچنین برای تنظیم زمان فعلی مورد نیاز است. در مرحله بعد، ما باید دائماً اطلاعات مربوط به زمان و تاریخ فعلی را دریافت کنیم. برای این کار لازم است از رجیسترهای ذخیره این اطلاعات خوانده شود. خواندن شامل دو روش است - تنظیم یک اشاره گر به ثبات مورد نظر و خواندن آن. برای تنظیم یک اشاره گر به رجیستر مورد نظر، باید شرط شروع را بگذرانید، سپس آدرس تراشه را با بیت نوشتن و یک بایت با آدرس ثبات ارسال کنید. بعد یا یک شرط توقف و سپس یک شرط شروع یا فقط یک راه اندازی مجدد است. اکنون روش دوم خواندن مستقیم از رجیسترها است. استارت ارسال می شود، سپس باید آدرس ریزمدار را با بیت خواندن ارسال کنید و سپس رجیسترها را به تعداد مورد نیاز بخوانید و پس از اتمام، شرط توقف را ارسال کنید. اگر اطلاعات رجیستر خوانده شده باشد، اشاره گر به طور خودکار به رجیستر بعدی بدون اعمال غیر ضروری از طرف میکروکنترلر (دستگاه اصلی) منتقل می شود. شکل هر آنچه در بالا در مورد خواندن ثبات ها با استفاده از رابط I 2 C گفته شد را نشان می دهد:
آدرس تراشه:
کد C به شکل زیر خواهد بود:
// توابع با ساعت ============================================ ================================================== ================== ======== // مقداردهی اولیه تنظیمات void RTC_init(void)(i2c_start_cond(); // شروع i2c i2c_send_byte(RTC_adr_write); // انتقال آدرس دستگاه، حالت ضبط i2c_send_byte(0x0E)؛ // انتقال آدرس حافظه i2c_send_byte(0b00100000)؛ // شروع تبدیل دما و خروجی با فرکانس 1 هرتز i2c_send_byte(0b00001000)؛ //kdztop32; // توقف i2c ) // دریافت زمان و تاریخ void RTC_read_time(void)( i2c_start_cond() ؛ // شروع i2c i2c_send_byte(RTC_adr_write)؛ // انتقال آدرس دستگاه، حالت نوشتن i2c_send_byte(0x00)؛ // انتقال آدرس حافظه i2c_stop_cond(); // توقف i2c i2c_start_cond(); // شروع i2c i2c_send_byte (RTC_adr_read)؛ / / آدرس دستگاه ارسال، حالت خواندن sec = bcd(i2c_get_byte(0))؛ // خواندن ثانیه، ACKi2 دقیقه = bc_d (0))؛ // دقیقه خواندن، ساعت ACK = bcd(i2c_get_byte(0))؛ / / ساعت خواندن، ACK wday = bcd(i2c_get_byte(0)); // خواندن روز هفته، روز ACK = bcd(i2c_get_byte(0)); // خواندن عدد، ماه ACK = bcd(i2c_get_byte(0)); // ماه خواندن، سال ACK = bcd(i2c_get_byte(1)); // سال خواندن، NACK i2c_stop_cond(); // stop i2c ) // تنظیم زمان void RTC_write_time(unsigned char hour1, unsigned char min1, unsigned char sec1)( i2c_start_cond(); // start i2c i2c_send_byte(RTC_adr_write); // انتقال حالت iby2te_recording 0x00)؛ // انتقال آدرس حافظه i2c_send_byte(bin(sec1))؛ // 0x00 ثانیه (آیا توصیه می شود ثانیه ها را نیز مشخص کنید؟) i2c_send_byte(bin(min1))؛ // 0x01 دقیقه i2c_send_byte(bin(hour1)) ؛ // 0x02 clock i2c_stop_cond(); // stop i2c ) // تاریخ void را تنظیم کنید RTC_write_date(روز نویسه بدون امضا، روز کاراکتر بدون امضا، ماه کاراکتر بدون امضا، سال کاراکتر بدون امضا)( i2c_start_cond(); //cr/ // انتقال آدرس های دستگاه، حالت ضبط i2c_send_byte(0x03)؛ // انتقال آدرس حافظه i2c_send_byte(bin(wday))؛ // 0x03 روز هفته (یکشنبه - 1، دوشنبه 2، سه شنبه 3، چهارشنبه 4، پنج شنبه 5، جمعه 6، شنبه 7 ) i2c_send_byte(bin(day)); // 0x04 روز ماه i2c_send_byte(bin(ماه)); // 0x05 ماه i2c_send_byte(bin(سال)); // 0x06 سال i2c_stop_cond(); // توقف i2c ) // خواندن دمای خالی RTC_read_temper(void)( i2c_start_cond(); // شروع i2c i2c_send_byte(RTC_adr_write)؛ // انتقال آدرس دستگاه، حالت نوشتن i2c_send_byte(0x11)؛ // انتقال آدرس بالای حافظه icon_2c ()؛ // توقف i2c i2c_start_cond()؛ // شروع i2c i2c_send_byte (RTC_adr_read)؛ // آدرس دستگاه انتقال، حالت خواندن t1 = i2c_get_byte(0)؛ // خواندن دمای MSB t2 = i2c_get_byte (1)؛ // خواندن دمای LSB i2c_stop_cond ()؛ // توقف i2c t2=(t2/128)؛ // جابجایی با 6 - دقت 0.25 (2 بیت) // جابجایی با 7 - دقت 0.5 (1 بیت) t2=t2*5؛ )
این تمام کد منبعی است که برای کار با ریزمدار استفاده می شود؛ تنظیم سرعت ساعت تحت تأثیر قرار نگرفت، زیرا ساعت در چند روز یک ثانیه از دست نداده بود.
بله - یک ویژگی عالی DS3231 این است که همان تراشه عملکرد یک دماسنج (در غیر این صورت چگونه جبران دما را انجام می دهد) و توانایی خواندن دمای فعلی را انجام می دهد. حداکثر وضوح دما 0.25 درجه سانتیگراد است. همچنین، دوره به روز رسانی دما بسیار طولانی است - حدود 1 دقیقه. بله، نیازی به آپدیت سریع آن نداریم.
نمودار کل ساختار ساعت به شکل زیر است:
میکروکنترلر توسط Atmega8 به دلیل در دسترس بودن گسترده و قیمت پایین آن انتخاب شده است. این میکروکنترلر هم در پکیج DIP-28 و هم در نسخه SMD در پکیج TQFP-32 قابل استفاده است. مقاومت R3 برای جلوگیری از راه اندازی مجدد خود به خود میکروکنترلر در صورت ایجاد نویز تصادفی روی پین PC6 ضروری است. مقاومت R3 توان اضافه را به این پین میکشد و به طور قابل اعتمادی یک پتانسیل در سراسر آن ایجاد میکند. برای نمایش از صفحه نمایش کریستال مایع (LCD) استفاده می شود. من از صفحه نمایش 2004A استفاده کردم - 4 خط 20 کاراکتری برای زیبایی بیشتر است، بنابراین می توانید از یک صفحه نمایش آشناتر استفاده کنید - 2 خط 16 کاراکتری. صفحه نمایش LCD با استفاده از یک سیستم چهار بیتی به میکروکنترلر متصل می شود. مقاومت متغیر R2 برای تنظیم کنتراست کاراکترهای نمایشگر ضروری است. با چرخاندن نوار لغزنده این مقاومت، واضح ترین قرائت روی صفحه را برای خود به دست می آوریم. نور پس زمینه صفحه نمایش LCD از طریق پین های "A" و "K" روی صفحه نمایش سازماندهی می شود. نور پس زمینه از طریق یک مقاومت محدود کننده جریان - R1 روشن می شود. هرچه این مقدار بیشتر باشد، نور پسزمینه نمایشگر کمتر میشود. با این حال، برای جلوگیری از آسیب به نور پس زمینه، نباید از این مقاومت غافل شد. دکمه های S1 - S4 تنظیمات ساعت را کنترل می کنند. LED نشان می دهد که آلارم خاموش شده است. LED را می توان با نوعی مدار صوتی جایگزین کرد. مقاومت های R5 - R8 کششی هستند و برای تشکیل پالس های مستطیلی در پایانه های تراشه ساعت ضروری هستند. این نیز برای عملکرد صحیح پروتکل I2C ضروری است. برای تغذیه مدار، از یک تراشه تثبیت کننده خطی L7805 استفاده می شود؛ می توان آن را با یک آنالوگ داخلی تثبیت کننده خطی پنج ولتی KR142EN5A جایگزین کرد، یا می توانید از تراشه تثبیت کننده ولتاژ دیگری مطابق با اتصال آن در مدار استفاده کنید (به عنوان مثال، LM317 یا تثبیت کننده های سوئیچینگ LM2576، LM2596، MC34063 و غیره). سپس، 5 ولت توسط یک ریزمدار دیگر - AMS1117 در نسخه ای که خروجی 3.3 ولت می دهد، تثبیت می شود. تراشه ساعت، طبق اطلاعات برگه، با ولتاژ 3.3 ولت تغذیه می شود. با این حال، حداکثر ولتاژ 5.5 ولت است. بنابراین، این استابلایزر به صلاحدید شما قابل استفاده است یا خیر. تثبیت کننده ولتاژ AMS1117 را می توان با نسخه ADJ (AMS1117ADJ) نیز جایگزین کرد - یعنی یک نسخه قابل تنظیم، با این انتخاب باید ولتاژ مورد نیاز را تنظیم کنید.با استفاده از دو مقاومت متصل به ریز مدار مطابق با دیتاشیت آن.
مدار با استفاده از یک برد توسعه برای میکروکنترلر ATmega8 مونتاژ و رفع اشکال شد:
هدف از دکمه ها:
برای کنترل فرکانس کریستالی می توان از پین 32 کیلوهرتز استفاده کرد. یک فرکانس متر یا اسیلوسکوپ را به این پین وصل می کنیم و فرکانس را کنترل می کنیم:
همانطور که از تصویر اسیلوگرام مشاهده می شود، فرکانس تقریباً با 32.768 کیلوهرتز مطابقت دارد (تقریباً به دلیل محدودیت در وضوح اندازه گیری فرکانس، و تعیین دقیق "با چشم" دشوار است).
نتیجه یک ساعت با مشخصات زیر بود:
بیایید خلاصه کنیم. تراشه ساعت در زمان واقعی DS3231 یک راه حل عالی است. دقت با برخی DS1307 یا بالاتر قابل مقایسه است ، اما PCA/PCF2129 هنوز هم می تواند با آن رقابت کند. در میان تراشه های ساعت واقعی که من بررسی کرده ام ، این نمونه در حال حاضر از نظر عملکرد و دقت در رده اول قرار دارد.
برای برنامه ریزی میکروکنترلر ATMEGA8 ، باید پیکربندی بیت های فیوز (تصویر گرفته شده در برنامه) را بدانید:
این مقاله با سیستم عامل میکروکنترلر Atmega8، طراحی مدار در برنامه، و همچنین ویدیویی از کارکرد ساعت همراه است (در همان ابتدا زنگ هشدار خاموش می شود - LED روشن می شود).
تعیین | تایپ کنید | فرقه | تعداد | توجه داشته باشید | خرید کنید | دفترچه یادداشت من |
---|---|---|---|---|---|---|
IC1 | MK AVR 8 بیتی | ATmega8 | 1 | به دفترچه یادداشت | ||
IC2 | ساعت واقعی (RTC) | DS3231 | 1 | به دفترچه یادداشت | ||
VR1 | تنظیم کننده خطی | L7805AB | 1 | به دفترچه یادداشت | ||
VR2 | تنظیم کننده خطی | AMS1117-3.3 | 1 | به دفترچه یادداشت | ||
VD1 | دیود یکسو کننده | 1N4148 | 1 | به دفترچه یادداشت | ||
C1 | 470 µF | 1 | به دفترچه یادداشت | |||
C2، C3، C5، C7 | خازن | 100 nF | 4 | به دفترچه یادداشت | ||
C4 | خازن الکترولیتی | 220 µF | 1 | به دفترچه یادداشت | ||
C6، C8 | خازن الکترولیتی | 10 µF | 2 | به دفترچه یادداشت | ||
R1 | مقاومت | 22 اهم | 1 | به دفترچه یادداشت | ||
R2 | مقاومت تریمر | 10 کیلو اهم | 1 | 3296W-1-103LF |
بسیاری از دستگاه ها نیاز به ثبت مداوم داده های زمان سنجی (تاریخ، زمان) دارند؛ این عملکرد توسط مدارهای الکترونیکی خاصی به نام ساعت های بلادرنگ انجام می شود. در حال حاضر، یک ساعت بیدرنگ به شکل یک ریزمدار مجزا اجرا می شود که باید یک تشدید کننده کوارتز و یک منبع تغذیه مستقل به آن اضافه کنید. در برخی از ریزگردها ، یک طنین انداز کوارتز در داخل ساخته شده است. یکی از این ساعت ها روی یک تراشه DS3231SN من برای خودم خریدمپروژه ها . در مثال من یک ساعت واقعی را به یک آنالوگ چینی وصل می کنمآردوینو UNO.
آنها یک ماژول کامل ZS-042 هستند که می توانند به دستگاه های مختلف و نه تنها به سکوی Arduino وصل شوند.
ماژول بر روی یک میکرو مدار ساخته شده است DS3231SN که در اصل یک ساعت واقعی است. برخلاف مدل قدیمی ساعت، به عنوان مثال در تراشه DS1307، این ساعت دارای یک تشدید کوارتز داخلی است که به دلیل آن ساعت دارای زمان دقیق است.
شما می توانید یک ساعت را در Arduino بدون DS3231SN پیاده سازی کنید ، اما در صورت از بین رفتن قدرت ، مقادیر تایمر تنظیم مجدد می شود.این ساعتهای مشابه دارای قدرت پشتیبان هستند ، بنابراین اگر قدرت از بین برود ، آنها همچنان به کار خود ادامه می دهند.
ساعت می تواند ساعت ، دقیقه ، ثانیه ، تاریخ ، ماهها ، سالها را بشمارد (سالهای جهش تا سال 2100 در نظر گرفته می شود). آنها در حالت 12 یا 24 ساعته کار می کنند، دارای دو ساعت زنگ دار هستند و همچنین دارای دماسنج داخلی با دامنه 40- تا 85+ درجه سانتیگراد هستند. برای اتصال به دستگاه های مختلف، ساعت از طریق متصل می شود.رابط I2C.
موقعیت مکانی و هدف پین در ماژول ZS-042:
S.Q.W.- خروجی سیگنال موج مربعی قابل برنامه ریزی
SCL– از طریق این پین ، داده ها از طریق رابط I2C با ساعت رد و بدل می شوند.
S.D.A.– داده های ساعت از طریق این پین منتقل می شود.
VCC– منبع تغذیه برای ساعت زمان واقعی ، 5 ولت مورد نیاز است. اگر ولتاژی به این پین داده نشود، ساعت به حالت خواب می رود.
GND- زمین.
برای اتصال بهآردوینو UNO، پین SDA ساعت را به پین A4 و پین SCL به A5 وصل می کنیم. پین های GND(-) و VCC(+5v) برای منبع تغذیه استفاده می شوند.
پین های SDA و SCL در بردهای مختلف آردوینو:
S.D.A. | SCL | |
سازمان ملل متحد | A4 | A5 |
مینی | A4 | A5 |
نانو | A4 | A5 |
Mega2560 | 20 | 21 |
لئوناردو | 2 | 3 |
بیایید یک باتری CR2032 را در ساعت نصب کنیم؛ چنین عناصری برای تغذیه بایوس در رایانه ها استفاده می شود.
هنگامی که کابل USB را به آردوینو وصل می کنید، LED روی ساعت باید روشن شود قدرت"(LED قرمز).
برای برنامه ریزی ساعت از طریق Arduino IDE، باید کتابخانه ها را نصب کنید.
دانلود کتابخانه زمان و DS1307RTC.
آخرین کتابخانه برای یک ساعت بر روی تراشه DS1307 نوشته شده است، اما پروتکل های تعامل آن با DS3231 سازگار است، بنابراین کتابخانه متناسب با ساعت ما خواهد بود.
کتابخانه ها باید دانلود شوند، بسته بندی شوند و در پوشه قرار گیرند.کتابخانه ها" هنگام راه اندازی Arduino IDE، آنها با مثال باید در " نمونه ها».
تاریخ و زمان را تنظیم کنید.
برای انجام این کار، این کد را در Arduino IDE کپی کنید.
برای تنظیمات صحیح باید داده ها را در خط تغییر دهید
setTime(13,35,0,22,12,2016);
در پرانتز، که با کاما از هم جدا شده اند، موارد صحیح را تنظیم کنید: ساعت، دقیقه، ثانیه، روز، ماه، سال. در مثال من، روی 13 ساعت و 35 دقیقه و 0 ثانیه، 22 دسامبر 2016 تنظیم شده است. طرح را در آردوینو آپلود کنید.
اکنون برای خواندن خوانش های ساعت می توانید از مثال استفاده کنید: فایل» - « نمونه ها» - « DS1307RTC» - « ReadTest" وپشت آن را در آردوینو آپلود کنید.
پنجره ای که باز می شود تاریخ و زمان فعلی را نمایش می دهد. اگر برق ماژول ساعت را از آردوینو خاموش کنید، آردوینو قادر به ردیابی مقادیر و پس از مدتی پیام " نخواهد بود. ... خطای خواندن!"(با رنگ قرمز مشخص شده است). پس از برقراری مجدد برق، تاریخ و زمان به شمارش معکوس ادامه خواهند داد. تاریخ و زمان بازنشانی نشد زیرا ساعت از باتری CR2032 تغذیه می کرد.