כל צבע מורכב משלושה צבעים: אדום, ירוק וכחול, באמצעות נורית RGB פשוטה תוכלו ליצור כל צבע. אך המגבלה של RGB LED היא שיש בתוכה שלוש נוריות נפרדות ודורשת שלוש סיכות של כל מיקרו-בקר כדי להפעיל נורית RGB אחת. כך שלא ניתן לחבר מאות נוריות עם מיקרו-בקר אחד.
כדי להתגבר על בעיה זו Adafruit יצרה את NeoPixel LED Strip. זה דורש רק שלושה סיכות כדי להניע מספר נוריות RGB NeoPixel. שני פינים מיועדים לחשמל ואדמה וסיכה אחת מיועדת ל- Data In (DI). סיכת נתונים IN משמשת לטיפול ובקרה על נוריות ה- LED השונות ברצועה עם צבע, בהירות וכו '. אך נדרש מיקרו-בקר להפעלת NeoPixels. נפוץ מאוד להשתמש ב- Arduino עם NeoPixel, ולכן היום נלמד לממשק נוריות NeoPixel עם Arduino. תוכל ללמוד עוד על NeoPixels ב- AdaFruit.
כאן בפרויקט זה אנו שולטים על NeoPixel LED באמצעות Arduino ומסך מגע TFT LCD. יצרנו 7 כפתורי מגע בצבעים שונים על 2.4 אינץ 'TFT LCD וכאשר אנו מקישים על כפתור צבע מסוים על גבי LCD, רצועת LED NeoPixel נדלקת באותו צבע של אותו כפתור. כאן השתמשנו ברצועת LED הדיגיטלית RGB של NeoPixel של 30 נוריות נוריות.
NeoPixel RGB LED יכול להיות מואר בכל צבע וכך נוכל להוסיף לחצנים נוספים על ה- LCD כדי להאיר את ה- LED בצבעים רבים יותר על הקשה על כפתורים אלה. ניתן להוסיף אפקטים ודפוסים יפים אחרים גם באמצעות קידוד. אתה יכול לבנות מערכת קישוט מלאה מבוקרת על ידי Arduino באמצעות נוריות פיקסל NEO ותוכל לשלוט על מערכת זו באמצעות LCD השוכב קרוב אליך.
רכיבים נדרשים:
- Arduino Mega או כל דגם Arduino אחר
- 2.4 אינץ 'TFT LCD מגן עם בקר SPFD5408
- רצועת LED NeoPixel RGB
- חוטי חיבור
- כבל USB או מתאם 12 V 1A
חיבורי מעגל:
כדי לחבר את רצועת NeoPixels ל- Arduino Mega פשוט חבר את ה- Arduino 5V pin ל- NeoPixel של ה- 5V ואת ה- GND של מגה ל- GND של NeoPixel ואז חבר את ה- Pin של NeoPixel (נתונים ב-) לסיכה הדיגיטלית מספר 36 של Arduino Mega. הרכיב בזהירות את מגן המגע TFT LCD מעל Arduino כך ש GND של MEGA שוכן מתחת ל- GND של LCD וסיכה של 5V של Arduino מתחברת לסיכה של 5V של LCD.
הקפד לא להחליף GND וסיכה של 5V של רצועת LED NeoPixel בזמן חיבורו לארדואינו, אחרת זה יפגע ברצועת ה- LED של NeoPixel. שימו לב שכאן השתמשנו בארדואינו מגה אך תוכלו להשתמש בכל דגם ארדואינו אחר.
חיבורים לארדואינו לרצועת LED RGB NeoPixel:
סיכות ארדואינו |
סיכות של רצועת NeoPixel |
5v |
5v |
GND |
GND |
מספר סיכה דיגיטלי. 36 |
DI (נתונים ב) |
הסבר עבודה:
העבודה של NeoPixel LED עם Arduino קלה מאוד. פשוט הקש על כפתור המגע של כל צבע על גבי LCD שבו ברצונך להאיר את רצועת LED NeoPixel. נורית ה- LED תידלק בהתאם לצבע זה. קוד כתוב בצורה כזו, כך שתוכל לחזור על משימה זו בלי סוף מבלי שתצטרך לאפס את ה- Arduino Mega. תוכלו לבדוק את הקוד והדגמת הווידאו בסוף מאמר זה.
כאשר מקישים על כפתור כלשהו על ה- LCD, הנתונים נשלחים לארדואינו וארדואינו שולח עוד הוראות לרצועת NeoPixel להדליק בהתאם. לדוגמא רצועת LED NeoPixel זוהרת בצבע ירוק כאשר אנו מקישים על כפתור הירוק על גבי LCD ורצועת LED זוהרת בצבע אדום כאשר אנו לוחצים על כפתור האדום וכן הלאה.
הסבר על תכנות:
כדי לממשק TFT LCD עם Arduino השתמשנו בכמה ספריות. כל הספריות מגיעות בקובץ rar אחד וניתן להוריד אותן מקישור זה. לחץ על 'שיבוט או הורד' וקובץ 'הורד ZIP' והוסף לתיקיית הספרייה שלך ב- Arduino. ספרייה זו נחוצה לצורך תפקוד תקין של TFT LCD.
#לִכלוֹל
עליך לבדוק את TFT LCD שלך על ידי צריבת Arduino עם קודי דוגמאות המופיעים בספריה ולבדוק אם הקודים פועלים כראוי. ראשית בדקו את מבחן הגרפיקה, אחר כך כיול את הבדיקה ולבסוף את בדיקת הצבע. אם אתה מוצא שכל התכונות עובדות בסדר, התחל בקוד שניתן במדריך זה.
גם לתפקוד תקין של רצועת LED NeoPixel RGB, תזדקק לספרייה אחת נוספת, שאותה ניתן להוריד מכאן.
#לִכלוֹל
כפי שתואר לעיל סיכה דיגיטלית 36 של MEGA מחוברת לסיכת DI של רצועת LED NeoPixel כמוצג בקוד להלן. כמו כן, מספר הנוריות ברצועה הוא 30 כך שכתוב בקוד:
# הגדר PIN 36 # הגדר NUM_LEDS 30
צבעי תצוגה של לחצני LCD מסומנים על ידי קודים מסוימים. אתה יכול לשנות קודים אלה בהתאם למסך LCD שלך.
#define BLACK 0x0000 #define YELLOW 0x001F #define GREEN 0xF800 #define RED 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define BLUE 0xFFE0 #define WHITE 0xFFFF
פרמטרים מסוימים עבור הכפתורים כמו גודל ומיקום מוגדרים בקוד:
uint16_t רוחב = 0; uint16_t גובה = 0; uint16_t x = 40; uint16_t y = גובה - 20; uint16_t w = 75; uint16_t h = 20;
הפרמטר h משמש לכוונון גודל הלחצן על גבי LCD. אם אתה עושה את זה 40, גודל הכפתור יוכפל. הפרמטר y הוא הקואורדינטה y של LCD.
לחצני מגע מסומנים במספרים כפי שמוצגים בקוד:
#define לחצנים 9 #define BUTTON_Red 0 #define BUTTON_DarkRed 1 #define BUTTON_RED 2 #define BUTTON_DarkGreen 3 #define BUTTON_DeepRed 4 #define BUTTON_Blue 5 #define BUTTue
פונקציות מסוימות משמשות להפקת הצבע מתוך NeoPixel כמו:
בטל EmitCyan (); בטל EmitWhite (); בטל EmitGreen (); בטל EmitYellow (); בטל EmitPink (); בטל EmitBlack ();
כדי למצוא את ערכי ה- RGB הדיגיטליים שיש להזין עבור הצבע הנתון, תוכלו לעקוב אחר קישור זה. פשוט הזן את הצבע שאתה רוצה שברצועת ה- NeoPixel שלך זוהר, מצא את ערכי ה- RGB עבור אותו צבע והכנס לפונקציות לעיל.
פונקציה void initializeButtons () משמשת למתן טקסט וצבע לכפתורים וגם להצבתם במקום הנדרש על גבי LCD.
בטל initializeButtons () {uint16_t x = 40; uint16_t y = גובה - 20; uint16_t w = 75; uint16_t h = 40; uint8_t spacing_x = 5………………..
פונקציה void showCalibration () משמשת לציור הכפתורים על גבי LCD.
void showCalibration () {tft.setCursor (40, 0); עבור (uint8_t i = 0; i <8; i ++) {buttons.drawButton (); }}
יתר על כן, קוד Arduino המלא להבהרת רצועת LED NeoPixel בצבע הרצוי מופיע להלן. הקוד הוא מעט ארוך אבל פשוט, אתה יכול להבין את הקוד בקלות.