آموزش راه اندازی ماژول ساعت دقیق PCF8563 با آردوینو

ویژگی های ماژول ساعت دقیق PCF8563

ماژول ساعت دقیق PCF8563 دارای دقت بالا و مصرف توان پایین می‌­باشد. به کمک این ماژول می‌­توان اطلاعات ثانیه، دقیقه، ساعت، روز، روز هفته، تاریخ، ماه، سال و قرن را به دقت نگهداری کرد. در این ماژول تاریخ بر اساس 29، 30 یا 31 بودن ماه و همچنین کبیسه بودن یا نبودن سال، تنظیم می‌­شود. همچنین این ماژول را می‌­توان در دو فرمت 12ساعته و 24ساعته استفاده کرد.

معرفی پایه ها (Pinout) ماژول ساعت دقیق PCF8563

ماژول ساعت دقیق PCF8563 دارای 6 پایه به شرح زیر است:

  • INT: خروجی وقفه
  • COT: خروجی کلاک
  • SCL: پایه برای پروتکل I2C
  • SDA: پایه دیتا برای پروتکل I2C
  • GND: زمین
  • VCC: تغذیه ماژول – 5 ولت

پین اوت (Pinout) این ماژول را می‌توانید در تصویر زیر مشاهده کنید.

لوازمی که به آن احتیاج دارید

قطعات مورد نیاز

آردوینو UNO R3 × 1
ماژول ساعت دقیق PCF8563 × 1
سیم جامپر × 1

نرم افزارهای مورد نیاز

آردوینو IDE

راه اندازی ماژول ساعت دقیق PCF8563

گام اول: سیم بندی

مطابق مدار زیر، ماژول را به آردوینو وصل کنید.

گام دوم: نصب کتابخانه

به Library manager رفته و کتابخانه Rtc_Pcf8563 را نصب کنید.

اگر برای نصب کتابخانه نیاز به راهنمایی بیشتر دارید، به اینجا مراجعه کنید.

توجه

گام سوم: کد

کد زیر را روی برد آردوینو آپلود کنید. پس از آپلود کد، پنجره ی Serial Monitor را باز کنید.

 /*  
modified on Nov 16, 2020
Modified by MehranMaleki from Arduino Examples
Home<iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" style="position: absolute; clip: rect(1px, 1px, 1px, 1px);" title="&#8220;Home&#8221; &#8212; Electropeak" src="https://electropeak.com/learn/embed/#?secret=7QRFtLZmGw" data-secret="7QRFtLZmGw" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
*/

#include <Wire.h>
#include <Rtc_Pcf8563.h>

//init the real-time clock
Rtc_Pcf8563 rtc;
 
 
void setup()
{
  Serial.begin(9600);
  Wire.begin();
  
  //clear out all the registers
  rtc.initClock();
  //set a time to start with.
  //day, weekday, month, century, year
  rtc.setDate(16, 3, 11, 20, 20);
  //hr, min, sec
  rtc.setTime(11, 0, 0);
}
                                                                                
void loop()
{

  Serial.print("Time:");
  //Serial.print(rtc.formatTime(RTCC_TIME_HM));
  Serial.print(rtc.formatTime());
  

  Serial.print("\t Date:");
  //Serial.println(rtc.formatDate(RTCC_DATE_ASIA));
  Serial.println(rtc.formatDate());

  
  delay(1000);
    
}
  
Arduino

در کد بالا، در ابتدا روز، روز هفته، ماه، قرن و سال و پس از آن ساعت، دقیقه و ثانیه به عنوان نقطه شروع به ماژول داده می­‌شود. سپس ماژول شروع به کار کرده و هر ثانیه آپدیت می­‌شود. در ادامه در هر ثانیه اطلاعات را از ماژول گرفته شده و در پنجره­ Serial Monitor نمایش داده می‌­شود.

خروجی کد به شکل زیر است.

آموزش های مشابه

Comments (4)

  • علیرضا Reply

    سلام.وقت بخیر. ممنون از سایت خوبتون
    میخواستم ببینم من اگه بخوام صدم ثانیه رو هم نمایش بده باید توی کد چه تغییراتی بدم؟

    ژانویه 4, 2023 at 11:03 ب.ظ
    • علی عبدالملکی Reply

      سلام وقت شما بخیر
      ممنون از توجهتون
      ببینید آی سی DS3231 نمیتونه زمان کمتر از 1 ثانیه رو اندازه گیری کنه، شما برای این کار میتونید از پایه خروجی ماژول که موج مربعی با فرکانس های مختلف تولید میکنه و capture کردن اون توسط وقفه آردینواستفاده کنی و زمان 10 میلی ثانیه رو بسازی
      حالا برای این کار شما باید از طریق برد ، فرکانس موج مربعی خروجی ماژول رو ست کنی که طبق دیتا شیت فرکانس های مختلفی داره از 1 هرتز تا 1کیلوهرتز ، که شما اگر روی 1 کیلوهرتز ست کنی میتونی زمان با رزولوشن 1 میلی ثانیه تنظیم کنی

      فوریه 27, 2023 at 4:44 ب.ظ
  • علی مهرابی Reply

    سلام من میخوام ساعت رو ذخیره کنم زمانی که برق دستگاه قطع میشه .یعنی با باطری کار کنه .
    که این کار رو انجام نمیده و برق مدار رو که راه میندازم میبینم ساعت به حالت قبلش بر میگرده .دقیقا باید چه کار کنم؟

    ژوئن 18, 2023 at 1:43 ب.ظ
    • محمد دمیرچی Reply

      باسلام
      ولتاژ باتری که بر روی ماژول قرار داده اید را اندازه گیری کنید.
      امکان دارد باتری شارژ نداشته باشد.

      ژوئن 19, 2023 at 10:23 ق.ظ

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.