راه اندازی سون سگمنت با آردوینو

0

در این پست از سایت اِمیک، راه اندازی سون سگمنت با استفاده از اردوینو اموزش داده خواهد شد. ما در این پروژه یک سون سگمنت تکی را با برد اردوینو یونو راه اندازی می کنیم ، البته شما به راحتی می توانید سون سگمنت های دو تایی و بیشتر را هم با تغیرات جزئی در این پروژه راه اندازی کنید.

prj-seven-segment2

قبلا اموزش راه اندازی Seven Segment را با استفاده از میکروکنترلر AVR اموزش داده بودم که در آنجا بطور کامل در مورد سون سگمنت ها توضیح داده شد، این پست را می توانید در اینجا مشاهده کنید.

پین های سون سگمنت تکی به صورت زیر است :

همانطور که در تصویر بالا می بینید, سون سگمنت تکی دارای 10 پین (5 پین در هر طرف) می باشد که پین وسط از هر طرف پین مشترک هست و با توجه به اینکه سون سگمنت از نوع اند مشترک است یا کاتد مشترک باید به مثبت یا منفی متصل شود. به ترتیب قرارگیری پین ها که از a تا g نام گذاری شده اند و نقطه که با DP مشخص شده است, دقت کنید. زمانی که می خواهید سون سگمنت را به برد اردوینو متصل کنید می توانید با توجه به تصویر بالا پین های سون سگمنت را تشخیص دهید.

 

شماتیک پروژه راه اندازی سون سگمنت با آردوینو :

prj-seven-segment2

در تصویر بالا یک پروژه ساده با سون سگمنت را مشاهده می کنید که به صورت یک شمارنده عمل می کند, یعنی که اعداد 0 تا 9 به ترتیب و با فاصله زمانی یک ثانیه روی سون سگمنت نمایش داده می شوند و زمانی که به عدد 9 رسیدیم دوباره سون سگمنت 0 شده و از اول این روند ادامه پیدا می کند. تنها نکته شماتیک بالا نحوه اتصال سون سگمنت به برد اردوینو است که با توجه به پین هایی از برد اردوینو که در برنامه برای اتصال به سون سگمنت مشخص کرده ایم, به هم متصل می شوند. ما در برنامه که در ادامه قرار داده شده مشخص کرده ایم که پین های 0 تا 6 برد اردوینو به ترتیب به پین های a تا g سون سگمنت متصل شوند . 

 

برنامه :

توجه کنید که ارایه ای که در ابتدای برنامه تعریف شده برای سون سگمنت کاتد مشترک است و در صورتی که سون سگمنت شما اند مشترک است فقط کافی است که یک ها را به صفر و صفرها را به یک تبدیل کنید, یعنی به صورت زیر شود:

 

توضیح عملکرد تابع sevenseg :

همانطور که در خط 27 برنامه مشاهده می کنید ما برای نمایش اعداد روی سون سگمنت یک تابع تعریف کرده ایم که بهتر است عملکرد این تابع را با یک مثال توضیح بدهم. فرض کنید که ما می خواهیم عدد 2 را بر روی سون سگمنت نمایش بدهیم, بنابراین ما باید در برنامه تابع sevenseg را به صورت زیر فراخوانی کنیم:

بنابراین با توجه فراخوانی تابع به صورت بالا مقدار n درون تابع sevenseg برابر 2 می شود و در ادامه ی اجرای تابع sevenseg وارد حلقه for می شویم, درون حلقه for از دستور digitalWrite استفاده شده است. در تکرار اول حلقه for مقدار a=0 است بنابراین دستور digitalWrite به صورت زیر می شود

مقدار [seg[2][0 یعنی ارایه ای که در سطر دوم و ستون 0 قرار دارد(در ارایه ای که برای کاتد مشترک تعریف شده) 1 است در نتیجه پین صفر اردوینو که متصل به پین a از سون سگمنت است 1 می شود. 

در اجرای دوم حلقه for مقدار a=1 شده بنابراین دستور digitalWrite به صورت زیر می شود

مقدار [seg[2][1 یعنی ارایه ای که در سطر دوم و ستون 1 قرار دارد 0 است در نتیجه پین یک اردوینو که متصل به پین b از سون سگمنت است 0 می شود. و این روند ادامه دارد تا مقدار a از 6 بیشتر شود که حلقه for تمام می شود. نتیجه همه ی اتفاق های بالا باعث می شود عدد 2 روی سون سگمنت نمایش داده شود

اگر سوالی داشتید می تونید در قسمت نظرات مطرح کنید. اگر با برنامه نویسی اردوینو اشنا نیستید مطالب زیر را مطالعه کنید :

  • برای اشنایی با دستورات مهم برنامه نویسی اردوینو اینجا کلیک کنید
  • برای اشنایی با نحوه پروگرام کردن برد اردوینو (ریختن برنامه روی برد) اینجا کلیک کنید

 

کلیپ تست عملی پروژه :

 

دانلود فایل ها

پسورد فایل زیپ : www.emic.ir

نظر یادتون نره…

ارسال دیدگاه

لطفا دیدگاه خود را وارد کنید!
لطفا نام خود را در اینجا وارد کنید