فهرست مطالب:

LEDura - ساعت LED آنالوگ: 12 مرحله (همراه با تصاویر)
LEDura - ساعت LED آنالوگ: 12 مرحله (همراه با تصاویر)

تصویری: LEDura - ساعت LED آنالوگ: 12 مرحله (همراه با تصاویر)

تصویری: LEDura - ساعت LED آنالوگ: 12 مرحله (همراه با تصاویر)
تصویری: Lesson 99: Building Arduino Digital Clock using DS3231 LCD and Seven Segment Display 2024, جولای
Anonim
LEDura - ساعت LED آنالوگ
LEDura - ساعت LED آنالوگ
LEDura - ساعت LED آنالوگ
LEDura - ساعت LED آنالوگ
LEDura - ساعت LED آنالوگ
LEDura - ساعت LED آنالوگ

پروژه های Tinkercad »

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

علاوه بر نشان دادن زمان ، ساعت همچنین می تواند دمای اتاق را نشان دهد و می تواند یک دکوراسیون بسیار زیبا در اتاق باشد. هر 15 دقیقه ، ساعت جلوه های ویژه ای نیز ایجاد می کند - ویدیو همه آنها را نشان می دهد ، حتماً آن را بررسی کنید. با استفاده از 2 دکمه و پتانسیومتر ، کاربر می تواند بین حالت های مختلف و رنگ های مختلف را به دلخواه خود انتخاب کند. همچنین آن را ارتقا دادم تا در صورت تاریک شدن اتاق LED ها به طور خودکار کم شوند ، بنابراین در طول شب مزاحمتی برای کاربر ایجاد نمی شود.

ساعت را می توان روی میز کار ، میز تخت خواب قرار داد یا از دیوار آویزان کرد.

توجه: تصاویر به دلیل وضوح بالای تصویر در واقعیت خوب نیستند.

مرحله 1: چگونه آن را بخوانیم؟

چگونه آن را بخوانیم؟
چگونه آن را بخوانیم؟

ساعت دارای 2 حلقه است - یکی کوچکتر برای نمایش ساعت و یکی بزرگتر برای نمایش دقیقه و ثانیه. برخی از LED ها همیشه می درخشند - قطب نما به اصطلاح که موقعیت اصلی ساعت را نشان می دهد. در زنگ ساعت 3 ، 6 ، 9 و 12'o ساعت ، در زنگ دقیقه 15 ، 30 ، 45 و 0 دقیقه را نشان می دهد.

مرحله 2: آنچه شما نیاز دارید

آنچه شما نیاز دارید
آنچه شما نیاز دارید

مواد:

  • 1x آردوینو نانو (می توانید از هر آردوینو دیگری نیز استفاده کنید)
  • 1 ماژول DS3231 RealTimeClock
  • 1x حلقه led آدرس پذیر - 60 LED
  • 1x حلقه led آدرس پذیر - 24 LED
  • 2 دکمه (NO - معمولاً باز است)
  • پتانسیومتر 1x 100 کیلو اهم
  • منبع تغذیه 1x 5V (قابلیت انتقال 1 آمپر)
  • 1x اتصال منبع
  • برخی از سیم ها
  • مقاومت 1x 10 کیلو اهم
  • 1 برابر مقاومت در برابر نور
  • پیش صفحه (اختیاری)
  • اتصالات سیم بلوک ترمینال (اختیاری)
  • چوب به ضخامت 25 میلی متر ، اندازه حداقل 22 سانتی متر در 22 سانتی متر
  • ضخامت 1 میلی متر پلاستیک PVC اندازه 20cmx20xm

ابزارها:

  • ابزارهای اساسی برای ساخت وسایل الکترونیکی (لحیم کاری ، انبردست ، پیچ گوشتی ،…)
  • دستگاه حفاری
  • چسب حرارتی تفنگی
  • کاغذ ماسه و مقداری لاک چوبی
  • دستگاه CNC (شاید یکی از دوستان آن را داشته باشد)

مرحله 3: قطعات الکترونیکی - پیش زمینه

قطعات الکترونیکی - پیش زمینه
قطعات الکترونیکی - پیش زمینه
قطعات الکترونیکی - پیش زمینه
قطعات الکترونیکی - پیش زمینه
قطعات الکترونیکی - پیش زمینه
قطعات الکترونیکی - پیش زمینه

DS3231

ما می توانیم زمان را با استفاده از نوسان ساز Arduinos و تایمر تعیین کنیم ، اما من تصمیم گرفتم از ماژول اختصاصی Real Time Clock (RTC) استفاده کنم ، که می تواند زمان را پیگیری کند حتی اگر ساعت را از منبع تغذیه جدا کنیم. برد DS3231 دارای باتری است که در صورت عدم اتصال ماژول به منبع تغذیه ، برق را تأمین می کند. همچنین در بازه های زمانی طولانی تر از منبع ساعت Arduinos دقیق تر است.

DS3231 RTC از رابط I2C برای ارتباط با میکروکنترلر استفاده می کند-استفاده از آن بسیار ساده است و ما برای برقراری ارتباط با آن فقط به 2 سیم نیاز داریم. ماژول همچنین دارای سنسور دما است که در این پروژه مورد استفاده قرار می گیرد.

مهم: اگر قصد دارید از باتری غیرقابل شارژ برای ماژول RTC استفاده کنید ، باید مقاومت 200 اهم یا دیود 1N4148 را لحیم کنید. در غیر این صورت ممکن است باتری شما منفجر شود. اطلاعات بیشتر را می توان در این پیوند یافت.

حلقه LED WS2812

تصمیم گرفتم از 60 حلقه LED برای پیگیری دقیقه و 24 حلقه LED برای ساعت ها استفاده کنم. می توانید آنها را در Adafruit (حلقه neoPixel) یا برخی از نسخه های ارزان قیمت در eBay ، Aliexpress یا سایر فروشگاه های اینترنتی پیدا کنید. تنوع زیادی بین نوارهای led قابل آدرس دهی وجود دارد و اگر برای اولین بار است که با آنها بازی می کنید ، توصیه می کنم برخی از توضیحات استفاده را بخوانید - در اینجا چند لینک مفید وجود دارد:

https://www.tweaking4all.com/hardware/arduino/adr…

https://randomnerdtutorials.com/guide-for-ws2812b…

نوار LED آدرس پذیر دارای 3 کانکتور است: 5V ، GND و DI/DO. دو مورد اول مربوط به تغذیه LED ها است ، دومی مربوط به داده ها است. هنگام اتصال حلقه به آردوینو مراقب باشید - خط داده شما باید به پین DI (data IN) متصل باشد.

آردوینو

من از آردوینو نانو استفاده می کنم زیرا کوچک و به اندازه کافی برای این پروژه کافی است. تقریباً می توانید از هر آردوینو دیگری استفاده کنید ، اما در هنگام اتصال همه چیز به آن باید مراقب باشید. دکمه ها و حلقه های LED می توانند در یک پین باشند ، اما اتصالات I2C (برای ماژول RTC) ممکن است از پلت فرم به پلتفرم دیگر متفاوت باشد - برگه داده آنها را بررسی کنید.

مرحله 4: الکترونیک - منبع تغذیه

الکترونیک - منبع تغذیه
الکترونیک - منبع تغذیه

آردوینو و نوار LED هر دو باید دارای منبع تغذیه 5 ولت باشند تا بدانیم به کدام ولتاژ نیاز است. از آنجا که LED زنگ می زند ، آمپر زیادی می کشد ، نمی توانیم آن را مستقیماً با آردوینو ، که حداکثر 20 میلی آمپر بر خروجی دیجیتالی آن مقاومت می کند ، تغذیه کنیم. با اندازه گیری های من ، حلقه های LED می توانند با هم تا 500 میلی آمپر را جذب کنند. به همین دلیل من یک آداپتور خریداری کردم که می تواند تا 1 آمپر را تامین کند.

با همان منبع تغذیه می خواهیم Arduino و LED ها را تغذیه کنیم - در اینجا باید مراقب باشید.

هشدار! هنگام تست نوار LED بسیار مراقب باشید - آداپتور برق نباید به آردوینو متصل شود ، هنگامی که آردوینو با اتصال USB به رایانه متصل است (می توانید به پورت USB کامپیوتر خود آسیب برسانید).

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

مرحله 5: الکترونیک - لحیم کاری

الکترونیک - لحیم کاری
الکترونیک - لحیم کاری
الکترونیک - لحیم کاری
الکترونیک - لحیم کاری
الکترونیک - لحیم کاری
الکترونیک - لحیم کاری
الکترونیک - لحیم کاری
الکترونیک - لحیم کاری

وقتی همه قطعات را جمع آوری می کنید زمان آن است که آنها را به هم لحیم کنید.

از آنجا که می خواستم سیم کشی را مرتب کنم ، از ورق ورق و چند کانکتور بلوک ترمینال برای سیم ها استفاده کردم ، بنابراین در صورت اصلاح می توانم آنها را از برق جدا کنم. این اختیاری است - همچنین می توانید سیم ها را مستقیماً به آردوینو لحیم کنید.

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

مرحله 6: نرم افزار - پیش زمینه

آردوینو IDE

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

کتابخانه

تصمیم گرفتم به جای Adafruit محبوب از کتابخانه FastLED استفاده کنم. این برنامه دارای برخی از توابع ریاضی شسته و رفته است که با آنها می توانید جلوه های فوق العاده ای را انجام دهید (برای توسعه دهندگان!). شما می توانید کتابخانه را در مخزن GitHub آنها پیدا کنید ، اما من فایل.zip نسخه ای را که در کد خود استفاده می کنم اضافه کردم.

اگر تعجب می کنید که چگونه کتابخانه خارجی را به Arduino IDE اضافه کنید ، می توانید برخی از دستورالعمل های موجود را بررسی کنید

برای ماژول ساعت ، من از کتابخانه Arduino برای ساعت DS3231 زمان واقعی (RTC) (پیوند) استفاده کردم ، که می توانید به راحتی آن را در Arduino IDE نصب کنید. وقتی در IDE هستید ، روی Sketch → Include library → Manage libraries … کلیک کنید و سپس جستجوی خود را با نام بالا فیلتر کنید.

توجه: به دلایلی در حال حاضر نمی توانم فایل های.zip را اضافه کنم. کتابخانه را می توانید در مخزن GitHub من بیابید.

مرحله 7: نرم افزار - کد

نرم افزار - کد
نرم افزار - کد
نرم افزار - کد
نرم افزار - کد

ساختار

برنامه با 4 فایل ساخته شده است:

  • LEDclokc.ino این برنامه اصلی Arduino است ، که در آن می توانید عملکردهایی برای کنترل کل ساعت پیدا کنید - آنها با پیشوند CLOCK_ شروع می شوند.
  • در اینجا LEDclokc.h تعریف اتصال پین و برخی تنظیمات ساعت است.
  • ring.cpp و ring.h در اینجا کد من برای کنترل حلقه های LED است.

LEDclock.h

در اینجا تمام تعاریف ساعت را خواهید یافت. در ابتدا ، تعاریفی برای سیم کشی وجود دارد. مطمئن شوید که آنها همان اتصالات شما هستند. سپس تنظیمات ساعت وجود دارد - در اینجا می توانید ماکرو را برای تعدادی حالت که ساعت دارد پیدا کنید.

LEDclock.ino

در نمودار ، حلقه اصلی نشان داده شده است. کد ابتدا بررسی می کند که آیا دکمه ای فشار داده شده است یا خیر. به دلیل ماهیت سوئیچ ها ، ما باید از روش debbouncing برای خواندن مقادیر آنها استفاده کنیم (می توانید در این مورد در پیوند بیشتر بخوانید).

هنگامی که دکمه 1 را فشار می دهید ، حالت متغیر 1 افزایش می یابد ، اگر دکمه 2 را فشار دهید ، نوع متغیر بالا می رود. ما از این متغیرها برای تعیین اینکه کدام حالت ساعت را می خواهیم ببینیم استفاده می کنیم. اگر هر دو دکمه به طور همزمان فشار داده شوند ، تابع CLOCK_setTime () فراخوانی می شود تا بتوانید زمان ساعت را تغییر دهید.

کد بعدی مقدار پتانسیومتر را می خواند و آن را در متغیر ذخیره می کند - با این کاربر متغیر می تواند رنگ ساعت ، روشنایی و غیره را تغییر دهد.

سپس یک عبارت switch-case وجود دارد. در اینجا ما تعیین می کنیم که ساعت در حال حاضر در کدام حالت است و در آن حالت ، عملکرد مربوطه فراخوانی می شود که رنگ LED ها را تنظیم می کند. می توانید حالت های ساعت خود را اضافه کرده و توابع را دوباره بنویسید یا تغییر دهید.

همانطور که در کتابخانه FastLED توضیح داده شده است ، باید در انتها تابع FastLED.show () را فراخوانی کنید که LED ها را به رنگی که قبلاً تنظیم کرده بودیم تبدیل می کند.

می توانید توضیحات بسیار دقیق تری بین خطوط کد پیدا کنید

کد کامل در فایل های زیر در زیر پیوست شده است.

نکته: می توانید کل پروژه را در مخزن GitHub من پیدا کنید. در اینجا اگر من تغییری در آن اضافه کنم ، کد نیز به روز می شود.

مرحله 8: ساعت را بسازید

ساعت را بسازید
ساعت را بسازید
ساعت را بسازید
ساعت را بسازید
ساعت را بسازید
ساعت را بسازید

قاب ساعت

قاب ساعت را با استفاده از دستگاه CNC و چوب ضخامت 25 میلی متر ساختم. می توانید طرح ترسیم شده در ProgeCAD را در زیر پیوست کنید. شکاف های حلقه LED کمی بزرگتر هستند ، زیرا تولیدکنندگان فقط اندازه قطر خارجی را ارائه می دهند - داخلی ممکن است بسیار متفاوت باشد … در پشت ساعت ، فضای زیادی برای وسایل الکترونیکی و سیم ها وجود دارد.

حلقه های PVC

از آنجا که LED ها بسیار روشن هستند ، خوب است که آنها را به نحوی پخش کنیم. ابتدا با سیلیکون شفاف ، که کار پخش را انجام می دهد ، امتحان کردم ، اما کاملاً کثیف است و به سختی می توان آن را در بالا صاف کرد. به همین دلیل من یک قطعه پلاستیک PVC "شیر" 20x20 سانتی متر سفارش دادم و دو حلقه را با دستگاه CNC در آن بریدم. می توانید از کاغذ سنباده برای نرم شدن لبه ها استفاده کنید تا حلقه ها در شکاف ها لغزند.

سوراخ های جانبی

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

مرحله 9: در چوب بکشید

در چوب بکشید
در چوب بکشید
در چوب بکشید
در چوب بکشید
در چوب بکشید
در چوب بکشید

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

برای اینکه دایره ها به زیبایی گرد شوند ، من از یک تکه آلومینیوم استفاده کردم ، یک سوراخ در آن ایجاد کردم و لبه های سوراخ را با آهن لحیم کاری دنبال کردم (به تصویر نگاه کنید). اطمینان حاصل کنید که آلومینیوم را محکم در دست گرفته اید تا هنگام کشیدن دچار لغزش نشود. و هنگام انجام این کار برای جلوگیری از صدمات احتیاط کنید.

اگر نقشه می کشید و می خواهید آنها به خوبی با پیکسل های ساعت هم تراز شوند ، می توانید از "حالت تعمیر و نگهداری" استفاده کنید که به شما نشان می دهد پیکسل ها در کجا قرار خواهند گرفت (به فصل مونتاژ بروید).

از چوب محافظت کنید

وقتی از ساعت راضی هستید ، وقت آن است که آن را سنباده بزنید و با لاک چوب از آن محافظت کنید. من برای نرم کردن لبه ها از کاغذ سنباده بسیار نرم (مقدار 500) استفاده کردم. من به شما توصیه می کنم از لاک چوب شفاف استفاده کنید ، بنابراین رنگ چوب تغییر نمی کند. مقدار کمی لاک را روی برس بگذارید و آن را در جهت یکساله در چوب بکشید. حداقل 2 بار آن را تکرار کنید.

مرحله دهم: Assamble

Assamble
Assamble
Assamble
Assamble
Assamble
Assamble

صنوبر دکمه ها و پتانسیومتر را روی موقعیت خود قرار می دهد - اگر سوراخ های شما خیلی بزرگ هستند ، می توانید از مقداری چسب حرارتی برای ثابت کردن آنها در محل استفاده کنید. سپس نوار حلقه را در شکاف های آن قرار دهید و سیم های آن را به آردوینو وصل کنید. قبل از چسباندن حلقه LED به جای خود ، بهتر است مطمئن شوید که پیکسل های LED در مکان مناسب قرار گرفته اند - مرکز و تراز نقشه. برای این منظور من حالت اصطلاحاً Maintenance را اضافه کردم که تمام پیکسل های مهم (0 ، 5 ، 10 ، 15 ، … در زنگ دقیقه و 3 ، 6 ، 9 و 12 در زنگ ساعت) را نمایش می دهد. قبل از اتصال منبع تغذیه به کانکتور ، می توانید با فشار دادن و نگه داشتن هر دو دکمه وارد این حالت شوید. با فشردن هر دکمه می توانید از این حالت خارج شوید.

وقتی حلقه های LED خود را تراز کردید ، مقداری چسب داغ بمالید و آنها را در حالی که چسب سفت می شود نگه دارید. سپس حلقه های PVC خود را بردارید و دوباره: مقداری چسب داغ روی LED ها بمالید ، آنها را سریع قرار دهید و آنها را برای چند ثانیه نگه دارید. در پایان ، وقتی مطمئن شدید که همه چیز کار می کند ، می توانید تخته (یا آردوینو) را به صورت چوبی به چوب بچسبانید. نکته: از چسب زیاد استفاده نکنید. فقط مقدار کمی به طوری که در یک مکان نگهداری می شود اما اگر می خواهید چیزی را بعداً تغییر دهید می توانید به راحتی آن را حذف کنید.

در انتها ، باتری سلول سکه ای را به نگهدارنده آن وارد کنید.

مرحله 11: ارتقاء - مقاومت در برابر نور

ارتقا - مقاومت در برابر نور
ارتقا - مقاومت در برابر نور
ارتقا - مقاومت در برابر نور
ارتقا - مقاومت در برابر نور
ارتقا - مقاومت در برابر نور
ارتقا - مقاومت در برابر نور

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

برای این منظور ، از سنسور نور - مقاومت عکس استفاده کردم. مقاومت آن به میزان قابل توجهی افزایش می یابد. تا زمانی که تاریک است تا چند مگا اهم و هنگامی که نوری روی آن تابیده می شود فقط چند صد اهم خواهد داشت. آنها به همراه یک مقاومت معمولی تقسیم ولتاژ را تشکیل می دهند. بنابراین وقتی مقاومت سنسور نور تغییر می کند ، ولتاژ پین آنالوگ آردوینو (که می توانیم اندازه گیری کنیم) نیز تغییر می کند.

قبل از لحیم کاری و مونتاژ هر مدار ، عاقلانه است که ابتدا آن را شبیه سازی کنید ، بنابراین می توانید رفتار را مشاهده کرده و اصلاح کنید. با کمک Autocad Tinkercad می توانید دقیقاً همین کار را انجام دهید! فقط با چند کلیک اجزا را اضافه کردم ، آنها را وصل کردم و کد را نوشتم. در شبیه سازی می توانید نحوه تغییر روشنایی LED ها را با توجه به مقدار مقاومت عکس مشاهده کنید. این بسیار ساده و مستقیم است - شما می توانید با مدار بازی کنید.

پس از شبیه سازی ، زمان اضافه کردن ویژگی به ساعت فرا رسید. من سوراخی در مرکز ساعت ایجاد کردم ، مقاومت عکس را چسباندم ، آن را طوری وصل کردم که در مدار دیده می شود و چند خط کد اضافه کردم. در فایل LEDclock.h شما باید این ویژگی را با اعلام USE_PHOTO_RESISTOR به عنوان 1 فعال کنید. همچنین می توانید با تغییر مقدار CLOCK_PHOTO_TRESHOLD ، میزان روشنایی اتاق را کاهش دهید.

مرحله 12: لذت ببرید

هنگامی که برای اولین بار آن را روشن می کنید ، ساعت مقداری زمان تصادفی نشان می دهد. با فشردن همزمان هر دو دکمه می توانید آن را تنظیم کنید. برای انتخاب زمان مناسب ، دکمه را بچرخانید و با فشار دادن هر دکمه آن را تأیید کنید.

من از پروژه ای بسیار مرتب در اینترنت الهام گرفتم. اگر تصمیم دارید ساعت را به تنهایی بسازید ، آنها را نیز بررسی کنید! (NeoClock ، Wol Clock ، Arduino Colorful Clock) اگر تا به حال تصمیم گرفته اید که دستورالعمل ها را دنبال کنید ، امیدوارم آن را به اندازه من لذت بخش کرده باشید.

اگر در مراحل ساخت آن با مشکلی روبرو شدید ، با خیال راحت هر س questionالی را در نظرات از من بپرسید - من با خوشحالی سعی می کنم به آن پاسخ دهم!

توصیه شده: