با عرض سلام مجدد خدمت دوستان. امروز میخوایم قسمت دوم آموزش ساخت ساعت با استفاده از آردوینو رو براتون بزاریم. با ما همراه باشید.
برای مشاهده آموزش کامل ساخت این ساعت، به سایت کافه ربات، مراجعه کنید.
سیم کشی ساعت زمان واقعی DS1307
برای ساخت ساعت زمان واقعی با استفاده از DS1307، سیم کشی اجزا مطابق شکل زیر است.
آردوینو 5V را به پین 7-segment +/VIN power و پینDS1307 5V وصل کنید.
اگر از صفحه نمایش 7 بخشی بزرگ 1.2 اینچی استفاده می کنید، آردوینو 5V را به پین 7-segment IO وصل کنید. صفحه نمایش های کوچک تر این پین را ندارند.
پین GND آردوینو را به پین GND سون سگمنت و پین GND DS1307 وصل کنید.
پین A5 یا SCL آردوینو را به پین C/clock سون سگمنت و پین DS1307 SCL وصل کنید.
پین A4 یا SDA آردوینو را به پین D/data سون سگمنت و پین DS1307 SDA وصل کنید.
هنگامی که همه چیز را در سر جایش وصل کردید، چیزی شبیه به تصویر زیر می بینید:
حالا برای اطلاع از چگونگی نصب نرم افزار و راه اندازی اسکچ ساعت به قسمت نرم افزار بروید.
گام سوم: نرم افزار
برای راه اندازی ساعت از آخرین نسخه IDE آردوینواستفاده کنید.
با استفاده از آموزش های مقدماتی، به راحتی می توانید با روش کار IDE آردوینو آشنا شوید، یک اسکچ (sketch) لود کنید و یا یک کد را آپلود نمایید.
پس از آن باید از نصب کتابخانه هایی که مورد استفاده اسکچ قرار میگیرند، اطمینان حاصل کنید. در آخرین نسخه ی IDE آردوینو، میتوانید برای نصب کتابخانه ها و همچنین دسترسی به راهنمای نصب آنها، به راحتی از مدیریت کتابخانه (library manager) استفاده کنید. باید کتابخانه های زیر را نصب کنید:- کتابخانه LED Backpack
- کتابخانه GFX
- کتابخانه GPS (اگر از GPS استفاده می کنید)
- کتابخانه RTClib (اگر از RTClib استفاده می کنید)
برای نصب کتابخانه های فوق به سایت کافه ربات مراجعه کنید.
این کتابخانه ها را در قسمت مدیریت کتابخانه جست و جو کنید و سپس نصب نمایید:
بعد از نصب کتابخانه ها، آن ها را به روز رسانی کنید. مخصوصا باید کتابخانه LED backpack را برای تنظیم ساعت به روز کنید.
با توجه به اینکه از GPS یا DS1307 استفاده می کنید، بخش مناسب را دنبال کنید.
اسکچ ساعت با استفاده از GPS
برای بارگذاری اسکچ ساعت GPS اطمینان حاصل کنید که سخت افزار به درستی ساخته شده، کتابخانه های بالا نصب شده اند و آردوینو با استفاده از کابل USB به کامپیوتر متصل شده است. پس از آن به عنوان مثال مسیر زیر را انتخاب کنید:
File -> Examples -> Adafruit LED Backpack Library -> clock_sevenseg_gps
صفحه ای مانند زیر باید درIDE لود شود:
ممکن است بخواهید قبل از آپلود کردن آردوینو، دو چیز را در اسکچ تغییر دهید. اول، انتخاب فرمت 24 ساعته یا 12 ساعته برای ساعتتان است. که به صورت پیش فرض توسط خط زیر فرمت 12 ساعته تعریف شده است:// Set to false to display time in 12 hour format, or true to use 24 hour:
#define TIME_24_HOUR false
اگر میخواهید از فرمت 24 ساعته استفاده کنید، کد را طبق خط زیر نغییر دهید:// Set to false to display time in 12 hour format, or true to use 24 hour:
#define TIME_24_HOUR true
دومین چیزی که ممکن است بخواهید تغییر دهید، آفست زمان محلی است. زمان ماهواره های GPS مطابق با GMT یا زمان جهانی UTC است و زمان محلی شما احتمالا با این مقادیر متفاوت است. برای اطلاع از اختلاف زمان محلی تان و GMT/ UTC میتوانید از سایت worldtimeserver.com یا این صفحه ویکیپدیا استفاده کنید.
اسکچ به صورت پیش فرض از زمان UTC-7 (منطقه زمانی آمریکا در اقیانوس آرام) استفاده می کند، شما باید در کد زیر مقدار زمان محلی خود را وارد کنید:
// Offset the hours from UTC (universal time) to your local time by changing
// this value. The GPS time will be in UTC so lookup the offset for your
// local time from a site like:
//
https://en.wikipedia.org/wiki/List_of_UTC_time_offsets
// This value, -7, will set the time to UTC-7 or Pacific Standard Time during
// daylight savings time.
#define HOUR_OFFSET -7
و برای ایران به آفست جدید به مقدار UTC +3:30 تغییر دهید.// Offset the hours from UTC (universal time) to your local time by changing
// this value. The GPS time will be in UTC so lookup the offset for your
// local time from a site like:
//
https://en.wikipedia.org/wiki/List_of_UTC_time_offsets
// This value, -7, will set the time to UTC-7 or Pacific Standard Time during
// daylight savings time.
#define HOUR_OFFSET -3:30
با ذخیره کردن این اطلاعات، آردوینو برای آپلود آماده است. در منو آدوینو Uno از قسمت Tools -> Board را انتخاب کنید و پورت سریال را از قسمت Tools -> Port انتخاب کنید . سپس در قسمت پایین روی upload کلیک کنید و یا از قسمت Sketch -> Upload را انتخاب کنید تا کد به آردوینو ارسال شود. هم اکنون باید ساعت شروع به کار کند.
زمانی که اسکچ ساعت لود شد، باید کمی صبر کنید تا گیرنده GPS روی ماهواره قفل شود و زمان دقیق نمایش داده شود. زمانیکه ارتباط GPS با ماهواره برقرار شد، LED شروع به چشمک زدن می کند (یک بار در ثانیه چشمک می زند) . هنگامیکه GPS روی ماهواره ثابت شد، LED با سرعت کمتری (هر 15 ثانیه) چشمک می زند.
مطمئن شوید که شیلد GPS و یا break out دید کافی و مناسب به سمت آسمان دارند. بسته به مکانی که قرار دارید ممکن است بین 45 ثانیه تا نیم ساعت طول بکشد تا GPS روی ماهواره ثابت شود.
اگر در حال حاضر این کار را انجام ندادید، می توانید با استفاده از یک باتری زمان ساعت را ذخیره کنید. این باعث می شود که حتی وقتی GPS روی ماهواره ای ثابت نیست، ساعت شما عدد درستی را نشان دهد.
تبریک! شما توانستید یک ساعت GPS بسازید.
اسکچ ساعت با استفاده از DS1307
برای بارگذاری اسکچ ساعت با استفاده از DS1307 اطمینان حاصل کنید که سخت افزار به درستی ساخته شده، کتابخانه های بالا نصب شده اند و آردوینو با استفاده از کابل USB به کامپیوتر متصل شده است. پس از آن به عنوان مثال مسیر زیر را انتخاب کنید:
File -> Examples -> Adafruit LED Backpack Library -> clock_sevenseg_ds1307
صفحه ای مانند زیر باید در IDE لود شود:
در کد زیر فرمت 12 ساعته استفاده شده است. ممکن است بخواهید فرمت پیش فرض ساعت را تغییر دهید و فرمت 24 ساعته را استفاده کنید.// Set to false to display time in 12 hour format, or true to use 24 hour:
#define TIME_24_HOUR false
اگر میخواهید از فرمت 24 ساعته استفاده کنید، کد را طبق خط زیر نغییر دهید:// Set to false to display time in 12 hour format, or true to use 24 hour:
#define TIME_24_HOUR true
چیز دیگری که نیاز به تغییر داشته باشد وجود ندارد.
با ذخیره کردن این اصلاحات، آردوینو برای آپلود شدن آماده است. در منو آدوینو Uno از قسمت Tools -> Board را انتخاب کنید و پورت سریال را از قسمت Tools -> Port را انتخاب کنید . سپس در قسمت پایین روی upload کلیک کنید و یا از قسمت Sketch -> Upload را انتخاب کنید تا کد به آردوینو ارسال شود. هم اکنون باید ساعت شروع به کار کند.
اگر اولین باری است که از DS1307 استفاده می کنید، ساعت به صورت خودکار با زمانی که وارد و آپلود شده بود، تنظیم می شود. البته با استفاده از کد زیر در تنظیمات اسکچ شما به صورت دستی هم می توانید زمان را تنظیم کنید:// Set the DS1307 clock if it hasn't been set before.
bool setClockTime = !rtc.isrunning();
// Alternatively you can force the clock to be set again by
// uncommenting this line:
//setClockTime = true;
if (setClockTime) {
Serial.println("Setting DS1307 time!");
// This line sets the DS1307 time to the exact date and time the
// sketch was compiled:
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
// Alternatively you can set the RTC with an explicit date & time,
// for example to set January 21, 2014 at 3am you would uncomment:
//rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}
دستورات ذکر شده، نحوه ی تنظیم دستی زمان و تاریخ است. برای مثال برای تنظیم زمان، برای روز 21 ژانویه 2014، باید کدی شبیه به این نوشته شود:// Set the DS1307 clock if it hasn't been set before.
bool setClockTime = !rtc.isrunning();
// Alternatively you can force the clock to be set again by
// uncommenting this line:
setClockTime = true;
if (setClockTime) {
Serial.println("Setting DS1307 time!");
// This line sets the DS1307 time to the exact date and time the
// sketch was compiled:
//rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
// Alternatively you can set the RTC with an explicit date & time,
// for example to set January 21, 2014 at 3am you would uncomment:
rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}
با آپلود کردن مجدد اسکچ زمان تغییر می کند.
تبریک! شما موفق شدید با استفاده از DS1307 یک ساعت آردوینو بسازید. با آرزوی موفقیت
ساخت ساعت با استفاده از آردوینو