תוכן עניינים:

שעון LED באמצעות Neopixels: 4 שלבים (עם תמונות)
שעון LED באמצעות Neopixels: 4 שלבים (עם תמונות)

וִידֵאוֹ: שעון LED באמצעות Neopixels: 4 שלבים (עם תמונות)

וִידֵאוֹ: שעון LED באמצעות Neopixels: 4 שלבים (עם תמונות)
וִידֵאוֹ: שעון פטנט לדים חדש! יוניסקס, לאישה וגבר, המראה את השעה באמצעות הלדים. מהמם! אלגנטי! ויפה! 2024, יולי
Anonim
שעון LED באמצעות Neopixels
שעון LED באמצעות Neopixels
שעון LED באמצעות Neopixels
שעון LED באמצעות Neopixels
שעון LED באמצעות Neopixels
שעון LED באמצעות Neopixels
שעון LED באמצעות Neopixels
שעון LED באמצעות Neopixels

ברוכים הבאים למדריך שלי כיצד להכין שעון LED באמצעות 60 Neopixels.

תוכלו למצוא 3 קובצי PDF המצורפים מיועדים לפלחי השעון, אחר מיועד לבסיס ולבסוף אחת היא תבנית המסייעת בהדבקת החלקים יחד.

אז כדי להשלים את זה תצטרך את הדברים הבאים

  • טבעת של 60 ניאופיקסלים מגיעה ב -4 רבעים. חפש "ws2812 ring 60" (£ 12.00)
  • חיפוש RTC אחר "מודול DS3231" (£ 2.50)
  • ארדואינו ננו (4 ליש"ט)
  • דיקט 3 מ"מ/1/8 אינץ '.
  • חתיכות חוט. מקווה שיהיה לך קצת בסביבה?
  • יחידת אספקת חשמל USB 5V. הסוג שילדיכם יהרסו את המחבר.

להלן הפריטים המופעלים באמצעות סוללת Lipo אך לאחר הבדיקה, השעון צרך יותר מדי חשמל כך שהסוללה ירדה לטובת ספק כוח 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 חלקים בבת אחת והקטע התחתון נחתך קודם כל סביב ההיקף, ואז מוסר קטע אחד (מאחור) ואז החור נחתך בשני החלקים הנותרים ואז קטע אחר הוסר ונותר רק החלק הקדמי שנותר ואז החריץ לחוטים נחתך.

כאשר כל הנתחים נחתכו, ראשית עליך לבדוק כיצד כולם מתאימים זה לזה ואז להדביק את כולם. בניתי את שלוש השכבות על גבי תוכנית השעון כדי לוודא שהכל עגול כהלכה. כמו כן וודא שאתה מקבל את החלקים התחתונים בכיוון הנכון והפרוסה האמצעית השלמה מותקנת הפוכה כך שתחפוף על המפרקים.

החורים בחלקים הקדמיים מאפשרים למפרקים המולחמים ברבעים לשבת. והחלק התחתון מאפשר לעבור את החוטים.

סדרת התמונות מראה גם כיצד מרכיבים את הבסיס.

שלב 2: חיווט טבעת ה- LED

חיווט טבעת LED
חיווט טבעת LED
חיווט טבעת LED
חיווט טבעת LED
חיווט טבעת LED
חיווט טבעת LED
חיווט טבעת LED
חיווט טבעת LED

אין הרבה מה לומר על שלב זה, אך למקרה שלא השתמשת ברצועה של WS2812LED הם אינטליגנטים כך שלכל אחד מהם יש נתונים פנימה והחוצה. בקשתות של 15 נוריות הלוח ה- PCB מטפל בכל החיבורים אך כשאתה בא להצטרף למקטעים עליך ליצור את חיבורי החשמל והנתונים. אינך יכול לטעות בחיבורים מכיוון שהם נמצאים במעגל אולם כאשר סיימת את המעגל חסר לך קישור אחד בנתוני IN/OUT כדי לאפשר לך לחבר את החוטים לנתוני IN. היכן שהחוטים מתחברים לנתוני IN יהיה הנורית הראשונה או כשהיא ממוספרת נכון אפס.

תהיתי כיצד הייתה הדרך הטובה ביותר לתקן את טבעת הלדים לטבעת העץ? אבל בסופו של דבר החלטתי להשתמש בחוט מתנשא ונול סביב ההיקף ומדלג על נוריות LED בכל פעם.

שלב 3: חיווט ה- Arduino Nano ו- Power

חיווט ה- Arduino Nano ו- Power
חיווט ה- Arduino Nano ו- Power
חיווט ה- Arduino Nano ו- Power
חיווט ה- Arduino Nano ו- Power
חיווט ה- Arduino Nano ו- Power
חיווט ה- Arduino Nano ו- Power

בתחילה החלטתי להשתמש ב- LiPo בפרויקט זה, אך כאשר ניסיתי את זה הסוללה התרוקנה למשך הלילה. בהתחלה חשבתי שהסוללה עשויה להיות דפוקה אז מדדתי את הזרם וגיליתי שהמעגל שואב 73mA כלומר בסוללה הוא הולך להיות יותר. למעשה מדדתי את הזרם בסוללה (לפני ממיר ההגברה) וגיליתי שהוא עולה על 110mA. אז היה ברור שהשעון הזה לא עומד לפעול על סוללה.

אז במקום זאת אני בוחר להשתמש במטען USB של 5V. אני נוטה שיהיו המון מטעני USB מתים בגלל שהמחברים מתעללים משני ילדים קטנים.

אז מכיוון שאנו משתמשים ב- WS2812 LED יש לנו רק 3 חיבורים ל- Arduino Nano.

  • כּוֹחַ
  • קרקע, אדמה
  • נתונים IN. כתום עד D2 בננו

לאחר מכן יש לנו את RTC זה כולל רק 4 חוטים.

  • הספק 5 וולט
  • קרקע, אדמה
  • SCL (שעון I2C) כחול עד A5 בננו
  • SDA (נתוני I2C) צהוב עד A4 בננו

לבסוף אנו זקוקים לחשמל וזה עובר למסוף 5 V החשמל בננו.. הווין נועד להיות בעל מתח גדול מ -5 וולט (כלומר 7-12 וולט) והקרקע.

שלב 4: התוכנית

אני מאוד נהנה לתכנת, אני פשוט לא כל כך טוב בזה.

בעיה 1

השניות והדקות מוצגות בצורה נכונה כמספר שבין 0-59. עם זאת הנורית הראשונה ומכאן שהאפס נמצא בתחתית. אז צריך לתקן את זה.

void correctPos (int A)

{אם (A 30) {A = A - 31; }} טמפ '= A; }

בעיה 2

ניסיתי לנקות את כל הלדים לפני הצגת המיקום החדש אולם זה גרם לנורות להבהב. אז החלטתי להדליק את הנורית הבאה ואז לכבות את הקודם. זה עבד בסדר גמור ?? NOPE כי אם המיקום החדש היה אפס הוא ינסה לכבות -1. אז זה טופל במקביל.

מחק חלל הקודם (int B)

// מחק את הלייד הקודם, אם זה היה אפס אז // כבה 59 אחר רק תחסור 1 // ותכבה את זה. {if (B == 0) {strip.setPixelColor (59, 0, 0, 0); // הכל כבוי} אחר {strip.setPixelColor (B - 1, 0, 0, 0); // הכל כבוי}}

בעיה 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 זה היה נראה הרבה יותר טוב אם זה היה משתמש בכל הנורות והראה נכון שבריר של שעה? שוב זה היה תיקון פשוט הוספתי רק את מספר הדקות המקורי מחולק ב -12 לשעות.

שעות = שעות + (addMin/12);

בעיה 8

כאשר השעה או הדקה הנמוכה בתחתית השניות נעלמות לשנייה אחת לפני.

שעות = אם (דקות == 0)

{if (secs == 59) {strip.setPixelColor (59, 0, 30, 0); // ירוק}} if (שעות == 0) {if (secs == 59) {strip.setPixelColor (59, 0, 30, 0); // ירוק}}

בעיה 9

קביעת השעה. החלטתי שהמבנה הזה יהיה פשוט מאוד ולכן לא כללתי לחצנים להתאמת הזמן. אז זה רק עניין של חיבור השעון למחשב וטעינת זמן חדש. כל שעליך לעשות הוא לבטל את התגובה של הסעיף שלהלן ולהגדיר את הזמן הנדרש שלך ולאחר מכן לטעון את התוכנית. לאחר שנכון תגיב מחדש על השורה ותשלח שוב את התוכנית, אחרת אם תאבד את הכוח היא תפעיל את ההתקנה מחדש ותטען את הזמן הישן שוב.

// 12 באפריל 2020 בשעה 23:20 תתקשר:

//rtc.adjust(DateTime(2020, 4, 12, 23, 20, 0));

מוּמלָץ: