آردوینو پروژه های آردوینو

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

آموزش ماژول ساعت ds3231 آردوینو arduino
نوشته شده توسط علیرضا قربانی

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

آی سی DS2331آی سی تکمیل شده و پیشرفته ترDS1307 بوده که علاوه بر امکانات DS1307 از دقت بالاتر، در نظرگرفتن پین ریست و نیز قابل برنامه ریزی ۲زمان مختلف به منظور تنظیم آلارم است. ولتاژ کاری ماژول ۳٫۳ الی ۵٫۵ ولت بوده و از باتری بک آپ و جریان مصرفی بسیار پایین استفاده می کند. در واقع این ماژول ساعت زمان واقعی real time clock(RTC) بوده که از پروتکل سریالI2C پشتیبانی می کند. کارکرد این ماژول براساس کدهای binary coded decimalکه اصطلاحا کدBCD نامیده می شود، است.باتری بک آپ قرار گرفته بر روی این ماژول زمانیکه برق در دسترس نیست باعث جلوگیری از عقب افتادن زمان خواهد شد. منبع کلاک این آی سی از یک کریستال ساعت به فرکانس ۳۲٫۷۶۸KHZاستفاده می کند. این آی سی قابل کارکرد در دو حالت۲۴ساعته و۱۲ساعته AM/PM را دارد همچنین علاوه بر ساعت بصورت ثانیه، دقیقه، ساعت امکان ذخیره تاریخ بصورت روز، هفته، ماه، سال را نیز دارد. در ضمن اطلاعات نوشته شده بر روی این آی سی تا سال۲۱۰۰ برنامه ریزی شده است. از دیگر امکانات این ماژول می‌توان به اندازه‌گیری دما اشاره نمود. در ادامه آموزش با مرجع تخصصی آردوینو ، دیجی اسپارک همراه باشید.

 

ویژگی‌های ماژول ds3231
  • قابلیت تصحیح سال کبیسه
  • چیپ حافظه AT24C32 با ظرفیت ۳۲ کیلوبایت
  • ارتباط از طریق پروتکل I2C
  • ماکزیمم سرعت انتقال ۴۰۰KHz
  • دقت دماسنج ۳+/- درجه سانتی‌گراد

 

 

پروژه

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

 

سخت افزار مورد نیاز

ماژول ساعت دقیق Ds3231

ماژول نمایشگر OLED I2C

آردوینو MEGA256 ( از آردوینو‌های مدل دیگر نیز می‌توان استفاده نمود)

یک عدد تاچ سوئیچ

برد برد

 

اتصالات

آموزش ماژول ساعت ds3231

اتصالات ماژول ساعت ds3231 به آردوینو

 

 

 

در ابتدا  کتابخانه ماژول ساعت ds3231 را از لینک زیر دانلود نموده و سپس آن را به کتابخانه نرم افزار آردوینو متصل کنید.

دانلود کتابخانه ds3231 مختص آردوینو

در این آموزش از نمایشگر OLED و هچنین عملیات دیبانسینگ کلید استفاده شده است که برای آموزش آن‌ها می‌توانید به لینک‌های زیر مراجعه نمایید.

آموزش ماژول OLED در آردوینو

آموزش دیبانسینگ کلید در آردوینو

کد‌های زیر را بر روی آردوینو آپلود کنید:

 

 

 

 

توضیحات توابع به کار رفته در کد‌های فوق

در ابندا توجه داشته باشید که حتما کتابخانه Wire.h را در برنامه فراخوانی کرده باشید در غیر اینصورت برنامه نتیجه درستی را ارائه نمی‌دهد.

 

RTCDateTime dt;

برای اینکه بتوانیم به مقادیر داخل ساعت دسترسی داشته باشیم باید از استراکت موجود در داخل کتابخانه ساعت یک آبجمت بسازیم.

 

clock.begin ();

توسط تابع فوق ماژول ساعت  ds3231 فعال می‌شود.

clock.setDateTime (__DATE__, __TIME__);

توسط تابع clock.setDateTime  می‌توان ساعت و تاریخ ماژولمان را تنظیم کنیم. که ما با  دادن دو آرگمان __DATE__ و __TIME__  برنامه را جوری تنظیم می‌کنیم که هنگام آپلود شدن کد بر روی آردوینو به طور خودکار ساعت ماژول با ساعت کامپیوتر تنظیم می‌شود و نیازی به تنظیم دستی آن نمی‌باشد.در صورتی که سیستم شما بر روی سال شمسی تنظیم شده باشد ، ماژول نیز ساعت شمسی را در یافت می‌کند.

clock.getDateTime ();

