s

مقدمه

در این مطلب قصد داریم تا ماژول ساعتds1307 (این ماژول دارای ارتباط I2C می باشد)را مورد بررسی قرار داده و چگونگی راه اندازی این ماژول را به همراه برد اردوینو بصورت کامل اموزش دهیم

کلید واژه ها
اردوینو,LED,دیجیتال,کلاک,ds1307,

وسایل مورد نیاز

#نوعتعدادخرید
1اردوینوArduino uno R3 1
2سیم جامپر2
3برد بورد1
4ماژول DS13071

پیش نیاز ها

برای برنامه نویسی این پروژه از نرم افزار اردوینو استفاده میکنیم.

  1. ابتدا نرم افزار اردوینو را دانلود و نصب کنیدلینک
نصب کتابخانه

توضیحات تکمیلی

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

ِDS1307

این ماژول یک ورودی باطری دارد و زمانی‌که تغذیه اصلی مدار قطع شود،همچنان نگهداری زمان را با دقت انجام می‌دهد.

ِDS1307

همچنین بر روی این ماژول قسمتی برای سنسور دمای DS18B20 نیز تعبیه شده است، که در صورت نیاز در پروژه ها می توان از ان استفاده کرد

pin

ماژول ساعت DS1307دارای ارتباط I2C ،دارای 12پایه میباشد.که به شرح زیر میباشد 5 پایه در یک سمت برای ارتباط با قطعه DS1307 :

  • DS : خروجی سنسور دمای DS18B20
  • SCL: پایه کلاک برای پروتکل I2C
  • SDA:پایه داده برای پروتکل I2C
  • VCC: تغذیه ماژول 5ولت
  • GND :زمین

7 پایه دیگر در سمت دیگر برای ارتباط با قطعه 24C32 EEPROM :

  • :SQموج مربعی خروجی
  • :SQموج مربعی خروجی
  • :SCLپایه کلاک برای پروتکل I2C
  • :SDA پایه داده برای پروتکل I2C
  • :VCC تغذیه ماژول – 5 ولت
  • :GND زمین
  • BAT: باتری پشتیبان

توجه

هر دو جفت پایه I2C و تغذیه و پایه DSدر دو طرف ماژول یکسان بوده و با اتصال یک سمت به برد اردوینو ،میتوان ارتباط را میان ماژول وبرد اردوینو برقرار کرد.

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

بعد از افزودن کتابخانه می بایست یک شی از ان کتابخانه بسازیم تا در برنامه بتوانیم از ان استفاده کنیم

() Setup

در اینجا پورت سریال را راه اندازی می کنیم

با استفاده از ()rtc.begin می توانیم ارتباط i2c را بسازیم و همچنین از اتصال دو طرفه اردوینو و ماژول ساعت مطلع بشویم

ارتباط دوطرفه شکل نگرفته بود میکرو ارتباط را قطع می کند و پیام بر روی سریال نمایش داده می شود زمانی که از این تابع استفاده کنیم،ابتدا اطلاعات بصورت کامل ارسال میشود سپس برنامه ادامه پیدا خواهد کرد.و تا زمانی که اطلاعات بصورت کامل ارسال نشده ،برنامه متوقف خواهد شد.

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

اگر ماژول ساعت را برای اولین بار راه اندازی کردید می بایست یک زمان اولیه برای ان تعریف کنید تا ماژول بتواند با این زمان شروع به کاکند ماتاریخ 2021/09/04ساعت 14:37:55را تنظیم کردیم

() loop

برنامه‌های آردوینو دو قسمت دارند که پیش تر گفته شد،مقدار دهی اولیه در void setup انجام میشود.اما برنامه اصلی که همیشه هم در حال تکرار است در حلقه لوپ یا همان void loopانجام میشود

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

این مرحله نهایی است که ما تاریخ زمان را در سه فرمت می توانیم بر روی سریال نمایش دهیم تاریخ زمان کامل، تاریخ به تنهایی ،زمان به تنهایی ، که تمام این زمان ها در یک متغیر خاص به نام DateTime() ریخته می شود

و در اخر نیز دستگاه به مدت 5 ثانیه استراحت می کند و دوباره تمام مراحل بالا تکرار می شود

شماتیک

rشماتیک برد

کد کامل

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 #include "RTClib.h" RTC_DS1307 rtc; void setup () { Serial.begin(9600); #ifndef ESP8266 while (!Serial); // wait for serial port to connect. Needed for native USB #endif if (! rtc.begin()) { Serial.println("Couldn't find RTC"); Serial.flush(); abort(); } if (! rtc.isrunning()) { Serial.println("RTC is NOT running, let's set the time!"); rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); } rtc.adjust(DateTime(2021, 9, 04, 14, 37, 55)); } void loop() { DateTime time = rtc.now(); //Full Timestamp Serial.println(String("DateTime::TIMESTAMP_FULL:\t") + time.timestamp(DateTime::TIMESTAMP_FULL)); //Date Only Serial.println(String("DateTime::TIMESTAMP_DATE:\t") + time.timestamp(DateTime::TIMESTAMP_DATE)); //Full Timestamp Serial.println(String("DateTime::TIMESTAMP_TIME:\t") + time.timestamp(DateTime::TIMESTAMP_TIME)); Serial.println("\n"); //Delay 5s delay(5000); }

اپلود کد

  1. در برنامه اردوینو یک برگه جدید باز می کنیم
  2. dFile -> arduino Preferences
  3. جهت اپلود کد می بایست پورت سریال دستگاه متصل را انتخاب کنیم (توجه شماره com با پورت کامپیوتر در ارتباط است و بسته به پورت دارای شماره های مختلفی می باشد )
  4. programFile -> arduino Preferences
  5. کد کامل را جایگزاری می کنیم و گزینه اپلود را می زنیم
  6. sFile -> arduino Preferences
  7. و در اخر پنجره سریال را باز کرده
  8. dFile -> arduino Preferences
  9. واطلاعات را در ترمینال به نمایش در می اید
  10. File -> arduino Preferences

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

کامنت ها