پروژه AVR شمارنده LED با کلید افزایشی و کاهشی

4

در این پست از سایت اِمیک, یک پروژه ساده به نام پروژه AVR شمارنده LED با کلید افزایشی و کاهشی قرار داده شده است. در واقع این پروژه یک شمارنده با استفاده از LED می باشد که روشن و خاموش شدن این LED ها توسط دو کلید فشاری انجام می شود. این پروژه با استفاده از میکروکنترلر AVR انجام شده و در ادامه در مورد این پروژه بیشتر توضیح خواهم داد. در زیر شماتیک این پروژه ساده ولی بسیار جالب و آموزنده را مشاهده می کنید:

شماتیک پروژه AVR شمارنده LED با کلید افزایشی و کاهشی

همانطور که مشاهده می کنید, ما در این پروژه از میکروکنترلر ATmega16 استفاده کرده ایم. از دو عدد کلید فشاری نیز استفاده شده که به پایه های شماره 1 و 2 میکروکنترلر (پین 0 و 1 از پورت B میکرو) متصل شده اند. در این پروژه شمارنده, ما از 8 عدد LED استفاده کرده ایم که این LED ها به پایه های 22 تا 29 میکروکنترلر (پین های 0 تا 7 از پورت C میکرو) متصل شده اند. هر کدام از LED ها با یک مقاومت سری شده است, این مقاومت ها برای محدود کردن جریان LED ها و جلوگیری از اسیب به انها می باشند.

این پروژه دارای دو کلید افزایشی و کاهشی به نام های Up و Down می باشد. با هر بار فشار دادن کلید Up ال ای دی های شماره 1 تا 8 متصل به میکرو, یک به یک و به ترتیب روشن می شوند. با هر بار فشار دادن کلید Down ال ای دی های شماره 1 تا 8 متصل به میکرو, یک به یک و به ترتیب خاموش می شوند. در انتهای مطلب می توانید کلیپ شبیه سازی این پروژه را مشاهده کنید.

توجه کنید که پایه های تغذیه میکروکنترلر (پایه 10 و 11) را که در شماتیک بالا نیست, فراموش نکنید که به تغذیه 5 ولت متصل کنید.

برنامه کدویژن:

در این پروژه فرکانس میکروکنترلر 1 مگاهرتز تنظیم شده است. در زیر برنامه نوشته شده به زبان C و کامپایلر کدویژن را مشاهده می کنید:

توضیحات قسمت های مهم برنامه نوشته شده, اگر سوالی داشتید می توانید در قسمت نظرات مطرح کنید. فایل های کدویژن و شبیه سازی پروتئوس را هم می تونید از انتهای مطلب دانلود کنید.

کلیپ شبیه سازی پروژه :

 

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

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

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

4 دیدگاه‌ها

  1. با سلام و تشکر از زحماتتون
    ممکنه بفرمایید آی سی آردینو کجا میشه گرفت و قیمتش چقدره
    مدلهای مختلف وجود داره
    شماره من اینه ***
    شد یک تماس بفرمایید ممنون میشم

  2. سلام

    PORTC=(PORTC*2)+1( این دستور چه طوری یکی یکی LED ها روشن می کند؟)
    PORTC=(PORTC-1)/2;( این دستور چه طوری یکی یکی LED ها خاموش می کند؟)

    • سلام, اینگونه کدها را باید خودتون مقدار دهی کنید و تحلیل کنید. مثلا فرض کنید PORTC دارای مقدار ده دهی 3 باشد که یعنی فقط پین های 0 و 1 این پورت یک منطقی هستند و بقیه صفر هستند. با اجرا شدن دستور اول که یک فرمول ساده است 3 در 2 ضرب شده و حاصل با 1 جمع می شود که نتیجه نهایی میشود 7 در نتیجه با 7 شدن PORTC, به علاوه پین 0 و 1 این پورت که یک منطقی بودن پین 2 نیز برابر یک منطقی شده و این روند با هر بار اجرای دستور ادامه دارد. دستور دوم نیز به همین صورت است فقط یکی یکی پین ها را صفر می کند.

ارسال دیدگاه

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