Toggle Nav

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

فهرست مطالب

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

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

نکته

ماژول ساعت DS3231 در دو شکل مختلف در بازار موجود است. تفاوتی بین این دو نوع در نحوه کارکرد و راه‌اندازی وجود ندارند و صرفا شکل ظاهری و ترتیب پایه‌ها متفاوت است.

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

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

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

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

نوع دیگر ماژول ساعت دقیق DS3231 دارای 5 پایه به شرح زیر است:

  • VCC: تغذیه ماژول – 5 ولت
  • SCL: ورودی سریال Serial Clock Input برای پروتکل I2C
  • SDA: ورودی داده Serial Data Input/Output برای پروتکل I2C
  • NC: به جایی متصل نمی­شود
  • GND: زمین

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

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

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

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

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

آردوینو IDE

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

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

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

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

از این قسمت به بعد، مراحل برای هر دو نوع ماژول یکسان است. کتابخانه DS3231 را از لینک زیر دانلود کنید. سپس به قسمت Include Library رفته و کتابخانه را نصب کنید.

توجه

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

گام سوم: کد

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

   /*  
modified on Nov 22, 2020
Modified by MehranMaleki from Arduino Examples
https://electropeak.com/learn/
*/

#include <Wire.h>
#include <ds3231.h>
 
struct ts t; 
 
void setup() {
  Serial.begin(9600);
  Wire.begin();
  DS3231_init(DS3231_CONTROL_INTCN);
  /*----------------------------------------------------------------------------
  In order to synchronise your clock module, insert timetable values below !
  ----------------------------------------------------------------------------*/
  t.hour=3; 
  t.min=0;
  t.sec=0;
  t.mday=14;
  t.mon=11;
  t.year=2020;
 
  DS3231_set(t); 
}

void loop() {
  DS3231_get(&t);
  Serial.print("Date : ");
  Serial.print(t.mday);
  Serial.print("/");
  Serial.print(t.mon);
  Serial.print("/");
  Serial.print(t.year);
  Serial.print("\t Hour : ");
  Serial.print(t.hour);
  Serial.print(":");
  Serial.print(t.min);
  Serial.print(".");
  Serial.println(t.sec);

  delay(1000);
}

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

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

از این مطلب خوشتان آمد؟

آخرین مطالب و جدیدترین آموزش ها را در ایمیل خود دریافت کنید

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

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *