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

האלמנטים משולבים לקלטת כוח במקביל, ונשלטים באמצעות אפיק טורי - היציאה של האלמנט הראשון מחוברת לכניסת הבקרה של השני וכו'. ברוב המקרים, אוטובוסים טוריים בנויים על שני קווים, שאחד מהם משדר סטרובים (פולסי שעון), והשני - נתונים.

אפיק הבקרה של שבב WS2812B מורכב מקו אחד - נתונים מועברים דרכו. הנתונים מקודדים כפולסים בתדירות קבועה, אך עם מחזורי עבודה שונים. דופק אחד - ביט אחד. משך הזמן של כל ביט הוא 1.25 µs, סיבית האפס מורכבת מרמה גבוהה עם משך זמן של 0.4 µs ורמה נמוכה של 0.85 µs. היחידה נראית כמו רמה גבוהה עבור 0.8 מיקרו-שניות ורמה נמוכה עבור 0.45 מיקרו-שניות. פרץ של 24 סיביות (3-בייט) נשלח לכל LED, ואחריו הפסקה ברמה נמוכה למשך 50 מיקרו-שניות. משמעות הדבר היא כי הנתונים ישודרו עבור LED הבא, וכן הלאה עבור כל מרכיבי השרשרת. העברת הנתונים מסתיימת בהפסקה של 100 מיקרוסופט. זה מציין שמחזור תכנות הקלטת הושלם וניתן לשלוח את הסט הבא של מנות נתונים.

פרוטוקול כזה מאפשר להסתדר עם קו אחד להעברת נתונים, אך דורש דיוק בשמירה על מרווחי זמן. אי ההתאמה מותרת לא יותר מ-150 ns. בנוסף, חסינות הרעש של אוטובוס כזה נמוכה מאוד. כל הפרעה בעלת משרעת מספקת יכולה להיתפס על ידי הבקר כנתונים. זה מטיל הגבלות על אורך המוליכים ממעגל הבקרה. מצד שני, זה מאפשר בדיקת בריאות הסרט ללא מכשירים נוספים.אם תפעיל כוח על המנורה ותיגע במשטח המגע של אפיק הבקרה באצבעך, חלק מהנוריות עשויות להידלק באקראי ולכבות.
מפרטים של רכיבי WS2812B
כדי ליצור מערכות תאורה המבוססות על קלטת כתובת, אתה צריך לדעת את הפרמטרים החשובים של אלמנטים פולטי אור.
| מידות לד | 5x5 מ"מ |
| תדר אפנון PWM | 400 הרץ |
| צריכת זרם בבהירות מירבית | 60 mA לתא |
| מתח אספקה | 5 וולט |
ארדואינו ו-WS2812B
פלטפורמת Arduino, הפופולרית בעולם, מאפשרת ליצור סקיצות (תוכניות) לניהול קלטות כתובת. היכולות של המערכת רחבות מספיק, אבל אם הן כבר לא מספיקות ברמה מסוימת, המיומנויות הנרכשות יספיקו כדי לעבור ללא כאב ל-C++ או אפילו ל-assembler. למרות שקל יותר לקבל את הידע הראשוני בארדואינו.
חיבור סרט WS2812B ל-Arduino Uno (ננו)
בשלב הראשון מספיקים לוחות Arduino Uno או Arduino Nano פשוטים. בעתיד, ניתן להשתמש בלוחות מורכבים יותר לבניית מערכות מורכבות יותר. בעת חיבור פיזי של פס ה-LED הניתן לכתובת ללוח Arduino, יש להקפיד על מספר תנאים:
- בשל חסינות רעש נמוכה, המוליכים המחברים של קו הנתונים צריכים להיות קצרים ככל האפשר (כדאי לנסות לעשות אותם בתוך 10 ס"מ);
- עליך לחבר את מוליך הנתונים לפלט הדיגיטלי החופשי של לוח Arduino - לאחר מכן הוא יצוין באופן תוכנתי;
- בשל צריכת חשמל גבוהה, אין צורך להפעיל את הקלטת מהלוח - ספקי כוח נפרדים מסופקים למטרה זו.
יש לחבר את חוט החשמל המשותף של המנורה ושל Arduino.

יסודות בקרת תוכניות WS2812B
כבר הוזכר שכדי לשלוט במיקרו-מעגלים WS2812B, יש צורך לייצר פולסים באורך מסוים, תוך שמירה על דיוק גבוה. ישנן פקודות בשפת Arduino ליצירת פולסים קצרים עיכוב במיקרו-שניות ו מיקרוים. הבעיה היא שהרזולוציה של הפקודות הללו היא 4 מיקרו שניות. כלומר, זה לא יעבוד ליצור עיכובים בזמן עם דיוק נתון. יש צורך לעבור לכלי C++ או Assembler. ואתה יכול לארגן את השליטה ברצועת ה-LED הניתן להתייחסות דרך Arduino באמצעות ספריות שנוצרו במיוחד עבור זה. אתה יכול להתחיל את ההיכרות עם תוכנית Blink, שגורמת לאלמנטים פולטי האור להבהב.
led מהיר
ספריה זו היא אוניברסלית. בנוסף לקלטת הכתובת, הוא תומך במגוון מכשירים, כולל קלטות הנשלטות על ידי ממשק SPI. יש לו אפשרויות רחבות.
ראשית, יש לכלול את הספרייה. זה נעשה לפני בלוק ההתקנה, והשורה נראית כך:
#include <FastLED.h>
השלב הבא הוא יצירת מערך לאחסון הצבעים של כל דיודה פולטת אור. יהיה לו רצועת השם והממד 15 - לפי מספר האלמנטים (עדיף להקצות קבוע לפרמטר זה).
רצועת CRGB[15]
בבלוק ההגדרה, עליך לציין עם איזו קלטת הסקיצה תעבוד:
void setup() {
FastLED.addLeds< WS2812B, 7, RGB>(רצועה, 15);
intg;
}
פרמטר RGB קובע את סדר רצף הצבעים, 15 פירושו מספר נוריות הלד, 7 הוא מספר הפלט שהוקצה לשליטה (עדיף גם להקצות קבוע לפרמטר האחרון).
בלוק הלולאה מתחיל בלולאה שכותבת ברצף לכל קטע של המערך אדום (זוהר אדום):
עבור (g=0; g<15; g++)
{strip[g]=CRGB::Red;}
לאחר מכן, המערך שנוצר נשלח אל המנורה:
FastLED.show();
השהיה של 1000 אלפיות השנייה (שנייה):
delay(1000);
לאחר מכן תוכל לכבות את כל האלמנטים באותו אופן על ידי כתיבת שחור בהם.
עבור (int g=0; g<15; g++)
{strip[g]=CRGB::Black;}
FastLED.show();
delay(1000);

לאחר הידור והעלאת הסקיצה, הקלטת תהבהב בפרק זמן של 2 שניות. אם אתה צריך לנהל כל רכיב צבע בנפרד, אז במקום הקו {strip[g]=CRGB::Red;} נעשה שימוש במספר שורות:
{
strip[g].r=100;// הגדר את רמת הזוהר של האלמנט האדום
strip[g].g=11;// אותו דבר עבור ירוק
strip[g].b=250;// אותו דבר עבור כחול
}
NeoPixel
ספרייה זו פועלת רק עם טבעות LED של NeoPixel Ring, אך היא פחות אינטנסיבית במשאבים ומכילה רק את הדברים החיוניים. בשפת Arduino, התוכנית נראית כך:
#include <Adafruit_NeoPixel.h>
כמו במקרה הקודם, הספרייה מחוברת, ואובייקט lenta מוכרז:
Adafruit_NeoPixel lenta=Adafruit_NeoPixel(15, 6);// כאשר 15 הוא מספר האלמנטים ו-6 הוא הפלט שהוקצה
בבלוק ההתקנה, הקלטת מאותחלת:
void setup() {
lenta.begin()
}
בבלוק הלולאה, כל האלמנטים מודגשים באדום, המשתנה מועבר לפיד ונוצר עיכוב של שנייה אחת:
עבור (int y=0; y<15; y++)// 15 - מספר האלמנטים במנורה
{lenta.setPixelColor(y, lenta.Color(255,0,0))};
tape.show();
delay(1000);
הזוהר מפסיק עם תקליט שחור:
עבור (int y=0; y<15; y++)
{ lenta.setPixelColor(y, lenta.Color(0,0,0))};
tape.show();
delay(1000);

מדריך וידאו: דוגמאות של אפקטים חזותיים באמצעות קלטות כתובת.
לאחר שלמדת כיצד להבהב את נוריות הלד, תוכל להמשיך ללמוד כיצד ליצור אפקטים של צבע, כולל הקשת הפופולרית ו-Aurora Borealis עם מעברים חלקים. נוריות LED הניתנות להתייחסות WS2812B ו- Arduino מספקות אפשרויות כמעט בלתי מוגבלות לכך.
