فهرست مطالب:

ساعت دیجیتالی آردوینو همزمان با خط برق 60 هرتز: 8 مرحله (همراه با تصاویر)
ساعت دیجیتالی آردوینو همزمان با خط برق 60 هرتز: 8 مرحله (همراه با تصاویر)

تصویری: ساعت دیجیتالی آردوینو همزمان با خط برق 60 هرتز: 8 مرحله (همراه با تصاویر)

تصویری: ساعت دیجیتالی آردوینو همزمان با خط برق 60 هرتز: 8 مرحله (همراه با تصاویر)
تصویری: Lesson 99: Building Arduino Digital Clock using DS3231 LCD and Seven Segment Display 2024, جولای
Anonim
ساعت دیجیتال آردوینو همزمان با خط برق 60 هرتز
ساعت دیجیتال آردوینو همزمان با خط برق 60 هرتز

این ساعت دیجیتالی مبتنی بر آردوینو با خط برق 60 هرتز همزمان می شود. دارای یک صفحه آند معمولی ساده و ارزان 4 رقمی 7 قسمتی است که ساعت و دقیقه را نشان می دهد. از یک آشکارساز متقاطع برای تشخیص زمانی که موج سینوسی ورودی 60 هرتز از نقطه ولتاژ صفر عبور کرده و یک موج مربع 60 هرتز می گیرد ، استفاده می کند.

در بازه های زمانی کوتاه ، فرکانس موج سینوسی ورودی از خط برق ممکن است به دلیل بار بسیار کمی تغییر کند ، اما در دوره های طولانی مدت به طور متوسط تا 60 هرتز بسیار دقیق است. ما می توانیم از این مزیت برای استخراج منبع زمان بندی برای همگام سازی ساعت استفاده کنیم.

مرحله 1: نمودار مدار

نمودار مدار
نمودار مدار

بسته به اینکه آیا می خواهید از ترانسفورماتور با شیر مرکزی یا بدون آن استفاده کنید ، دو نسخه از مدار وجود دارد ، در هر صورت عملکرد مدار تقریباً یکسان است. برای این ساخت من از آداپتور دیواری (بدون ضربه مرکزی) استفاده می کنم که خروجی AC 12V دارد. من از این طرح (دیاگرام مدار ساعت دیجیتال 1) برای توضیحات مدار استفاده خواهم کرد. توجه داشته باشید که استفاده از آداپتور دیواری خروجی 12 ولت AC 12 ولت DC ضروری است تا بتوانیم برای زمان بندی به موج سینوسی AC ضربه بزنیم. احتمالاً می توانید از ترانسفورماتور خروجی 9 ولت AC استفاده کنید ، R19 را بردارید و به کار اندازید ، اما 12 ولت بسیار رایج است. نحوه عملکرد مدار به این صورت است:

120 ولت AC در 60 هرتز توسط ترانسفورماتور TR1 به 12 ولت تبدیل می شود. این به دیود D4 تغذیه می شود و اصلاح می شود به طوری که فقط ولتاژ +ve توسط خازن C3 تغذیه می شود و تقریباً با موج دار به DC صاف می شود. ولتاژ C3 از طریق مقاومت R19 به تنظیم کننده ولتاژ 7805 (U6) تغذیه می شود. R19 برای کاهش ولتاژ روی C3 استفاده می شود که در مورد من تقریباً 15VDC اندازه گیری شد. این را می توان با 7805 تنظیم کرد ، اما با این سطح ورودی ، 7805 باید تقریبا 10VDC کاهش یابد و در نتیجه داغ می شود. با استفاده از R19 برای کاهش ولتاژ تا حدود 10VDC ، از گرم شدن بیش از حد U6 جلوگیری می کنیم. بنابراین این یک روش تبدیل قدرت کارآمد نیست ، اما برای اهداف ما کار می کند. توجه: در اینجا حداقل از یک مقاومت 1/2 وات یا بیشتر استفاده کنید. مدار حدود 55 مائولار می کشد ، بنابراین اتلاف توان در R19 بر اساس P = I ** 2*R یا P = 55ma x 55ma x 120 اهم = 0.363W تقریبا 1/3 وات است. U6 بعدی خروجی 5V DC خالص با C4 و C5 در خروجی را برای فیلتر کردن هرگونه نویز در خط برق 5V خروجی می دهد. این 5 ولت DC تمام IC های روی برد را تغذیه می کند.

ما از TR1 نمونه ای از سیگنال AC بدون فیلتر را گرفته و آن را با پتانسیومتر RV1 تغذیه می کنیم که برای تنظیم سطح تغذیه بر روی آشکارساز متقاطع استفاده می شود. R18 و R17 یک تقسیم کننده ولتاژ ایجاد می کنند تا سطح ولتاژ AC ورودی را بیشتر کاهش دهد. به یاد داشته باشید که این جریان در ولتاژ 12 ولت جریان دارد و ما باید آن را به کمتر از 5 ولت کاهش دهیم تا با آشکارساز متقاطع ما کار کند. تغذیه شده توسط 5VDC R15 و R16 محدودیت جریان را ایجاد می کند در حالی که D1 و D2 برای جلوگیری از رانندگی بیش از حد op-amp U5 در نظر گرفته شده است. در پیکربندی نشان داده شده خروجی U5 در پین 1 هر بار که موج سینوسی ورودی از مثبت به منفی تغییر می کند بین +5 ولت و 0 ولت متغیر است. این یک موج مربعی 60 هرتز ایجاد می کند که به میکروکنترلر U4 تغذیه می شود. برنامه بارگذاری شده در U4 سپس از این موج مربعی 60 هرتز برای افزایش ساعت در هر دقیقه و ساعت استفاده می کند. نحوه انجام این کار در بخش برنامه نرم افزار و نظرات نرم افزار مورد بحث قرار می گیرد.

U7 از 744 HC595 shift record استفاده می شود زیرا تعداد محدودی پین دیجیتال روی ریزپردازنده داریم ، بنابراین از آن برای گسترش تعداد خروجی ها استفاده می شود. ما از 4 پین دیجیتالی در ریزپردازنده استفاده می کنیم اما می توانیم 7 قسمت روی صفحه را از طریق 74HC595 کنترل کنیم. این امر با جابجایی الگوهای از پیش تعیین شده بیت ها ، ذخیره شده در میکروکنترلر و نشان دادن هر رقمی که باید نمایش داده شود ، به ثبت شیفت انجام می شود.

صفحه نمایش مورد استفاده در اینجا یک آند معمولی است ، بنابراین ما باید سطوح سیگنال را که از 74HC595 خارج می شود وارونه کنیم تا بخشی را روشن کنیم. هنگامی که یک بخش باید روشن شود ، سیگنال خروجی از پین خروجی 74HC595 در +5V خواهد بود ، اما برای روشن کردن آن بخش صفحه ، ما نیاز داریم که پینی که روی صفحه نمایش تغذیه می کند در 0V باشد. بنابراین برای انجام این کار به اینورترهای شش ضلعی U2 و U3 نیاز داریم. متأسفانه یک IC اینورتر فقط می تواند 6 وارونگی را کنترل کند ، بنابراین ما به دو عدد از آنها احتیاج داریم ، اگرچه در مورد دوم فقط از یکی از 6 دروازه استفاده می کنیم. متاسفانه ضایعات ممکن است بپرسید چرا در اینجا از صفحه نمایش نوع کاتد معمولی استفاده نمی کنید و U2 و U3 را حذف نمی کنید؟ خوب پاسخ این است که شما می توانید ، من به طور اتفاقی یک نوع آند معمولی در منبع قطعات خود دارم. اگر می خواهید یا می خواهید از یک صفحه معمولی نوع کاتد استفاده کنید ، فقط U2 و U3 را حذف کرده و Q1 - Q4 را دوباره سیم کشی کنید تا کلکتورهای ترانزیستور به پایه های صفحه وصل شوند و فرستنده های ترانزیستور به زمین متصل شوند. Q1 - Q4 کنترل می کند که کدام یک از چهار صفحه نمایش 7 بخش فعال است. این توسط میکروکنترلر ، از طریق پین های متصل به پایه ترانزیستورهای Q1 - Q4 کنترل می شود.

دکمه های افزایش و تنظیم برای تنظیم دستی ساعت صحیح هنگام استفاده از ساعت استفاده می شود. هنگامی که دکمه تنظیم را یکبار فشار می دهید ، می توانید از دکمه افزایش برای عبور از ساعت های نشان داده شده روی صفحه استفاده کنید. هنگامی که دکمه تنظیم مجدداً فشار داده می شود ، می توانید از دکمه افزایش برای گذراندن دقیقه های نمایش داده شده روی صفحه استفاده کنید. وقتی دکمه Set برای سومین بار فشرده می شود ، زمان تنظیم می شود. R13 و R14 هنگام استفاده از پین های میکروکنترلر مربوط به این دکمه ها را پایین می کشند.

توجه داشته باشید که در اینجا ما U4 (Atmega328p) را از روی برد اولیه نمونه اولیه Arduino UNO برداشته و با بقیه مدارمان آن را روی برد نمونه قرار داده ایم. برای انجام این کار ، ما باید حداقل کریستال X1 و خازن های C1 و C2 را برای تأمین منبع ساعت برای میکروکنترلر ، پایه 1 ، پایه تنظیم مجدد ، بالا و قدرت 5VDC تهیه کنیم.

مرحله 2: Breadboard Circuit خود

Breadboard مدار شما
Breadboard مدار شما
Breadboard مدار شما
Breadboard مدار شما

صرف نظر از اینکه آیا مدار را دقیقاً همانطور که در نمودار نشان داده شده است می سازید یا شاید از ترانسفورماتور ، نوع صفحه نمایش یا اجزای دیگر استفاده می کنید ، ابتدا باید مدار را به منظور اطمینان از کارکرد و نحوه عملکرد آن باند برد کنید.

در تصاویر می بینید که برای نان بردن همه چیز به چند تخته و همچنین یک برد Arduino Uno نیاز دارید. بنابراین برای برنامه ریزی میکروکنترلر یا آزمایش یا ایجاد تغییرات در نرم افزار ، ابتدا به IC میکروکنترلر بر روی برد UNO نیاز دارید تا بتوانید کابل USB را به آن و رایانه خود متصل کنید تا برنامه بارگذاری شود یا تغییرات نرم افزاری انجام شود.

هنگامی که ساعت را روی تخته نورد کار کردید و میکروکنترلر خود را برنامه ریزی کردید ، می توانید آن را جدا کرده و آن را به پریز در ساعت دائمی آخرین ساخت خود بر روی برد اولیه وصل کنید. هنگام انجام این کار ، حتما اقدامات احتیاطی ضد استاتیک را رعایت کنید. هنگام کار با ریزپردازنده از مچ بند ضد استاتیک استفاده کنید.

مرحله 3: ساخت مدار در Protoboard

ساخت مدار در Protoboard
ساخت مدار در Protoboard
ساخت مدار در Protoboard
ساخت مدار در Protoboard

مدار بر روی قطعه ای از تخته نمونه اولیه و سیم به نقطه به نقطه با استفاده از سیم پیچ 30 سیم AWG ساخته شده است. نتیجه سخت و قابل اطمینان را ارائه می دهد. از آنجا که ترانسفورماتور من دارای یک پلاگین 5 میلی متری در انتهای کابل است ، من با برش ، خم و سوراخ کردن یک قطعه نوار آلومینیومی تخت 1/2 اینچی ، سفارشی زن مربوطه را در پشت کابل نصب کردم تا سفارشی شود. براکت و سپس آن را با مهره و پیچ های کوچک 4-40 به برد بچسبانید. شما فقط می توانید اتصال را قطع کرده و سیم های برق باقیمانده را به برد بچسبانید و حدود 20 دقیقه در کار خود صرفه جویی کنید ، اما من نمی خواستم ترانسفورماتور به طور دائم متصل شود به هیئت مدیره

مرحله 4: ایجاد یک سوکت برای صفحه نمایش و دادن پاها به آن

ایجاد یک سوکت برای صفحه نمایش و دادن پاها به آن
ایجاد یک سوکت برای صفحه نمایش و دادن پاها به آن
ایجاد یک سوکت برای صفحه نمایش و دادن پاها به آن
ایجاد یک سوکت برای صفحه نمایش و دادن پاها به آن
ایجاد یک سوکت برای صفحه نمایش و دادن پاها به آن
ایجاد یک سوکت برای صفحه نمایش و دادن پاها به آن

از آنجا که صفحه نمایش دارای 16 پین است ، 8 پین در هر طرف ، با فاصله پین که بیشتر از سوکت IC 16 پین استاندارد است ، ما باید اندازه سوکت را متناسب با صفحه نمایش تنظیم کنیم. شما می توانید این کار را به سادگی با استفاده از یک جفت برش سیم انجام دهید تا پلاستیکی را که دو طرف سوکت را به هم متصل می کند ، جدا کرده و آنها را جداگانه با فاصله ای که با فاصله پین های صفحه نمایش مطابقت دارد ، به صفحه بچسبانید. بهتر است این کار را انجام دهید تا مجبور نباشید مستقیماً به پین های نمایشگر لحیم کنید و صفحه را در معرض حرارت بیش از حد قرار دهید. در تصویر بالا می توانید سوکت را که این کار را انجام داده ام در بالای صفحه مشاهده کنید.

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

مرحله 5: بررسی سیم کشی برد مدار و آماده سازی برای کالیبراسیون

بررسی سیم کشی برد مدار و آماده سازی برای کالیبراسیون
بررسی سیم کشی برد مدار و آماده سازی برای کالیبراسیون

هنگامی که برد مدار وصل می شود ، اما قبل از اتصال IC یا نمایش یا روشن کردن آن ، ایده خوبی است که اتصالات برد را با DVM بررسی کنید. شما می توانید اکثر DVM ها را طوری تنظیم کنید که در صورت وجود تداخل ، آنها بوق بزنند. DVM خود را در این حالت تنظیم کنید و سپس با دنبال کردن نمودار مدار ، تا حد امکان اتصالات مدار را بررسی کنید. مدار باز یا نزدیک به آن را بین نقاط +5V و Ground بررسی کنید. بصری بررسی کنید که آیا همه اجزا به پین های صحیح متصل شده اند.

سپس ترانسفورماتور خود را به مدار وصل کرده و آن را روشن کنید. قبل از اتصال هرگونه IC یا صفحه نمایش ، مطمئن شوید که دقیقاً 5 ولت DC روی ریل برق 5 ولت با محدوده یا DVM دارید.

در مرحله بعدی فقط IC OP-Amp U5 را آماده کنید تا برای مرحله بعدی آماده شوید. در اینجا ما بررسی می کنیم که مدار متقاطع ما موج مربعی تولید می کند و پتانسیومتر RV1 را برای سیگنال تمیز 60 هرتز تنظیم می کنیم.

مرحله 6: کالیبراسیون مدار

کالیبراسیون مدار
کالیبراسیون مدار
کالیبراسیون مدار
کالیبراسیون مدار

تنها کالیبراسیون انجام شده این است که پتانسیومتر RV1 را برای سطح صحیح سیگنال تغذیه کننده متقاطع روی آشکارساز تنظیم کنید. دو راه برای انجام این کار وجود دارد:

1. یک پروب محدوده در پین 1 از U5 قرار دهید و مطمئن شوید که سیم زمین پروب محدوده را به زمین مدار وصل کرده اید. سپس RV1 را تنظیم کنید تا زمانی که یک موج مربعی تمیز داشته باشید همانطور که در تصویر بالا نشان داده شده است. اگر RV1 را به یک طرف یا آن طرف دیگر بیش از حد تنظیم کنید ، یا موجی مربعی یا موجی مربعی مخدوش نخواهید داشت. اطمینان حاصل کنید که فرکانس موج مربعی 60 هرتز است. اگر محدوده مدرن دارید احتمالاً فرکانس آن را به شما می گوید. اگر شما مانند من دامنه وسیعی دارید ، مطمئن شوید که دوره موج مربعی تقریباً 16.66 میلی ثانیه یا 1/60 ثانیه است.

2. با استفاده از شمارنده فرکانس یا DVM در حالت فرکانس ، فرکانس را در پین 1 U5 اندازه گیری کرده و RV1 را دقیقاً برای 60 هرتز تنظیم کنید.

پس از اتمام این کالیبراسیون ، مدار را خاموش کرده و تمام IC ها و صفحه نمایش را وصل کنید تا ساختار مدار تکمیل شود.

مرحله 7: برنامه آردوینو

این برنامه کاملاً کامنت گذاری شده است تا بتوانید جزئیات هر مرحله را دریابید. به دلیل پیچیدگی برنامه ، توصیف هر مرحله دشوار است ، اما در سطح بسیار بالا نحوه عملکرد آن به شرح زیر است:

ریزپردازنده موج مربعی ورودی 60 هرتز را دریافت می کند و 60 چرخه را شمارش می کند و تعداد ثانیه ها را پس از هر 60 چرخه افزایش می دهد. هنگامی که تعداد ثانیه ها به 60 ثانیه یا 3600 چرخه می رسد ، تعداد دقیقه افزایش می یابد و تعداد ثانیه ها به صفر بازنشانی می شود. هنگامی که تعداد دقیقه ها به 60 دقیقه می رسد ، تعداد ساعت افزایش می یابد و تعداد دقیقه به صفر بازنشانی می شود. تعداد ساعت ها پس از 13 ساعت به 1 تنظیم می شود ، بنابراین این ساعت 12 ساعته است. اگر می خواهید یک ساعت 24 ساعته داشته باشید ، فقط برنامه را تغییر دهید تا ساعت ها پس از 24 ساعت به صفر بازنشانی شود.

این یک پروژه آزمایشی است ، بنابراین من سعی کردم از یک حلقه Do-while برای سرکوب بازگرداندن سوئیچ بر روی دکمه های تنظیم و افزایش استفاده کنم. به خوبی کار می کند. هنگامی که دکمه Set را یکبار فشار می دهید ، می توانید از دکمه افزایش برای گذراندن ساعات نمایش داده شده روی صفحه استفاده کنید. هنگامی که دکمه تنظیم مجدداً فشار داده می شود ، می توانید از دکمه افزایش برای گذراندن دقیقه های نمایش داده شده روی صفحه استفاده کنید. وقتی دکمه Set برای سومین بار فشرده می شود ، زمان تنظیم می شود و ساعت شروع به کار می کند.

الگوهای 0 و 1 که برای نمایش هر عدد در نمایشگرهای 7 قسمتی استفاده می شوند در آرایه ای به نام Seven_Seg ذخیره می شوند. بسته به زمان ساعت فعلی ، این الگوها به IC 74HC595 تغذیه شده و به صفحه نمایش ارسال می شوند. کدام یک از 4 رقم صفحه نمایش در هر زمان برای دریافت این داده ها توسط ریزپردازنده از طریق صفحه نمایش Dig 1 ، 2 ، 3 ، 4 پین کنترل می شود. هنگامی که مدار روشن می شود ، برنامه ابتدا یک روال آزمایشی به نام Test_Clock اجرا می کند که اعداد صحیح را برای روشن شدن هر صفحه با شمارش 0 تا 9 ارسال می کند. بنابراین اگر این را هنگام روشن شدن مشاهده کردید می دانید که همه چیز را به درستی ساخته اید به

مرحله 8: لیست قطعات

1 - ترانسفورماتور 120VAC به 12VAC تقریبا 100ma یا بیشتر 1 - برد نمونه حدود 3.5 "x 3.5" 1 - صفحه 4 رقمی 7 بخش YSD -439K2B -35 یا معادل آن (Sparkfun) 2 - دکمه های کوچک نصب PCB NO (هر کدام) 4 - 2N3904 ترانزیستورهای NPN 8 - مقاومتهای 330 اهم 2 - 74LS04 اینورترهای شش ضلعی 1 - 74HC595 سریال به موازات 8 بیت شیفت 1 - LM358 OP -AMP (مقایسه کننده) 1 - میکروکنترلر ATMEGA328P (Creatron) 4 - مقاومتهای 4.7K7 - مقاومتهای 10K دیودهای 1 - 120 اهم ، 1/2W یا 1W مقاومت 1 - PCB پایه 10K پتانسیومتر 1 - 470uF 25V خازن 1 - 7805 TO220 تنظیم کننده ولتاژ بسته 1 - 10uF 10V خازن 2 - 0.1 uF 10V خازن 1 - 16MHz کریستال (Sparkfun) 2 - 22pF خازن 1 - جک قدرت زن (اختیاری برای نصب دوشاخه نر در صورت وجود روی ترانسفورماتور دیواری) 2 - 16 پین IC سوکت 2 - 14 پین IC سوکت 1 - 8 پین IC سوکت 1 - 28 پین IC سوکت 2 - 1 "طول تقریباً #4 یا #6 پیچ و مهره های منطبق 2 - 1/ 4 پیچ 4 اینچی بلند #4-40 و مهره های تطبیق پذیر 1 - قطعه ای از برش سفارشی نوار آلومینیومی تخت 1/2 اینچی و به اندازه حفر شده است

#30 سیم پیچ AWG سیم پیچ#22 سیم AWG لحیم

توصیه شده: