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

מונה באמצעות MAX7221: 4 שלבים
מונה באמצעות MAX7221: 4 שלבים

וִידֵאוֹ: מונה באמצעות MAX7221: 4 שלבים

וִידֵאוֹ: מונה באמצעות MAX7221: 4 שלבים
וִידֵאוֹ: How to use TM1637 4 digits seven segment display with Arduino 2024, יולי
Anonim
מונה באמצעות ה- MAX7221
מונה באמצעות ה- MAX7221

יצירת מונה המתגבר כאשר לוחצים על כפתור באמצעות ה- MAX7221.

שלב 1: חלקים

MAX7221 או MAX7219

החלף

4 תצוגות של 7 קטעים (קתודה נפוצה)

2 נגדים: 10k ו- 9.53k (השתמשתי ב- 9.1k וזה עדיין עובד)

ארדואינו

שלב 2: בניית המעגל

בניית המעגל
בניית המעגל
בניית המעגל
בניית המעגל
בניית המעגל
בניית המעגל

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

1. חבר את הספרות 0 - 3 ב- MAX7221 לספרות 1-4 בתצוגה. ספרת MAX 0 מתחברת לתצוגה מספר 1 וכו 'התצוגות פשוט לא שגרתיות ומתחילות ב -1 במקום 0.

2. חבר את פלחי A - G על MAX7221 לפלחים A - G בתצוגה.

3. ספק כוח וקרקע ל- MAX. VCC עובר לסיכה 19. הנגד של 10k מחובר גם לסיכה 19 ו- 18. הקרקע עוברת לפינים 4 ו -9.

4. ה- MAX7221 מתקשר עם ה- Arduino באמצעות SPI (ממשק היקפי סידורי). במקרה זה דרושים רק 3 חוטים מכיוון שאני לא משתמש ב- MISO (Master In Slave Out). ב- MAX7221 חבר את סיכה 1 (דין) ל- Arduino, במקרה שלי השתמשתי בסיכה 12. זהו ה- MOSI שלך (Master Out Slave In) או הנתונים. סיכה 12 ב- MAX היא CS (קלט בחירת שבבים) וככה הנתונים נטענים במרשם המשמרות, חיברתי את זה לסיכה 9 בארדואינו. החיבור האחרון הוא CLK שהוא סיכה 13 ב- MAX, חיברתי אותו לסיכה 10 בארדואינו.

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

זה עבור גליון הנתונים MAX7221. גם מהיכן הגיעו התמונות.

www.mouser.com/datasheet/2/256/max7219-max…

שלב 3: המתג

המתג
המתג

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

השתמשתי בסיכה 8 בארדואינו לשליטה במתג ובנגד 10k.

שלב 4: קוד

השתמשתי בספריית LedControl.h שנמצאה ב- GitHub ובקוד הבסיסי שלהם כדי להפעיל את ה- MAX7221. לאחר מכן שיניתי את הקוד לספירה בין 0 - 9999 בעת לחיצה על הכפתור.

#כלול "LedControl.h"

כפתור int = 8;

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

הגדרת בטל () {

pinMode (כפתור, INPUT);

כיבוי lc. (0, שקר); // MAX7221 נמצא במצב חיסכון בחשמל, לכן עלינו להעיר אותו

lc.setIntensity (0, 15); // הגדרת בהירות, מקסימום 15

lc.clearDisplay (0); // תצוגת ניקוי

}

לולאת חלל () {

int int = digitalRead (כפתור);

int i = 0;

int j = 0;

int k = 0;

int l = 0;

בעוד (1) {

state = digitalRead (כפתור);

בעוד (מצב == 1) {

state = digitalRead (כפתור);

lc.setDigit (0, 3, i, false);

i ++;

עיכוב (100); // אתה יכול להתעסק עם זה

אם (i == 10) {

i = 0;

j ++;

אם (j == 10) {

j = 0;

k ++;

אם (k == 10) {

k = 0;

l ++;

אם (l == 10) {

בעוד (1) {

lc.setRow (0, 0, 0x3E); // כאשר התצוגה הגיעה ל 9999 היא תציג U - 1

lc.setRow (0, 1, 0x1); // בערך Hexi עשרוני

lc.setRow (0, 2, 0x1);

lc.setDigit (0, 3, 1, false);

}

}

lc.setDigit (0, 0, l, false);

}

lc.setDigit (0, 1, k, false);

}

lc.setDigit (0, 2, j, false);

}

}

}

}

מוּמלָץ: