یکشنبه, دی 2, 1403
ادامه منو
    خانهپروژه های میکروکنترلر AVRپروژه با سون سگمنت و LEDپروژه AVR شمارنده سون سگمنت با کلید افزایشی و کاهشی

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

    در این پست از سایت اِمیک, ما یک سون سگمنت تکی را با استفاده از میکروکنترلر AVR راه اندازی خواهیم کرد. قطعات اصلی این پروژه علاوه بر میکروکنترلر ATmega16 و سون سگمنت, شامل دو کلید هم می باشد که به صورت افزایشی و کاهشی عمل می کنند. عملکرد پروژه به این صورت است که در ابتدا با اتصال منبع تغذیه, روی سون سگمنت عدد 0 نمایش داده می شود و با فشار دادن کلید افزایشی (++) عدد روی سون سگمنت یکی اضافه می شود و با فشار دادن کلید کاهشی (–) عدد یکی کاهش می یابد.

    قبلا راه اندازی سون سگمنت با میکروکنترلر AVR را اموزش داده بودیم که در اون پست به طور کامل در مورد سون سگمنت ها و پایه های انها و همچنین نحوه راه اندازی انها توضیح داده شد, که توصیه می کنم مطالعه کنید. در ادامه شماتیک این پروژه را مشاهده می کنید.

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

    avr-prj-seven segment2-emic

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

    نکات :

    • دو مقاومت R1 و R2 برای پول اپ (Pull-up) کردن کلید ها استفاده شده اند. از انجایی که پین های 39 و 40 میکرو به کلیدها متصل هستند و به صورت ورودی تنظیم شده اند لازم است انها را پول اپ کنیم.
    • توجه کنید که در این پروژه ما از سون سگمنت کاتد مشترک استفاده کرده ایم. در صورتی که با پین های سون سگمنت اشنا نیستید یا می خواهید از سون سگمنت اند مشترک استفاده کنید, حتما پست معرفی شده در ابتدای مطلب را مطالعه کنید.
    •  در پروتئوس, سون سگمنت به صورت بالا می باشد که پایه های ان از سمت چپ به ترتیب a تا g می باشند و پایه اخر که بجایی وصل نشده همان DP می باشد که در این پروژه از ان استفاده نکرده ایم.
    • پایه های تغذیه میکروکنترلر (پایه های 10 و 11) که در تصویر بالا وجود ندارند را فراموش نکنید به تغذیه 5 ولت متصل کنید.

    برنامه :

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

    کلیپ شبیه سازی در پروتئوس :

     

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

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

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

    عابد رازانی
    عابد رازانیhttps://emic.ir/
    فارغ التحصیل کارشناسی الکترونیک از دانشکده باهنر شیراز و علاقمند به برنامه نویسی و طراحی مدارات الکترونیکی, در حال حاضر به تولید محتوای آموزشی و طراحی و انجام پروژه مشغول هستم.

    28 نظرات

    1. سلام وقت بخیر امکانش هست وقتی سوئیچ افزاینده را فشار میدهیم عدد به صورت خودکار از صفر تا نه برود یعنی آنرا پشت سر هم فشار ندهیم برای سوئیچ کاهنده هم همینطور ممنون

    2. سلام
      چطور میشه با استفاده از سون سگمنت(4 رقمی برای شمارش دور موتور و همینطور دو رقمه برای نمایش دما) یه کانتر دور موتور dc برای فن کامپیوتر بدون سنسور مادون قرمز و همینطور نمایش دمای محیط داخل کیس رو داشت با سنسور دما
      با تشکر

    3. با سلام و عرض ادب من هم مثل آقای علیرضا می خوام دو تا سون سگمنت روی دو برد جداگانه داشته باشم که توسط یک ریموت کنترل بتونم سون سگمنت ها رو افزایش و یا کاهش بدم لطفا راهنماییم کنید از کجا شروع کنم واقعتش من نرم افزار خوندم و کمی هم نسبت به علاقه خودم فقط الترونیک رو مطالعه کردم و لی واقعیتش رو بخواید می خوام هر جوری شده با کمک شما این برد رو بسازم لطفا کمکم کنید

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

      • سلام اگه از یه دونه کلید استفاده کنیم یعنی اگه کلید بسته باشه صعودی اگه باز باشه نزولی (از صفر تا نه)

      • سلام, باید در برنامه و شماتیک پین ها را مطابق با میکروکنترلر مورد نظرتون تنظیم کنید. مثلا Atmega8 پورت A ندارد که شما باید از یک پورت دیگر ان بجای پورت A استفاده کنید

        • با عرض سلام و خسته نباشید ، بنده مبتدی هستم ولی علاقمند به الکترونیک و برنامه نویسی ممکنه بیشتر توضیح بدین و اینکه اگه بخواهیم به این مدار یک عدد سون سگمنت دیگه اضافه کنیم چه باید کرد و اینکه چطوری میشه این مدار رو تو یه مدار دیگه گذاشت تا با افزایش و گاهش مثلا سرعت دور موتور dc عددی رو هم بشه دید !!!

    5. سلام جناب مهندس خسته نباشید چرا در دستور #include define key 2 پین کلید دو را مثل کلید اول برابر صفر قرار ندادید؟

    6. سلام
      مطلب خیلی مفید بود.
      یه خواهشی دارم…
      اگر میشه همین کد رو برای دوتا سون سگمنت هم بزارین.
      با دو کلید شمارش از 0 تا 99.
      واقعا لازم دارم کارم گیره. هرچی تو نت گشتم پیدا نکردم.

    7. سلام مهندس
      میخاستم ببینم در پروژه هایی که اپلود کردین پروزه ای به این منظور هست که:
      یک شمارنده برای شمارش محصولات تولید شده داشته باشیم که مقدار محصولات تولید شده و بسته بندی ان را روی ledنمایش دهد و با یک کیبورد بتوان مقدار محصول در هر بسته رو تغییر بدیم و یک سونسگمنت هم برای نمایش عدد کیبود داشته باشیم

      • سلام, یک کلید دیگه اضافه کنید و در برنامه نیز یک شرط if دیگر اضافه کنید و با فشار دادن کلید شرط if برقرار شده و درون if متغیر a را صفر کنید و روی سون سگمنت نمایش دهید. همچنین می توانید مدار ریست میکروکنترلر را ببندید, با ریست کردن میکرو سون سگمنت 0 را نمایش می دهد

    8. سلام
      در این حالت اگر کلید ++ وصل بماند عدد دائم افزایش می یابد.اگر بخواهیم با هر بار فشرده شدن(بدون در نظر گرفتن مقدار زمان وصل بودن) یکی به a اضافه شود باید چگونه بنویسیم؟

      • سلام, یک متغیر جدید از نوع int دارای مقدار اولیه 0 تعریف کنید و درون شرط if با key اند (&) کنید. با هر بار اجرای هر کدام از if ها این متغیر 1 شود و ان if دیگر اجرا نشود و در انتها با برداشتن دست از روی کلید ان متغیر دوباره 0 شود. برای اینکه بهتر متوجه بشید به برنامه زیر دقت کنید(متغیر جدیدی که تعریف کردیم x می باشد)
        int x=0;
        if((key==0)&(x==0))
        {
        دستورات مورد نظر
        x=1;
        }
        if(key1 == 1) {x=0;}

      • عرض سلام و درود
        ممنون از آموزش عالیتون چنتا سوال داشتن
        ۱راهی هست بجای اینکه رقم تک تک افزایش پیدا کنه سه تا یا چهارتا افزایش پیدا کنه
        ۲ اگر بخواهیم وقتی به عدد نه رسیدیم عدد به صورت خودکار روی صفر نیاد باید چکار کنیم
        ۳ اگر بخواهیم میکرو در حالت عدم استفاده کلا خاموش بشه مثلا بعد از چند ثانیه راهش چیه

    9. سلام اگه بخوایم از دوتا سون سگمنت استفاده کنیم که اعداد ۰تا ۹۹ رو بتونیم نمایش بدیم باید چجوری سون سگمنت دوم رو به پروژه وصل کنیم و برنامه چه تغییراتی میکنه؟

    ارسال دیدگاه

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

    spot_img