logo-site-sefid
Search
Close this search box.
Untitled-3

راه اندازی ماژول ds3231 با آردوینو

آموزش آردوینو و ساعت زمان واقعی DS3231

در این آموزش آردینو راه اندازی ماژول ds3231 با آردوینو را یاد خواهیم گرفت. شما می‌توانید برنامه آموزشی نوشته شده در زیر را بخوانید.

مرور کلی راه اندازی ماژول DS3231 با آردوینو

اولین سوالی که در اینجا مطرح می‌شود این است که چرا ما در واقع به یک RTC جداگانه برای پروژه آردینو نیاز داریم در حالی که خود آردینو یک زمان سنج ساخته‌ شده است. خوب نکته این است که ماژول RTC بر روی یک باتری اجرا می‌شود و می‌تواند مسیر زمان را حفظ کند حتی اگر ما میکروکنترلر را دوباره برنامه‌ریزی کنیم یا ولتاژ اصلی را قطع کنیم. بهدا در پروژه ها ی آموزش رباتیک ما از این ماژول و انواع دیگر ماژولها استفاده خواهیم کرد.

راه اندازی ماژول ds3231 با آردوینو
راه اندازی ماژول ds3231 با آردوینو

ساعت زمان واقعی DS3231

DS3231 یک ساعت زمان واقعی کم‌هزینه و بسیار دقیق است که می‌تواند ساعت‌ها، دقیقه و ثانیه و همچنین اطلاعات روز، ماه و سال را حفظ کند. همچنین به طور خودکار برای جهش – سالها و ماه‌های با کم‌تر از ۳۱ روز – جبران کننده دارد.

02-ساعت-زمان-واقعی

ماژول می‌تواند بر روی 3/3 یا ۵ ولت کار کند که آن را برای بسیاری از پلتفرم‌های توسعه یا میکروکنترلرها مناسب می‌سازد. ورودی باتری ۳ ولت است و یک باتری معمولی 3 ولت CR2032 می‌تواند به ماژول توان بدهد و اطلاعات را برای بیش از یک سال نگه دارد.
این ماژول از پروتکل ارتباطی I2C استفاده می‌کند که اتصال به برد آردینو را بسیار آسان می‌کند.
این تصویر طرح های مدار است:

03-ساعت-زمان-واقعی

بنابراین تمام چیزی که ما نیاز داریم ۴ سیم، پین VCC و GND برای تقویت ماژول، و دو پین ارتباطی SDA،  I2C و SCL است.

آموزش آردوینو و ساعت زمان واقعی DS3231

برنامه نویسی

زمانی که ما ماژول را به هم متصل می‌کنیم، باید برد آردینو را برنامه نویسی کنیم تا با ساعت زمان واقعی کار کند. با این حال، زمانی که بحث برنامه نویسی یک ارتباط بین آردوینو و یک ماژول I2C مطرح می‌شود، کد آن آنقدر کم و آسان نیست. خوشبختانه، در حال حاضر چندین کتابخانه برای DS3231 RTC وجود دارد که می توان آن‌ها را در اینترنت یافت.
بنابراین وقتی کتابخانه را دانلود و نصب می‌کنیم می‌توانیم از اولین نمونه دمو آن برای فعال کردن ساعت ماژول RTC استفاده کنیم. در بخش تنظیم کد نمونه دمو، می‌توانیم متوجه شویم که سه خط وجود دارد که نباید آنها را به منظور تنظیم اولیه روز هفته، زمان و داده‌، توضیح دهیم.

// Code from the Demo Example of the DS3231 Library
void setup()
{
  // Setup Serial connection
  Serial.begin(115200);
  // Uncomment the next line if you are using an Arduino Leonardo
  //while (!Serial) {}
  
  // Initialize the rtc object
  rtc.begin();
  
  // The following lines can be uncommented to set the date and time
  //rtc.setDOW(WEDNESDAY);     // Set Day-of-Week to SUNDAY
  //rtc.setTime(12, 0, 0);     // Set the time to 12:00:00 (24hr format)
  //rtc.setDate(1, 1, 2014);   // Set the date to January 1st, 2014
}

خط اول برای تنظیم روز هفته، خط دوم برای تنظیم زمان در ساعت، دقیقه و ثانیه، و خط سوم برای تنظیم تاریخ در روزها، ماه‌ها و سال‌ها است.
هنگامی که ما این کد را آپلود می‌کنیم، نیاز به توضیح سه خط و دوباره آپلود کردن کد داریم.

// Code from the Demo Example of the DS3231 Library
void loop()
{
  // Send Day-of-Week
  Serial.print(rtc.getDOWStr());
  Serial.print(" ");
  
  // Send date
  Serial.print(rtc.getDateStr());
  Serial.print(" -- ");
  // Send time
  Serial.println(rtc.getTimeStr());
  
  // Wait one second before repeating
  delay (1000);
}

اگر نگاهی به بخش حلقه کد بیندازیم، می‌توانیم ببینیم که اکنون با استفاده از سه تابع سفارشی، اطلاعات RTC را می‌گیریم و آن‌ها را در نمایشگر سریال چاپ می‌کنیم. در اینجا به نحوه ظاهر شدن اطلاعات در نمایشگر سریال می‌پردازیم.

04-برنامه-نویسی

حالا حتی اگر ما توان آردوینو را قطع کنیم و دوباره آن را وصل کنیم و نمایشگر سریال را دوباره اجرا کنیم می‌توانیم متوجه شویم که زمان بدون تنظیم مجدد پیش می‌رود.
بنابراین حالا ما ساعت زمان واقعی خود را داریم و می‌توانیم در هر پروژه آردینو از آن استفاده کنیم. به عنوان مثال، من یک LCD را به آردینو متصل کردم و زمان و تاریخ آن را چاپ کردم.

05-برنامه-نویسی

این کد منبع این مثال است.

/*
* Arduino DS3231 Real Time Clock Module Tutorial
*
* Crated by Dejan Nedelkovski,
* www.HowToMechatronics.com
*
* DS3231 Library made by Henning Karlsen which can be found and downloaded from his website, www.rinkydinkelectronics.com.
*
*/
#include <DS3231.h>
#include <LiquidCrystal.h> // includes the LiquidCrystal Library 
DS3231  rtc(SDA, SCL);
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LC object. Parameters: (rs, enable, d4, d5, d6, d7) 
void setup() { 
 rtc.begin(); // Initialize the rtc object
 lcd.begin(16,2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display } 
}
void loop() { 
 lcd.setCursor(0,0);
 lcd.print("Time:  ");
 lcd.print(rtc.getTimeStr());
 
 lcd.setCursor(0,1);
 lcd.print("Date: ");
 lcd.print(rtc.getDateStr());
 
 delay(1000); 
}

این تمام چیزی است که برای این آموزش آردوینو وجود دارد، لطفاً در بخش نظرات هر سوالی را بپرسید.

 

 

رضا قنبری
متخصص آموزش رباتیک

رضا قنبری هستم متخصص آموزش رباتیک با بیش از 10 سال سابقه فعالیت در ایران

این مطلب را به اشتراک بگذارید

دسته بندی نشده

ماژول سنسور مجاورت نوری

ماژول سنسور مجاورت نوری قبل از خواندن این مقاله بهتر است در نظر داشته باشید مقالاتی که با عنوان ماژول در سایت قرار گرفته اند

ماژول کاهنده

ماژول كاهنده قبل از خواندن مقاله ماژول كاهنده بهتر است در نظر داشته باشید مقالاتی که با عنوان ماژول در سایت قرار گرفته اند از

دیدگاه‌ خود را بنویسید

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