در جلسه قبل با نحوه دانلود کتابخانه و افزودن آن به نرم افزار Arduino آشنا شدیم و یکی از مثال های آن کتابخانه را اجرا کردیم در این جلسه قصد داریم تا برنامه آنرا بصورت خط به خط توضیح دهیم .
در ابتدا کتابخانه مربوط به برقراری ارتباط و راه اندازی DS1307 را به برنامه اضافه می کنیم
اضافه کردن این کتابخانه به شما اجازه می دهد تا بتوانید از طریق I2C ارتباط برقرار کنید.
در دو خط بالا برای ساده تر شدن استفاده از دستور Serial.print می توان از دو دستور PRINTS , PRINT استفاده نمود به عبارت دیگری دو نام اول نام مستعار می باشند که مختصرتر شده اند.
باودریت برنامه تنظیم و عبارت مورد نظر در سریال مانیتور چاپ می شود.
تابع usage نیز اجرا می شود که شامل چند خط راهنما برای نحوه برقراری ارتباط با DS1307 می باشد.
در تابع usage خطوط راهنما بصورت پشت سر هم در سریال مانتیور نمایش داده می شوند مثل برای خط اول روش اجرای آن به این صورت است که ابتدا به خط بعد در سریال مانیتور می رود و پس از آن عبارت "?" (یک علامت سوال) را چاپ می کند و به اندازه یک Tab جلو می رود و عبارت "help – this message" را چاپ می کند که به این معنیست که اگر شما در قسمت Send سریال مانیتور کاراکتر '?' را تایپ و پس از آن گزینه Send را بزنید توضیحات را راهنمایی ها برای شما نمایش داده می شود یا در خط دوم اگر عبارت "tr" را تایپ و ارسال نمایید زمان کنونی آی سی DS1307 خوانده و در سریال مانتیور نمایش داده می شود.
این تابع وظیفه تبدیل عدد وارد شده که از نوع عددی می باشد را به روز هفته که از نوع رشته می باشد دارد مثلا اگر عدد یک وارد این تابع شود این تابع اندیس شماره یک آرایه را که عبارت "Sun" می باشد برمی گرداند.
این تابع نیز ورودی آن یک متغیر عددیست که معادل اندیس آرایه را باز می گرداند. که نشان دهنده وضعیت پین SQW و مد 12 یا 24 ساعتی آی سی می باشد.
این تابع نیز وظیفه ای مشابه دارد و معادل اندیس رشته مورد نظر را باز می گرداند که شامل وضعیت پین SQW و فرکانس آن می باشد.
وظیفه این تابع تبدیل رشته ای که بصورت هگزا دسیمال وارد شده به متغیر عددی معادل آن است مثلا اگر 'B' وارد تابع شود عدد 11 باز گردانده می شود و روش کار به اینصورت است که ابتدا با استفاده از تابع toupper اگر کاراکتری بصورت وارد شده بود آنرا به کاراکتر بزرگ تبدیل کند مثلا 'b' را به 'B' تبدیل می کند پس از آن اگر کاراکتر وارد شده بین '0' تا '9' بود مقدار آن از معادل عددی کد اسکی '0' کم می شود مثلا کد اسکی کاراکتر '8' در مبنای دهدهی برابر 56 است و کاراکتر '0' برابر 48 است که در صورتیکه که 48 را از 56 کم کنیم عدد 8 بدست می آید. در صورتیکه کاراکتر وارد شده بین 'A' تا 'F' بود مقدار عددی کاراکتر وارد شده از معادل دهدهی کاراکتر 'A' کم می شود و عدد با 10 جمع می شود مثلا اگر 'B' وارد شود عدد 65 از عدد 66 کم می شود و به اضافه 10 می شود که عدد 11 بدست می آید. از لینک زیر می توانید اطلاعات مروبط به کدهای اسکی و معادل آن ها در مبنا های مختلف را مشاهده نمایید:
http://www.asciitable.com/
این تابع دو ورودی از سریال پورت می خواند و با توجه به mode ورودی تابع آنها را تبدیل می کند اگر mode برابر با DEC بود فقط دو عدد ورودی را درون یک آرایه ریخته و تبدیل به یک متغیر عددی می کند ولی اگر mode برابر HEX بود اندیس اول آرایه را به عدد تبدیل می کندو 4 مرتبه به چپ شیفت می دهد و اندیس دوم را به عدد تبدیل می کند و با عدد اول جمع می کند.
این تابع عدد وارد شده را به معادل کداسکی آن در مبنای هگزا دسیمال تبدیل می کند.
این تابع با توجه به mode مقدار v را در مبنای هگزا یا دسیمال تبدیل می کند.
وضعیت تمام بخش های آی سی را نمایش می دهد.
ساعت و تاریخ آی سی را نمایش می دهد
این تابع ابتدا اطلاعات زمان را از آی سی می خواند و سپس آنها را نمایش می دهد.
با استفاده ازاین تابع می توانیم اطلاعات ذخیره شد روی SRAM آی سی را بخوانیم
به کمک تابع بالا می توانیم اطلاعات مورد نظر خود را در حافظه SRAM آی سی بنویسیم
برای نمایش روز چندم هفته از این تابع استفاده می شود.
در صورتیکه بخواهیم اطلاعات آی سی را تغییر دهیم با استفاده از این تابع می توانیم اطلاعات جدید را روی آی سی بنویسیم.
برای انجام تنظیمات از این تابع استفاده می کنیم این تابع قادر به تنظیم وضعیت DS1307، تغییر وضعیت پایه SQW و تنظیم فرکانس خروجی و تنظیم حالت 12 یا 24 ساعته می باشد.
از این تابع برای خواندن اطلاعات از سریال پورت استفاده می شود
در حلقه این برنامه مدام در حال چک کردن ورودیست تا در صورتیکه کاراکتری وارد شد آن را بخواند و بر اساس آن تابعی را اجرا کند.
امیدوارم لحظه لحظه زندگیتون قرین آرامش باشه
محمد هادی دشتی
برای مشاهده آموزش جلسه اول آموزش گام به گام ماژول ESP32(معرفی ماژول ESP32 ) کلیک کنید.
برای مشاهده آموزش جلسه دوم آموزش گام به گام ماژول ESP32(معرفینرم افزار Arduino ) کلیک کنید.
برای مشاهده آموزش جلسه سوم آموزش گام به گام ماژول ESP32(نحوه پروگرام کردن یک برنامه ساده) کلیک کنید.
برای مشاهده آموزش جلسه چهارم آموزش گام به گام ماژول ESP32(برنامه ال ای دی چشمک زن ) کلیک کنید.
برای مشاهده آموزش جلسه پنجم آموزش گام به گام ماژول ESP32(راه اندازی کلید(ورودی) ) کلیک کنید.
برای مشاهده آموزش جلسه ششم آموزش گام به گام ماژول ESP32(راه اندازی ADC) کلیک کنید.
برای مشاهده آموزش جلسه هفتم آموزش گام به گام ماژول ESP32(راه اندازی DAC ) کلیک کنید.
برای مشاهده آموزش جلسه هشتم آموزش گام به گام ماژول ESP32(راه اندازی PWM) کلیک کنید.
برای مشاهده آموزش جلسه نهم آموزش گام به گام ماژول ESP32(راه اندازی WiFi بصورت Client) کلیک کنید.
برای مشاهده آموزش جلسه دهم آموزش گام به گام ماژول ESP32(راه اندازی WiFi بصورت Server) کلیک کنید.
برای مشاهده آموزش جلسه یازدهم آموزش گام به گام ماژول ESP32(راه اندازیال سی دی کاراکتری) کلیک کنید.
برای مشاهده آموزش جلسه دوازدهم آموزش گام به گام ماژول ESP32(راه اندازی DS1307 (بخش اول)) کلیک کنید.