فهرست مطالب:

ساعت LED با استفاده از نئوپیکسل: 4 مرحله (همراه با تصاویر)
ساعت LED با استفاده از نئوپیکسل: 4 مرحله (همراه با تصاویر)

تصویری: ساعت LED با استفاده از نئوپیکسل: 4 مرحله (همراه با تصاویر)

تصویری: ساعت LED با استفاده از نئوپیکسل: 4 مرحله (همراه با تصاویر)
تصویری: Marlin Firmware 2.0.x Explained 2024, جولای
Anonim
ساعت LED با استفاده از نئوپیکسل
ساعت LED با استفاده از نئوپیکسل
ساعت LED با استفاده از نئوپیکسل
ساعت LED با استفاده از نئوپیکسل
ساعت LED با استفاده از نئوپیکسل
ساعت LED با استفاده از نئوپیکسل
ساعت LED با استفاده از نئوپیکسل
ساعت LED با استفاده از نئوپیکسل

به آموزش من در مورد نحوه ساخت ساعت LED با استفاده از 60 نئوپیکسل خوش آمدید.

3 پیوست PDF را مشاهده خواهید کرد که یکی برای قسمت های ساعت ، دیگری برای پایه و در نهایت یکی الگو برای کمک به چسباندن بخش ها به یکدیگر است.

بنابراین برای تکمیل این موارد به موارد زیر نیاز دارید

  • حلقه 60 نئوپیکسل در 4 چهارم ارائه می شود. جستجو برای "ws2812 حلقه 60" (12.00 پوند)
  • جستجوی RTC برای "ماژول DS3231" (2.50 پوند)
  • آردوینو نانو (4 پوند)
  • تخته سه لا 3 میلی متر/1/8 اینچ.
  • تکه های سیم امیدوارم مقداری در اطراف داشته باشید؟
  • منبع تغذیه USB 5 ولت نوعي كه بچه هاي شما اتصال را خراب كرده اند.

در زیر مواردی که از باتری لیپو استفاده می کنند را مشاهده می کنید ، اما پس از آزمایش ، ساعت انرژی زیادی مصرف می کرد بنابراین باتری به نفع یک منبع تغذیه USB اصلی کاهش یافت.

  • جستجوی مبدل dc-dc "تقویت کننده مبدل" (3 پوند)
  • مدار شارژ TP4056 جستجو "tp4056" (2 پوند)
  • تک سلولی LiPo 1000Mah. جستجو برای "1000mah lipo 3.7" OR "503450 lipo" (8.00 پوند)

شماره LiPo 503450 است و شاید خوب باشد بدانید که این بدان معناست که طول آن 50 میلی متر عرض 34 میلی متر و عمق آن 5.0 است.

مرحله 1: تکه های چوب

تکه های چوب
تکه های چوب
تکه های چوب
تکه های چوب
تکه های چوب
تکه های چوب

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

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

سوراخهای قسمتهای جلویی باعث می شود که اتصالات لحیم شده در محوطه داخل شوند و قسمت پایین اجازه عبور سیمها را می دهد.

مجموعه تصاویر همچنین نحوه چیده شدن پایه را نشان می دهد.

مرحله 2: سیم کشی حلقه LED

سیم کشی حلقه LED
سیم کشی حلقه LED
سیم کشی حلقه LED
سیم کشی حلقه LED
سیم کشی حلقه LED
سیم کشی حلقه LED
سیم کشی حلقه LED
سیم کشی حلقه LED

چیزهای زیادی برای گفتن در مورد این مرحله وجود ندارد ، اما فقط در صورتی که از نوار WS2812LED استفاده نکرده اید ، آنها هوشمند هستند ، بنابراین هر کدام یک داده در داخل و خارج دارند. در قوس های 15 LED ، PCB تمام اتصالات را کنترل می کند ، اما وقتی به بخش ها می پیوندید ، باید اتصالات برق و داده ها را ایجاد کنید. شما نمی توانید اتصالات را اشتباه بگیرید زیرا آنها در یک دایره قرار دارند ، اما وقتی حلقه را تمام کردید باید یک پیوند در داده IN/OUT وجود نداشته باشد تا بتوانید سیم ها را به داده IN متصل کنید. جایی که سیمها به داده IN متصل می شوند اولین LED یا به درستی صفر شده است.

من تعجب کردم که بهترین راه حل حلقه LED روی حلقه چوبی چگونه بود؟ اما در نهایت تصمیم گرفتم که هر بار از یک طناب و حلقه دور محیط استفاده کنم و یک LED را رد کنم.

مرحله 3: سیم کشی Arduino Nano و Power

سیم کشی آردوینو نانو و پاور
سیم کشی آردوینو نانو و پاور
سیم کشی آردوینو نانو و پاور
سیم کشی آردوینو نانو و پاور
سیم کشی آردوینو نانو و پاور
سیم کشی آردوینو نانو و پاور

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

بنابراین در عوض من از یک شارژر USB 5 ولت استفاده می کنم. من به دلیل سوء استفاده از اتصالات دو کودک کوچک ، تعداد زیادی شارژر USB مرده دارم.

بنابراین چون از LED های WS2812 استفاده می کنیم ، فقط 3 اتصال به آردوینو نانو داریم.

  • قدرت
  • زمین
  • داده ها در نارنجی تا D2 روی نانو

بعد ما RTC داریم این فقط 4 سیم دارد.

  • قدرت 5 ولت
  • زمین
  • SCL (I2C Clock) آبی تا A5 روی نانو
  • SDA (داده I2C) زرد تا A4 روی نانو

سرانجام ما به برق نیاز داریم و این به پایانه قدرت 5 V در نانو می رود. Vin طراحی شده است که دارای ولتاژ بیش از 5 ولت (یعنی 7-12 ولت) و زمین باشد.

مرحله 4: برنامه

من واقعاً از برنامه نویسی لذت می برم ، فقط در آن خیلی خوب نیستم.

مشکل 1

ثانیه و دقیقه به درستی به عنوان یک عدد از 0-59 ارائه شده است. با این حال اولین LED و در نتیجه صفر در پایین قرار دارد. بنابراین این مورد نیاز به اصلاح داشت.

void correctPos (int A)

{if (A 30) {A = A - 31؛ }} temp = A؛ }

مشکل 2

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

void deletePrevenue (int B)

// led قبلی را حذف کنید ، اگر صفر بود پس // 59 را خاموش کنید فقط 1 را کم کنید // و آن را خاموش کنید. {if (B == 0) {strip.setPixelColor (59، 0، 0، 0)؛ // All off} else {strip.setPixelColor (B - 1، 0، 0، 0)؛ // all off}}

مشکل 3

انجام موارد فوق واقعاً خوب بود تا اینکه موقعیت دوم جدید به جای دقیقه قبلی بود. این بدان معناست که دقیقه ای که پس از ثانیه ها به روز می شود ، آن را خاموش می کند! برای ساعت/دقیقه نیز همینطور است

اگر (ثانیه == دقیقه -1)

{strip.setPixelColor (دقیقه -1 ، 0 ، 30 ، 0) ؛ }

مشکل 4

همه چیز در حال شروع به ظاهر خوب است بنابراین اجازه دهید رنگ ها را هنگامی که در یک موقعیت قرار می گیرند ترکیب کنیم؟

اگر (دقیقه == ثانیه)

{strip.setPixelColor (دقیقه ، 15 ، 13 ، 0) ؛ // سبز و قرمز برای زرد شدن. }

مشکل 5

ساعتها با فرمت 24 ساعته شروع می شوند. بنابراین این ابتدا نیاز به اصلاح دارد

اگر (ساعات> 12)

{ساعت = ساعت -12 ؛ }

مشکل 6

و فراموش نکنید که 24 ساعت در روز وجود دارد و من 60 LED دارم. به راحتی می توان آن را 5 برابر کرد

ساعت = ساعت * 5 ؛

مشکل 7

با انجام موارد بالا ، ما اکنون ساعت پرش از 4 LED را داریم اگر از تمام LED ها استفاده کرده و کسری یک ساعت را به درستی نشان دهد ، بسیار بهتر به نظر می رسد؟ دوباره این یک راه حل آسان بود من فقط شماره دقیقه اصلی تقسیم بر 12 را به ساعت اضافه کردم.

ساعت = ساعت + (addMin/12) ؛

مشکل 8

وقتی ساعت یا دقیقه دقیقه در انتها قرار دارد ثانیه ها قبل از آن برای یک ثانیه ناپدید می شوند.

ساعت = اگر (دقیقه == 0)

{if (secs == 59) {strip.setPixelColor (59، 0، 30، 0)؛ // green}} if (hours == 0) {if (secs == 59) {strip.setPixelColor (59، 0 ، 30 ، 0) ؛ // سبز}}

مشکل 9

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

// 12 آوریل 2020 ساعت 11:20 شب با این شماره تماس می گیرید:

//rtc.adjust(DateTime(2020 ، 4 ، 12 ، 23 ، 20 ، 0)) ؛

توصیه شده: