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

Arduino ו- TLC5940 PWM LED Driver IC: 7 שלבים
Arduino ו- TLC5940 PWM LED Driver IC: 7 שלבים

וִידֵאוֹ: Arduino ו- TLC5940 PWM LED Driver IC: 7 שלבים

וִידֵאוֹ: Arduino ו- TLC5940 PWM LED Driver IC: 7 שלבים
וִידֵאוֹ: Output DC or AC Voltage using MCP4725 DAC with LCD and PWM to Voltage Converter with Arduino 2024, נוֹבֶמבֶּר
Anonim
Arduino ו- TLC5940 PWM LED Driver IC
Arduino ו- TLC5940 PWM LED Driver IC

במאמר זה אנו הולכים לבחון את טקסס אינסטרומנטס TLC5940 16-channel LED driver IC. הסיבה שלנו לעשות זאת היא להפגין דרך קלה נוספת לנהוג נוריות רבות - וגם סרווס. ראשית, הנה כמה דוגמאות ל- TLC5940. אתה יכול להזמין TLC5940 מ- PMD Way עם משלוח חינם לכל רחבי העולם.

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

במהלך הדרכה זו נסביר כיצד לשלוט במעגלי TLC5940 אחד או יותר עם נוריות וגם להסתכל על סרוו שליטה. בשלב זה, אנא הורד עותק של TLC5940 (.pdf) כפי שתתייחס אליו בתהליך זה. יתר על כן, אנא הורד והתקן את ספריית ה- TLC5940 Arduino מאת אלכס לאון שניתן למצוא כאן. אם אינך בטוח כיצד להתקין ספרייה, לחץ כאן.

שלב 1: בנה מעגל הדגמה TLC5940

בנה מעגל הדגמה TLC5940
בנה מעגל הדגמה TLC5940

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

  • לוח Arduino Uno או לוח תואם
  • 16 נוריות נורמליות יומיומיות שיכולות להיות בעלות זרם קדימה של עד 20 mA
  • נגד 2 kΩ (לתת או לקחת 10%)
  • קרמיקה של 0.1uF וקבל אלקטרוליטי 4.7uF

שימו לב לכיוון ה- LED-וזכרו TLC5940 הוא מנהל התקן LED-אנודה משותפת-כך שכל האנודות LED מחוברות יחד ואז ל- 5V.

שלב 2:

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

R = 39.06 / Imax כאשר R (באוהם) הוא ערך הנגד ו- Imax (באמפר) הוא כמות הזרם המרבית שתרצה לזרום דרך הנורות.

לדוגמה, אם יש לך נוריות עם זרם קדימה של 20 mA - חישוב הנגד יהיה: R = 39.06 / 0.02 = 1803 אוהם. לאחר שהמעגל מורכב - פתח את Arduino IDE והעלה את הסקיצה BasicUse.pde שנמצאת בתיקיית הדוגמא של ספריית TLC5940.

עליך להציג פלט הדומה למה שמוצג בסרטון.

שלב 3: שליטה ב- TLC5940

כעת, כשהמעגל פועל, כיצד אנו שולטים ב- TLC5940? ראשית, פונקציות החובה - כלול את הספרייה בתחילת המערכון עם:

#כלול "Tlc5940.h"

ולאחר מכן אתחל את הספרייה על ידי הכנסת הדברים הבאים להגדרת חלל ():

Tlc.init (x);

x הוא פרמטר אופציונלי - אם ברצונך להגדיר את כל הערוצים לבהירות מסוימת ברגע שהסקיצה מתחילה, תוכל להכניס ערך בין 0 ל- 4095 עבור x בפונקציה Tlc.init ().

עכשיו כדי להדליק או לכבות ערוץ/לד. כל ערוץ ממוספר בין 0 ל -15, וניתן להתאים את בהירותו של כל ערוץ בין 0 ל- 4095. זהו תהליך דו-חלקי … ראשית-השתמש באחת או יותר מהפונקציות הבאות כדי להגדיר את הערוצים הנדרשים ובהירות בהתאמה (PWM רָמָה):

Tlc.set (ערוץ, בהירות);

לדוגמה, אם ברצונך להפעיל את שלושת הערוצים הראשונים במלוא הבהירות, השתמש ב:

Tlc.set (0, 4095); Tlc.set (1, 4095); Tlc.set (2, 4095);

החלק השני הוא להשתמש בדברים הבאים כדי לעדכן את TLC5940 עם ההוראות הנדרשות מחלק ראשון:

Tlc.update ();

אם אתה רוצה לכבות את כל הערוצים בבת אחת, פשוט השתמש ב:

Tlc.clear ();

שלב 4:

אין צורך להתקשר ל- TLC.update () לאחר הפונקציה clear. להלן סקיצה לדוגמא מהירה המגדירה את ערכי הבהירות/PWM של כל הערוצים לרמות שונות:

#כלול הגדרת חלל "Tlc5940.h" () {Tlc.init (0); // לאתחל את TLC5940 ולכבות את כל הערוצים}

לולאת חלל ()

{for (int i = 0; i <16; i ++) {Tlc.set (i, 1023); } Tlc.update (); עיכוב (1000); for (int i = 0; i <16; i ++) {Tlc.set (i, 2046); } Tlc.update (); עיכוב (1000); for (int i = 0; i <16; i ++) {Tlc.set (i, 3069); } Tlc.update (); עיכוב (1000); for (int i = 0; i <16; i ++) {Tlc.set (i, 4095); } Tlc.update (); עיכוב (1000); }

היכולת לשלוט על בהירות הפרט של כל ערוץ/לד יכולה להיות שימושית גם בעת שליטה על נוריות RGB - לאחר מכן תוכל לבחור בקלות את הצבעים הנדרשים באמצעות רמות בהירות שונות עבור כל אלמנט. בסרטון מוצגת הפגנה.

שלב 5: שימוש בשני TLC5940 או יותר

ניתן לחבר דייזי שרשרת לא מעט TLC5940 יחד כדי לשלוט בנורות נוספות. ראשית - העבר את ה- TLC5940 הבא לארדואינו כפי שמוצג במעגל ההדגמה - למעט חבר את סיכת SOUT (17) של ה- TLC5940 הראשון לסיכת SIN (26) של ה- TLC5940 השנייה - כשהנתונים עוברים מהארדואינו, דרך הראשון TLC5940 לשני וכן הלאה. לאחר מכן חזור על התהליך אם יש לך שלישי וכו '. אל תשכח את resisotr שמגדיר את הזרם!

לאחר מכן, פתח את הקובץ tlc_config.h הממוקם בתיקיית הספרייה TLC5940. שנה את הערך של NUM_TLCS למספר TLC5940 שחיברת יחד, ולאחר מכן שמור את הקובץ וגם מחק את הקובץ Tlc5940.o הממוקם באותה תיקייה. לבסוף הפעל מחדש את IDE. לאחר מכן תוכל להתייחס לערוצי ה- TLC5940 השני ובהמשך ברציפות מהראשון. כלומר, הראשון הוא 0 ~ 15, השני הוא 16 ~ 29 וכן הלאה.

שלב 6: שליטה בסרוווס באמצעות TLC5940

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

בעת בחירת הסרוו שלך, וודא שהוא לא ימשוך יותר מ -120 mA בעת ההפעלה (הזרם המרבי לכל ערוץ) ושם לב גם לקטע "ניהול זרם וחום" בסוף מדריך זה. והשתמש בחשמל חיצוני עם סרוו, אל תסתמך על קו 5V של הארדואינו.

חיבור סרוו הוא פשוט - קו GND מתחבר ל- GND, 5V (או מוביל מתח אספקה) מתחבר ל- 5v שלך (או לאספקה מתאימה אחרת) וסיכת השליטה בסרוו מתחברת לאחד היציאות של TLC5940. לבסוף - וזה חשוב - חבר נגד 2.2kΩ בין סיכת הפלט TLC5940 הנמצאת בשימוש לבין 5V. שליטה בסרוו אינה שונה כל כך מנורת LED. אתה צריך את שתי השורות הראשונות בתחילת הסקיצה:

#כלול "Tlc5940.h"#כולל "tlc_servos.h"

לאחר מכן את ההגדרות הבאות ():

tlc_initServos ();

לאחר מכן, השתמש בפונקציה הבאה כדי לבחור איזה סרוו (ערוץ) להפעיל ואת הזווית הנדרשת (זווית):

tlc_setServo (ערוץ, זווית);

בדיוק כמו נוריות ה- LED, אתה יכול לחבר כמה כאלה יחד ולאחר מכן לבצע את הפקודה באמצעות:

Tlc.update ();

אז בואו נראה את כל זה בפעולה. הסקיצה לדוגמא הבאה גורפת ארבעה סרוו על פני 90 מעלות:

#כלול "Tlc5940.h"#כולל "tlc_servos.h"

הגדרת חלל ()

{tlc_initServos (); // הערה: פעולה זו תוריד את תדירות ה- PWM עד 50 הרץ. }

לולאת חלל ()

{for (int angle = 0; angle = 0; angle--) {tlc_setServo (0, זווית); tlc_setServo (1, זווית); tlc_setServo (2, זווית); tlc_setServo (3, זווית); Tlc.update (); עיכוב (5); }}

הסרטון מציג את המערכון הזה בפעולה עם ארבעה סרוו.

אם אתם סרוו לא מסתובבים בזווית הנכונה - למשל אתם מבקשים 180 מעלות והם מסתובבים רק עד 90 או בערך, נדרשת מעט עבודה נוספת.

עליך לפתוח את הקובץ tlc_servos.h המצוי בתיקיית ספריית TLC5940 Arduino ולהתנסות בערכים עבור SERVO_MIN_WIDTH ו- SERVO_MAX_WIDTH. לדוגמה, שנה את SERVO_MIN_WIDTH מ- 200 ל- 203 ו- SERVO_MAX_WIDTH מ- 400 ל- 560.

שלב 7: ניהול זרם וחום

כפי שצוין קודם לכן, ה- TLC5940 יכול להתמודד עם מקסימום של 120 mA לכל ערוץ. לאחר כמה ניסויים אתה עשוי להבחין כי TLC5940 אכן מתחמם - וזה בסדר.

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

סיכום

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

את הפוסט הזה מביאה לכם pmdway.com - המציעה מוצרים TLC5940 יחד עם הכל ליצרנים ולחובבי אלקטרוניקה, עם משלוח חינם לכל רחבי העולם.

מוּמלָץ: