אורות

מטריצת לד עם ארדואינו

הפעם נעבוד עם דוחף לדים MAX7221 וארדואינו וניצור מטריצה עם 64 לדים.

MAX7221 יכול לשלוט בעד 64 נורות לד בצורה אינדיבידואלית וגם בתצוגת 7 מקטעים. דוחף נוסף שקיים הוא MAX7219 והחיבורים שלהם הם אותו דבר פשוט MAX7221 קצת מתקדם יותר.

אלה הרגליים שלו:

שלושת רגלי התקשורת הם DIN, LOAD, CLK ומתחברות לארדואינו בצורה הבאה –

DIN > פין 12 בארדואינו

CLK > פין 11 בארדואינו

LOAD > פין 10 בארדואינו

+V > הוא מקור המתח של 5V ואם נרצה להדליק יותר מכמה נורות הוא צריך גם לספק מספיק זרם לפחות 2 אמפר. כל נורה לוקחת בערך 20mA אז אפשר לחשב.

GND> צריך להיות משותף עם ארדואינו

ISET > פה שמים נגד אחד ששומר על הנורות הערך שלו צריך להיות פחות או יותר 20K, אפשר לחבר שני 10K בטור.

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

מטריצת לדים עם ארדואינו

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

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

מטריצת לדים MAX7221

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

עכשיו אפשר לשלוט על הנורות בצורה אינדיבידואלית. השורות והעמודות מתחילות מאפס ונגמרות בשבע.

#include "LedControl.h"
LedControl lc=LedControl(12,11,10,1);
void setup(){
    lc.setLed(0,0,0,true); // turn first row first column on
    delay(1000);
    lc.setLed(0,1,0,true); // turn second row first column on
    delay(1000);
    lc.setLed(0,0,1,true); // turn first row second column on
    delay(1000);
}
void loop(){}

האפס הראשון בפונקציה הוא מספר ID שמקבל כברירת מחדל 0, אפשר לשרשר מספר מטריצות ואז יהיו עוד ID’S . אם הכל עובד אפשר לעבור להלחמות. הלחמה של מטריצת לדים היא חוויה רוחנית או טיפולית תלוי איך מסתכלים על זה, ומומלץ לכל אחד להתנסות בזה לפחות פעם אחת.

אפשר לשים מוזיקה ברקע, להדליק מאוורר והכי חשוב לשמור על מורל גבוה.

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

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

#include "LedControl.h"

LedControl lc=LedControl(12,11,10,1);

void setup() {
  lc.shutdown(0,false);
  /* Set the brightness to a medium values */
  lc.setIntensity(0,8);
  /* and clear the display */
  lc.clearDisplay(0);
  for (int i=0;i<8;i++){
    lc.setRow(0,i,B11111111);
    delay(1000);
    lc.clearDisplay(0);
  }
  for (int i=0;i<8;i++){
    lc.setColumn(0,i,B11111111);
    delay(1000);
    lc.clearDisplay(0);
  }
}

void loop() {
// put your main code here, to run repeatedly:

}

 

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

עכשיו נעשה קצת אנימציות:

 

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

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

 

תגובה אחת על הפוסט “אורות

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *