امروز میخوایم یه پروژه جذاب و کاربردی رو با هم مرور کنیم: یک ساعت دیجیتال که زمان رو روی نمایشگر ماتریس نقطهای و با اعداد فارسی نشون میده. اگر به الکترونیک و میکروکنترلر علاقه داری، این پروژه میتونه شروع خوبی برای یادگیری نمایشگرهای ماتریسی، مالتیپلکس کردن و طراحی فونت باشه.
این پروژه چیکار میکنه؟
این مدار در واقع یک ساعت دیجیتال کامله که ساعت، دقیقه و ثانیه رو روی یک ماتریس LED نمایش میده. اعداد به صورت فارسی طراحی شدن و از کنار هم قرار گرفتن نقاط روشن و خاموش ساخته میشن. علاوه بر نمایش زمان، داخل برنامه یک تقویم ساده هم وجود داره که روز هفته، روز ماه، ماه و سال رو نگه میداره و به صورت خودکار بهروزرسانی میکنه. یعنی وقتی ثانیه به ۵۹ برسه، دقیقه جلو میره و همینطور تا تاریخ. اینطوری همیشه زمان و تاریخ درست توی حافظه میکروکنترلر حفظ میشه.
مشخصات سختافزاری
از نظر سختافزاری، قلب مدار یک میکروکنترلر ATmega32 هست که با کلاک ۱۲ مگاهرتز کار میکنه. برای نمایش زمان از یک ماتریس نقطهای LED استفاده شده. برای کنترل سطر و ستونهای ماتریس، از درایورها و شیفت رجیسترها کمک گرفته شده تا تعداد پینهای میکروکنترلر کم نشه. یک کریستال خارجی ۳۲.۷۶۸ کیلوهرتز هم برای شمارش دقیق ثانیهها به کار رفته که تایمر میکرو رو دقیقاً هر یک ثانیه یک بار وقفه میندازه. پورتهای خروجی میکرو به درایورها وصل میشن و با اسکن سریع ستونها، تصویر یکپارچه روی ماتریس دیده میشه.
در کل، این پروژه ترکیبی از برنامهنویسی و الکترونیکه و میتونه پایه خوبی برای ساخت ساعتهای حرفهایتر با قابلیت تنظیم دستی یا حتی اتصال به ماژولهای ساعت واقعی باشه.