توضیحات

این پروژه یک ساعت دیجیتال هوشمند مبتنی بر میکروکنترلر است که با استفاده از ماژول‌های RTC DS1307 و LCD کاراکتری 16×2 طراحی شده. در کنار نمایش دقیق تاریخ و ساعت، این سیستم در بازه‌های زمانی مشخص، پیام‌های مثبت و انگیزشی را به‌صورت تصادفی به کاربر نمایش می‌دهد تا علاوه‌بر اطلاع از زمان، حال خوب و انگیزه هم دریافت کند.
هدف اصلی پروژه، ساخت یک سیستم ساده و قابل‌اعتماد برای نمایش ساعت و تاریخ با امکان تنظیم دستی کامل است که حس تعامل با دستگاه را تقویت می‌کند. این ساعت با دو دکمه‌ی فیزیکی (Set و Adjust) کار می‌کند. با فشردن دکمه‌ی Set، سیستم وارد حالت تنظیم می‌شود و با دکمه‌ی Adjust می‌توان مقادیر سال، ماه، روز، ساعت، دقیقه و ثانیه را تغییر داد. پس از تنظیم، زمان جدید در ماژول RTC ذخیره می‌شود تا دقت زمان حفظ شود.
در حالت عادی، ساعت و تاریخ به‌صورت لحظه‌ای روی LCD نمایش داده می‌شود. هر دو دقیقه یک‌بار، یک پیام انگیزشی از بین ۱۴ پیام از پیش تعیین‌شده به‌صورت تصادفی انتخاب شده و روی LCD ظاهر می‌شود. این قابلیت نه‌تنها جنبه‌ی زیبایی دارد، بلکه باعث می‌شود کاربر در طول روز انگیزه بیشتری برای ادامه‌ی مسیرش داشته باشد. همچنین در هنگام راه‌اندازی دستگاه، یک افکت ساده‌ی Loading Bar نمایش داده می‌شود تا حس حرفه‌ای‌تری منتقل کند.
سخت‌افزار پروژه شامل یک میکروکنترلر (مانند Arduino Uno یا Nano)، ماژول RTC DS1307 برای زمان دقیق، LCD کاراکتری 16×2 برای نمایش داده‌ها، و دو کلید فشاری برای کنترل تنظیمات است. طراحی مدار ساده و قابل توسعه بوده و امکان افزودن امکانات بیشتر مثل آلارم، ذخیره اطلاعات در EEPROM یا حتی کنترل از راه دور در نسخه‌های آینده وجود دارد.
کدهای این پروژه به‌گونه‌ای نوشته شده‌اند که خوانا، قابل درک و کاملاً قابل ویرایش باشند. کارکرد دکمه‌ها، منطق چرخش بین حالت‌های تنظیم زمان، نحوه‌ی انتخاب تصادفی پیام‌ها و افکت‌های تصویری کاملاً در کد پیاده‌سازی شده‌اند. همچنین در صورتی که خواسته باشید پروژه را گسترش دهید، اضافه‌کردن قابلیت‌هایی مانند آلارم، پیام‌های روزانه‌ی سفارشی، و ذخیره‌سازی وضعیت‌ها در EEPROM کاملاً ممکن است.

بخش ۱: POWER (تغذیه مدار)

این بخش وظیفه تأمین ولتاژ 5 ولت پایدار برای کل مدار را دارد.

  • ورودی مدار از طریق یک جک پاور تأمین می‌شود (مثلاً ۹ یا ۱۲ ولت DC).
  • دیود D1 در مسیر ورودی قرار گرفته تا در صورت اتصال معکوس منبع تغذیه، از سوختن مدار جلوگیری کند.
  • رگولاتور LM7805 ولتاژ ورودی را به ۵ ولت ثابت تبدیل می‌کند.
  • خازن‌های C1 و C2 (100nF و 100µF) وظیفه فیلتر کردن نویزها و تثبیت ولتاژ خروجی رگولاتور را دارند.
  • خروجی ۵ ولت این بخش مستقیماً به تغذیه میکروکنترلر، LCD و RTC متصل می‌شود.

🖥️ بخش ۲: LCD & Push Buttons (نمایشگر و دکمه‌ها)

در این قسمت از یک LCD کاراکتری 16×2 استفاده شده که اطلاعات ساعت و تاریخ را به کاربر نمایش می‌دهد.

  • نمایشگر به‌صورت 8 بیتی به میکروکنترلر متصل شده (از پایه D0 تا D7).
  • پایه‌های کنترل (RS، RW، E) به پورت‌های دیجیتال میکرو متصل‌اند.
  • پتانسیومتر VR1 (10kΩ) برای تنظیم کنتراست LCD به کار رفته.
  • دو دکمه فشاری S1 و S2 نیز در این بخش هستند که برای تنظیم زمان و تاریخ یا جابه‌جایی در منوهای LCD به‌کار می‌روند.
  • این دکمه‌ها به زمین متصل شده‌اند و از طریق مقاومت‌های pull-up (داخلی یا خارجی) با میکروکنترلر خوانده می‌شوند.

⏰ بخش ۳: RTC (ساعت واقعی)

برای نگه‌داری دقیق زمان، از تراشه DS1307 استفاده شده است.

  • این تراشه یک RTC (Real-Time Clock) است که ساعت، دقیقه، ثانیه، تاریخ، ماه و سال را نگه می‌دارد.
  • یک کریستال 32.768kHz به پایه‌های X1 و X2 وصل شده تا دقت تایمینگ تأمین شود.
  • باتری 3 ولت (CR2032) به پایه VBAT متصل شده تا در زمان قطع برق، زمان از دست نرود.
  • ارتباط بین DS1307 و میکروکنترلر از طریق پروتکل I2C انجام می‌شود (پایه‌های SDA و SCL).
  • مقاومت‌های پول‌آپ 10kΩ روی خطوط SDA و SCL قرار دارند تا عملکرد صحیح I2C تضمین شود.

🧠 بخش ۴: MICRO (میکروکنترلر)

در قلب مدار، یک میکروکنترلر ATmega328 قرار دارد که مسئول کنترل کل عملکرد مدار است:

  • یک کریستال 16MHz همراه با دو خازن 22pF به پایه‌های XTAL1 و XTAL2 متصل شده تا کلاک خارجی تأمین شود.
  • اتصالات تغذیه شامل VCC، AVCC، GND و AREF به درستی متصل شده‌اند.
  • پایه‌های SDA و SCL به RTC متصل شده‌اند.
  • پایه‌های دیجیتال برای اتصال به LCD و دکمه‌ها به کار رفته‌اند.
  • خازن‌های 100nF کنار پایه‌های تغذیه برای حذف نویز و تثبیت ولتاژ استفاده شده‌اند.
  • از ریست پین (RESET) با مقاومت pull-up 10kΩ و یک دکمه فشاری برای ریست دستی استفاده شده.

برد مدار چاپی (PCB) این پروژه با نرم‌افزار Altium Designer طراحی شده و شامل چیدمان بهینه‌ی میکروکنترلر ATmega328، ماژول ساعت واقعی DS1307 RTC، نمایشگر LCD 16×2 کاراکتری (به صورت موازی)، و سایر اجزای مرتبط مانند دکمه‌های تنظیم، رگولاتور تغذیه، کریستال‌ها، دیودها و خازن‌ها است. مسیرهای تغذیه، خطوط I2C (SDA و SCL) برای ارتباط بین میکروکنترلر و RTC، و اتصالات دیجیتال بین LCD و ATmega با دقت بالا و در یک برد فشرده پیاده‌سازی شده‌اند تا نویز به حداقل رسیده و عملکرد مدار پایدار بماند.

در طراحی PCB، محل قرارگیری خازن‌های فیلتر، مقاومت‌های Pull-up، کریستال ساعت، و دکمه‌های فشاری به‌صورت استاندارد و با در نظر گرفتن قابلیت مونتاژ دستی یا ماشینی تعیین شده‌اند. همچنین پایه‌های تغذیه و زمین به صورت یکپارچه و با پلن‌های مشخص طراحی شده‌اند تا افت ولتاژ و نویز کاهش یابد.

فایل‌های شماتیک و PCB به صورت جداگانه و در قالب PDF تهیه شده‌اند تا کاربران بتوانند پیش از تولید، مدار را به راحتی بررسی کنند. این طراحی امکان مونتاژ آسان و سفارش سریع PCB را برای سازندگان، دانشجویان و علاقه‌مندان به الکترونیک فراهم می‌سازد و گزینه‌ای بسیار مناسب برای پیاده‌سازی یک ساعت دیجیتال دقیق و کاربردی بر پایه میکروکنترلر کلاسیک AVR محسوب می‌شود.

لیست قطعات

دانلود سورس کامل پروژه به صورت رایگان

پروژه ساعت دیجیتالی با LCD کارکتری حجم: 1.5 مگابایت | فرمت: ZIP | آپدیت: 1404/04/16
دانلود
این فایل، سورس کامل پروژه به صورت رایگان است. محتوای فایل شامل کد پروژه، طراحی شماتیک و PCB است.
رمز فایل: NEWJECT.COM
Scroll to Top