توسط این تابع زمان و تاریخ را از ماژول دریافت می‌کنیم ، سپس باید آن را درون یک استراکت از جنس RTCDateTime بریزیم پس همانند کد زیر عمل می‌کنیم:

 

سپس برای دسترسی به تک تک مقادیر ساعت ، دقیقه و ثانیه باید از دستورات زیر استفاده کنیم:

 

clock.readTemperature ()

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

 


در قسمت‌های بعدی آموزش ماژول ساعت ds3231 به تنظیم alarm می‌پردازیم.

 

در ادامه به ویدیو این پروژه توجه کنید.

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

علیرضا قربانی

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

تبادل نظر و رفع عیب با ثبت دیدگاه

۲۲ دیدگاه

  • سلام
    -من به جای ماژول DS3231 مدل پایین تر DS1307 دارم آیا باید تغییری توی کد ها انجام بدم؟ آیا کتابخانه ۱۳۰۷ با ۳۲۳۱ تفاوت داره؟

    -آیا امکان استفاده از oled با پروتکل SPI به همراه این ماژول هست؟ تغییری تو کدها باید داده بشه؟

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

  • بسمه تعالی
    سلام
    آقا یه سوال چر ا وقتی با وجود اینکه این ماژول باتری ۳ ولتی داره وقتی برنامه رو روش می ریزیم زمانی که بعد از قطع و وصل مجدد برد و ماژول به رایانه نشون می ده عقب می افته . پس این باتری اینجا نقشش چیه ؟

    • سلام مجدد
      برای اتصال ماژول ساعت باید از رابط I2C اردوینو استفاده کنید. تغذیه که مشخص است. دو پایه دیگر را به پین I2C متصل کنید.

    • با سلام
      ضمن تشکر از توجه شما، برای این منظور باید از کتابخانه‌های مربوطه استفاده کنید و در کدهای برنامه آدرس دهی به پین‌های دیگر را انجام دهید. کلا کدها تغییرات اساسی می‌کنند.

  • سلام برای من این ارور رو میدهد
    Arduino: 1.8.1 (Windows 10), Board: “Arduino/Genuino Uno”

    WARNING: Category ‘Real-time clock’ in library DS3231 is not valid. Setting to ‘Uncategorized’
    sketch_sep01c:1: error: #include expects “FILENAME” or

    #include <Wire.h>

    ^

    sketch_sep01c:2: error: #include expects “FILENAME” or

    #include <DS3231.h>

    ^

    sketch_sep01c:3: error: #include expects “FILENAME” or

    #include <U8glib.h>

    ^

    sketch_sep01c:4: error: #include expects “FILENAME” or

    #include <Bounce2.h>

    ^

    exit status 1
    #include expects “FILENAME” or

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.
    ممنون میشم بگین چی کار کنم

    • با سلام
      ضمن تشکر از توجه شما
      این ارورها مربوط به عدم نصب کتابخانه‌ها است. کتابخانه‌های Wire.h ، DS3231.h ، U8glib.h و Bounce2.h در سیستم شما نصب نیستند. این‌ها را نصب کنید و مجددا اقدام به کامپایل کدها کنید.

  • درود
    من ماژول ساعت دقیق DS1307 و سون سگمنت TM1637 دارم.
    کل اینترنت رو برای راه اندازی ساعت با این دو ماژول گشتم ولی چیزی که بدردبخور باشه و کار کنه پیدا نکردم..
    لطفاً بنده رو راهنمائی بفرمائید که چه کنم و چه کدی مناسب راه اندازی با این دو ماژول هست..
    پیشاپیش سپاسم

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

    • با سلام
      ضمن تشکر از توجه شما، این آموزش مربوط به چند سال پیش است. در تلاش خواهیم بود که رفع کنیم. ولی شما با استفاده از تحلیل کدها میتوانید پین‌ها را اتصال دهید.

  • سلام وقت بخیر من از برنامه یه کپی گرفتم اما یه اروری هنگام verify میده . میشه راهنمایی کنید.
    Arduino: 1.8.2 (Windows 7), Board: “Arduino/Genuino Uno”

    exit status 1
    no matching function for call to ‘DS3231::DS3231()’

    کتابخانه ds3231 و بقیه کتابخانه های لازمو از سایت خودتون دانلود کردم

    • //ds3231ایجاد یک آبجکت از کلاس
      DS3231 clock;

      //ds3231موجود در کتابخانه Structایجاد یک آبجکت از
      RTCDateTime dt;
      از این دو قسمت ارور میده که no matching function for call to ‘DS3231::DS3231()’

    • با سلام
      ضمن تشکر از توجه شما، این ارور ربطی به کتابخانه ندارد. لطفا تصویر ارور را ارسال کنید، همچنین متن ارور را به صورت کامل کپی و ارسال کنید.