




پروژه Counter / شمارنده تعداد خاموش و روشن شدن یک دستگاه 220 ولت
در این پروژه، یک شمارندهی هوشمند طراحی شده که تعداد دفعات روشن شدن دستگاه را ذخیره کرده و روی سونسگمنت نمایش میدهد. با استفاده از EEPROM، این شمارنده حتی پس از خاموش و روشن شدن دستگاه نیز مقدار قبلی خود را حفظ میکند. همچنین با فشردن کلید متصل به پایه دیجیتال 3، شمارش معکوس از عدد 9 آغاز میشود و پس از 10 ثانیه، نمایشگر مقدار 999 را نشان داده و شمارنده به صفر بازنشانی میشود. این سیستم با استفاده از کتابخانهی SevSeg برای راهاندازی سونسگمنت سهرقمی و پیکربندی پینهای سختافزاری طراحی شده است. از این پروژه میتوان بهعنوان پایهای برای طراحی انواع شمارندههای هوشمند یا سیستمهای ثبت تعداد دفعات استفاده بهره گرفت.
- میکرو: ATMega328
- منبع تغذیه:220 ولت AC
فایل PCB پروژه با آلتیوم: دارد
فایل شماتیک پروژه با آلتیوم: دارد
فایل PDF شماتیک و PCB: دارد
سورس کد پروژه: دارد
لیست قطعات: دارد
توضیحات
این پروژه یک شمارنده دیجیتال هوشمند مبتنی بر میکروکنترلر است که با استفاده از سونسگمنت سهرقمی و حافظه EEPROM طراحی شده تا تعداد دفعات روشن شدن دستگاه را ثبت و نمایش دهد. سیستم با کمک کتابخانهی SevSeg مقدار شمارش را روی نمایشگر نشان میدهد و در هر بار راهاندازی، مقدار قبلی از EEPROM خوانده شده و شمارش ادامه مییابد.
هدف اصلی این پروژه، ساخت یک شمارنده پایدار و قابل اطمینان است که حتی با قطع و وصل شدن برق، مقادیر ذخیره شدهی خود را از دست ندهد. همچنین با استفاده از یک کلید فیزیکی متصل به پایهی دیجیتال ۳، کاربر میتواند شمارش معکوس ۱۰ ثانیهای را فعال کند که از عدد ۹ شروع شده و در هر ثانیه یک عدد کاهش مییابد. پس از پایان این بازه، عدد ۹۹۹ روی سونسگمنت ظاهر میشود و شمارنده به صورت خودکار ریست شده و از صفر آغاز میشود.
در حالت عادی، تا زمانی که دکمه فشرده نشده باشد، عدد شمارنده فعلی بهصورت لحظهای روی نمایشگر دیده میشود. منطق زمانبندی و واکنش به کلید فشاری بهگونهای طراحی شده که رفتار دستگاه دقیق، پایدار و بدون تداخل باشد.
سختافزار این پروژه شامل یک میکروکنترلر (مانند Arduino Uno یا Nano)، یک سونسگمنت سهرقمی با کاتد مشترک، مقاومتهای محدودکننده جریان، و یک کلید فشاری ساده است. طراحی مدار به گونهای انجام شده که ساده، قابل توسعه و مناسب برای پروژههای آموزشی یا کاربردی باشد.
کد پروژه بهصورت ساختیافته و قابل فهم نوشته شده و شامل استفاده از توابع EEPROM برای خواندن و نوشتن داده، منطق شمارش معکوس، و بروزرسانی منظم نمایشگر است. این پروژه پایهای عالی برای توسعه سیستمهای شمارنده، تایمر یا حتی سیستمهای ثبت آمار با قابلیت بازنشانی خودکار به شمار میآید.

🧠 بخش اصلی – میکروکنترلر (U1 – ATmega328 DIP):
- پورتهای PB0 تا PB7 به خطوط سگمنتهای A تا G و DP سونسگمنت متصل شدن. این نشون میده که سگمنتها بهصورت مالتیپلکس کنترل میشن.
- PD2، PD3 و PD4 به پایههای COM سونسگمنتها وصل هستن و نقش انتخاب رقم (Digit Select) رو دارن.
- PD5 به عنوان ورودی کلید استفاده شده.
- کریستال خارجی با فرکانس احتمالی 16MHz به پایههای XTAL1 و XTAL2 متصل شده (PB6 و PB7) و همراه با دو خازن C1 و C2 برای نوسانسازی استفاده میشه.
- مقاومت پولآپ 10K روی پایه ریست (PC6) وجود داره تا از ریست ناخواسته جلوگیری کنه.
- خازنهای C4 و C5 هم برای فیلتر تغذیه هستن.
🔲 نمایشگر – سون سگمنت (DS1, DS2, DS3):
- هر سونسگمنت 7 پایه سگمنت و یک پایه COM (کاتد مشترک) داره.
- سگمنتها بهصورت موازی به پورت B وصل هستن و COM هر رقم از طریق PD2 تا PD4 سوییچ میشه.
- این روش همون مالتیپلکسینگ معروفه که باعث کاهش تعداد پین مصرفی میشه.
⏹️ ورودی کاربر – کلید فشاری (S1):
- کلید به پایه PD5 متصل شده و با مقاومت پولآپ داخلی و خارجی (R8 = 10K) کار میکنه.
- خازن C3 هم احتمالاً برای دِبانس کردن کلید استفاده شده.
⚡ منبع تغذیه (AC به DC):
- بخش پایین شماتیک مربوط به تبدیل برق شهری (220V AC) به 5V DC پایدار برای تغذیه برده.
- D1 تا D4 پل دیود هستن برای تبدیل AC به DC.
- C6 و C7 خازنهای صافی برای ولتاژ DC بعد از پل دیود هستن.
- U2 (LM7805) رگولاتور ولتاژ برای تولید خروجی 5 ولت ثابت استفاده شده.
- دیود D5 برای حفاظت از پلاریته معکوس یا سرج استفاده شده.
- R13 و R14 مقاومتهای محدودکننده جریان و حفاظت.
- خازنهای C9 و C10 برای فیلتر کردن نویز و پایداری خروجی رگولاتور هستن.
- LED D3 با مقاومت R11 برای نشان دادن وجود ولتاژ تغذیه هست.
✅ جمعبندی عملکرد کلی:
- با هر بار روشن شدن دستگاه، مقدار شمارنده از EEPROM خونده میشه.
- عدد روی سونسگمنت نمایش داده میشه.
- با زدن کلید، شمارش معکوس شروع میشه و به صفر میرسه.
- پس از رسیدن به صفر، مقدار نمایشگر 999 شده و شمارنده ریست میشه.
- تغذیه پروژه بهصورت مستقیم از برق شهری تأمین و به 5 ولت DC تبدیل میشه.


برد مدار چاپی (PCB) این پروژه با استفاده از نرمافزار Altium Designer طراحی شده و با تمرکز بر چیدمان دقیق و مهندسیشدهی میکروکنترلر ATmega328، نمایشگرهای سونسگمنت، مدار تغذیه AC به DC، و اجزای جانبی مانند دکمه فشاری و کریستال نوسانساز ساخته شده است. طراحی برد بهگونهای انجام شده که مسیرهای تغذیه، سیگنالهای کنترلی و خروجیهای مربوط به سونسگمنتها در کمترین فضای ممکن و بدون تداخل نویز پیادهسازی شدهاند تا عملکرد مطمئن و پایدار دستگاه تضمین شود.
در بخش تغذیه، موقعیت قطعاتی مثل پل دیود، خازنهای صافی، رگولاتور LM7805 و مقاومتهای محدودکننده با دقت و فاصلهی ایمن از یکدیگر قرار گرفتهاند تا ایزولاسیون ولتاژ بالا از بخش منطقی حفظ شود. مسیرهای جریان بالا ضخیمتر طراحی شدهاند و خازنهای الکترولیت با قطبیت صحیح و فضای کافی برای نصب دستی یا ماشینی جایگذاری شدهاند.
برای ماژول نمایشگر، پورتهای کنترل سونسگمنتها (پینهای PB و PD میکروکنترلر) با مسیرهای کوتاه و مستقیم به ورودیهای مربوطه متصل شدهاند تا در مالتیپلکسینگ، کمترین تأخیر و نویز رخ دهد. در کنار آن، جایگذاری کلید فشاری با مقاومت پولآپ و خازن debounce روی برد بهصورتی انجام شده که مونتاژ ساده و بدون نیاز به سیمکشی اضافی فراهم شود.
این طراحی از یک لایه یا حداکثر دو لایه بهره گرفته و برای ساخت با روشهای دستی (مانند اتو یا UV) یا سفارش صنعتی آماده است. فایلهای نهایی شامل شماتیک، لایههای مسی، مکانیابی قطعات (Silkscreen) و نقشههای حفاری در قالب PDF و Gerber تهیه شدهاند تا کاربر بتواند بدون مشکل، برد را چاپ و مونتاژ کند. این برد نهتنها برای آموزش مفید است، بلکه قابلیت استفاده در پروژههای واقعی و کاربردی را نیز دارد.
لیست قطعات

دانلود سورس کامل پروژه به صورت رایگان
رمز فایل: NEWJECT.COM