آموزش ساخت ساعت دیجیتالی | پروژه: طراحی و پیاده‌سازی ساعت دیجیتال با نمایشگر ۷‌ قسمتی به وسیله Arduino، در ادامه با آموزشگاه خانه رباتیک ایران همراه باشید:

خلاصه پروژه ساخت ساعت دیجیتالی:

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

آموزش ساخت ساعت دیجیتالی

آموزش ساخت ساعت دیجیتالی

آموزش ساخت ساعت دیجیتالی

اجزاء اصلی مورد استفاده:

– میکروکنترلر Arduino:

یک برد میکروکنترلر کوچک و قدرتمند بر پایه تراشه ATmega328، که وظیفه خواندن داده‌ها، کنترل نمایشگر و محاسبه و نگهداری زمان را بر عهده دارد.

– نمایشگر ۷‌ قسمتی:

یک دیود نوری ساطع کننده (LED) چندتایی که هر بخش آن به صورت جداگانه کنترل می‌شود تا ارقام عددی (۰-۹) را نمایش دهد. معمولاً برای نمایش ساعت از چهار عدد استفاده می‌شود که دو برای ساعت و دو برای دقیقه هستند.

– سایر اجزاء کمکی:

– هدرهای ۸ و ۳۶ پوزیشن: برای اتصال ایمن و آسان بخش‌های مختلف مدار (مانند نمایشگرها و کلید‌ها) به برد Arduino.
– کلیدهای تاشه‌ای (تاکتیک سوئیچ): برای تنظیم زمان، شروع/وقف کردن کرنومتر، یا سایر تنظیمات.
– LEDهای قرمز (قطر ۵ میلی‌متر): برای نشان دادن وضعیت سیستم، انرژی یا هشدارها.
– پین‌ها و سیم‌های هوک‌آپ: برای اتصال صحیح بخش‌های مختلف مدار.

ابزارهای مورد نیاز:

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

روش کار کلی:

در این پروژه، برنامه‌نویسی مدار به زبان C/C++ است تا زمان را در قالب ساعت و دقیقه نگهداری و به نمایش درآورد. کدها معمولاً شامل موارد زیر هستند:

– شمارنده و تایمر برای نگهداری دقیق زمان
– کنترل پین‌های خروجی برای روشن و خاموش کردن بخش‌های نمایشگر
– خواندن ورودی‌ سوئیچ‌ها برای تنظیم زمان یا کنترل عملکردها

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

آموزش ساخت ساعت دیجیتالی

آموزش ساخت ساعت دیجیتالی

این کد برنامه‌ای برای کنترل یک ساعت دیجیتال با Display‌های ۷‌ قسمتی است که توسط Arduino نوشته شده است. در ادامه، ساختار کلی و عملکرد هر بخش را شرح می‌دهیم:

۱. متغیرها و پین‌ها:

– تعیین پین‌های نمایشگر ۷‌ قسمتی و قطع‌کننده‌ها:
پین‌های دیجیتال برای کنترل هر بخش از نمایشگر (A تا G و نقطه) تعریف شده‌اند.
– پین‌های سوئیچ‌ها: برای تنظیم ساعت و دقیقه (SW0، SW1، SW2) است.

۲. تابع setup() :

– پین‌ها به عنوان خروجی یا ورودی تنظیم می‌شوند.
– سوئیچ‌ها با مقاومت داخلی فعال شده‌اند (`HIGH` با `pinMode INPUT`) و فعال‌سازی سطح بالا به عنوان حالت فعال بودن سوئیچ تنظیم شده است.
– ارتباط سریالی ( Serial.begin(9600) ) برای ارسال و دریافت اطلاعات از طریق کامپیوتر مشخص شده است.

۳. تابع  loop() :

– خواندن ساعت فعلی:
تابع  hour()  و minute() از کتابخانه وقت ( TimeLib ) برای دیدن زمان فعلی استفاده می‌کند.
– محاسبه  timp :
در اینجا، زمانی که ساعت > 12، ساعت به حالت ۱۲ ساعته تبدیل می‌شود و سپس ضربدر ۱۰۰ و جمع شدن دقیقه انجام می‌شود، تا زمان به صورت عددی چهار رقمی (مثلاً ۱۲۳۴ برای ۱۲:۳۴) ذخیره شود.
– نمایش زمان:
این کار در حلقه‌های تکراری با تابع‌های  displayNumber01 ،  displayNumber02 ،  displayNumber03 ، و  displayNumber04  انجام می‌شود، که هر کدام نحوه نمایش متفاوتی دارند (شاید حالت‌های روشنایی یا برعکس).
– تنظیم زمان با کلید SW0:
اگر کلید SW0 فشرده شود، تابع set_time() فراخوانی می‌شود و کاربر می‌تواند زمان را تنظیم کند.

۴. تابع  set_time() :

– کار بر روی کلیدهای  SW1  و  SW2  است برای تغییر دقیقه و ساعت به ترتیب.
– حلقه جاری تا زمانی که  SW0  فشرده است فعال باقی می‌ماند.
– هنگامی که  SW1  فشرده می‌شود، دقیقه افزایش می‌یابد (بازنشانی به ۰ پس از ۶۰).
– هنگامی که  SW2  فشرده می‌شود، ساعت افزایش می‌یابد (بازنشانی به ۰ پس از ۱۲).
– پس از هر تغییر، ساعت و دقیقه جدید نمایش داده می‌شود و مقدار زمان سیستم بر روی Arduino تنظیم می‌شود ( setTime() ).

۵. توابع نمایش شماره ( displayNumber01 ،  displayNumber02 ،  displayNumber03 ،  displayNumber04 ):

این توابع نحوه نمایش عدد بر روی صفحه‌های ۷‌ قسمتی را کنترل می‌کنند:
– هر کدام از این توابع، چرخه نمایش را برای هر رقم انجام می‌دهند.
– این کار با فعال کردن یکی از چهار دیود ( LED ) در هر لحظه انجام می‌شود و عدد مورد نظر با تابع lightNumber() به هر بخش اختصاص داده می‌شود.
– تفاوت این توابع در نحوه روشن کردن یا خاموش کردن نقطه‌نمای ( segDP ) است، که حالت مختلفی برای نمایش دارد (مثلاً نقطه روشن یا خاموش).

۶. تابع lightNumber() :

به هر عدد ۰ تا ۹، حالت پایه‌ای بخش‌های ۷‌ قسمتی (A-G) را می‌دهد، بر اساس استاندارد نمایش ارقام:
–  SEGMENT_ON  برابر با  LOW  است که باعث روشن شدن LEDهای بخش مربوطه می‌شود.
– برعکس،  SEGMENT_OFF  برابر با  HIGH  است.

جمع‌بندی کلی:
این برنامه، یک ساعت دیجیتال ساده است که با کنترل صفحه‌های ۷‌ قسمتی و کلیدهای تنظیم، زمان را نمایش می‌دهد و امکان تنظیم ساعت و دقیقه را فراهم می‌کند.
در حالت بی‌کار، زمان جاری بر اساس ساعت سیستم نمایش داده می‌شود. برنامه از تکنیک multiplexing برای کم کردن تعداد پین‌ها و کنترل چندین رقم به صورت همزمان استفاده می‌کند.

” لطفا سوالات خود را با ذکر عنوان مقاله ارسال کنید. آموزشگاه خانه رباتیک ایران در کنار شماست. “

آماده سازی فرم
لطفا صبر کنید

فرم ساز آسان