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

מרשם המשמרות 74HC164 והארדואינו שלך: 9 שלבים
מרשם המשמרות 74HC164 והארדואינו שלך: 9 שלבים

וִידֵאוֹ: מרשם המשמרות 74HC164 והארדואינו שלך: 9 שלבים

וִידֵאוֹ: מרשם המשמרות 74HC164 והארדואינו שלך: 9 שלבים
וִידֵאוֹ: נגריית חידושים בקיבוץ משמרות 2024, נוֹבֶמבֶּר
Anonim
מרשם המשמרות 74HC164 והארדואינו שלך
מרשם המשמרות 74HC164 והארדואינו שלך
מרשם המשמרות 74HC164 והארדואינו שלך
מרשם המשמרות 74HC164 והארדואינו שלך

רשימות משמרות הן חלק חשוב מאוד בהיגיון הדיגיטלי, הן פועלות כדבק בין העולם המקביל והעולמי הסדרתי. הם מצמצמים את ספירת החוטים, משתמשים בסיכה ואפילו מסייעים בהורדת המעבד שלך על ידי היכולת לאחסן את הנתונים שלהם. הם מגיעים בגדלים שונים, עם דגמים שונים לשימושים שונים ותכונות שונות. זה שאדון בו היום הוא רכזת המשמרת 74HC164 8 סידרה, במקביל החוצה, ללא נעילה. למה? ובכן, זהו אחד מרשמי המשמרות הבסיסיים ביותר שיש, מה שהופך את הלמידה לקלה יותר, אך במקרה זה היה היחיד שהיה לי (חח!, וממשק אותו עם ארדואינו כולל כמה סקיצות לדוגמא ומעגלים מובילים. אני מקווה שכולכם נהנים!

שלב 1: אז מה הם רשימות משמרות?

אז מה הם רשימות משמרות?
אז מה הם רשימות משמרות?

כפי שצוין קודם לכן הם מגיעים בכל הטעמים השונים, והזכרתי גם שאני משתמש ב 8 סיביות 74HC164, סידורי במקביל החוצה, ללא משמרות, משמרת אז מה זה אומר?!? ראשית, השם 74-פירושו החלק שלו ממשפחת הלוגיקה 74xx, ומאחר שההיגיון שלו אינו יכול לשלוט ישירות בזרם רב במיוחד (16-20ma עבור כל השבב נפוץ), הוא מעביר רק אותות מסביב, אך אין זה אומר האות הזה לא עובר לטרנזיסטור שיכול להחליף עומס זרם גבוה יותר. HC פירושו שמדובר במכשיר cmos במהירות גבוהה, אתה יכול לקרוא על זה בקישור למטה, אבל מה שאתה בעצם צריך לדעת על זה הוא שהוא נמוך התקן כוח ויפעל מ -2 עד 5 וולט (כך שאם אתה משתמש בארדואינו 3.3 וולט זה בסדר) כמו כן הוא יכול לפעול כראוי במהירויות גבוהות לשבב הספציפי הזה יש מהירות אופיינית של 78 מגה -הרץ, אבל אתה יכול ללכת לאט או מהר (עד שהוא יתחיל לרדת) כפי שאתה רוצה www.kpsec.freeuk.com/components/74series.htm164 הוא מספר הדגם של שבב זה, יש תרשים גדול שלהם ב- wikipediaen.wikipedia.org/wiki/List_of_7400_series_integrated_circuits הבא, 8 סיביות רשימת משמרות מורכבת ממעגלי כפכפים, כפכף הוא 1 ביט זיכרון, זה הא s 8 (או 1 בתים של זיכרון). מכיוון שמדובר בזיכרון, אם אינך צריך לעדכן את המאגר אתה יכול פשוט להפסיק "לדבר" אליו והוא יישאר בכל מצב שהשארת אותו, עד ש"תדבר "אליו שוב או תאפס את הכוח. רשימות משמרות אחרות של סדרת ההיגיון של 7400 יכולות לעלות עד 16 סיביות במקביל החוצה. המשמעות היא שהארדואינו שלך שולח לו נתונים באופן סדרתי (דופק כיבוי בזה אחר זה) ורשם המשמרות ממקם כל סיביה על סיכת הפלט הנכונה. מודל זה דורש רק שליטה על 2 חוטים, כך שתוכל להשתמש בשני סיכות דיגיטאליות על הארדואינו, ולשבור את השניים האלה ל -8 פלט דיגיטלי נוסף כמה דגמים אחרים מקבילים ביציאה סידרית, הם עושים את אותו הדבר אך כתשומות לארדואינו (למשל לוח NES למשחקים) לא ננעל זו עלולה להיות נפילה של שבב זה אם תזדקק לו. כאשר הנתונים נכנסים לרשם משמרות באמצעות סדרות, הם מופיעים על סיכת הפלט הראשונה, כאשר נכנס דופק שעון, הסיביה הראשונה עוברת על מקום אחד, ויוצרת אפקט גלילה על היציאות, למשל 00000001 יופיע על היציאות. כמו 101001000100001000001000000100000001 אם אתה מדבר עם מכשירי לוגיקה אחרים שמשתפים את אותו השעון ולא מצפים לזה, זה עלול לגרום לבעיות. לרשמי משמרות סתומים יש מערך זיכרון נוסף, כך שברגע שהנתונים ייכנסו לרשומה תוכל להעיף מתג ולהציג את הפלטים, אך הוא מוסיף עוד חוט, תוכנה ודברים שאפשר לעקוב אחריהם. אנו שולטים בתצוגות LED, אפקט הגלילה מתרחש כל כך מהר שאינך יכול לראות אותו (למעט כאשר אתה מפעיל את השבב לראשונה), וברגע שהבייט נמצא במרשם המשמרות אין יותר גלילה אנו נשלוט על סוג ברגרף, 7 קטע, ומטריצת 16LED 4x4 נקודות עם שבב ותוכנה זו על הארדואינו באמצעות 2 פינים דיגיטליים בלבד (+ כוח וקרקע)

שלב 2: חיווט ותפעול בסיסיים

חיווט ותפעול בסיסיים
חיווט ותפעול בסיסיים
חיווט ותפעול בסיסיים
חיווט ותפעול בסיסיים

חיווט 74HC164 הוא שבב בן 14 פינים, יש לו 4 סיכות כניסה, 8 סיכות פלט, מתח ואדמה, כך שניתן להתחיל מלמעלה. סיכות 1 ו -2 הן שתי כניסות סדרתיות, הן מוגדרות כשער לוגי AND, כלומר שניהם חייבים להיות גבוהים בהיגיון (כלומר 5 וולט) על מנת שהסיביות תיראה כ -1, מצב נמוך (0 וולט) על כל אחת מהן יקרא כאפס. אנחנו לא באמת צריכים את זה וזה קל יותר להתמודד עם תוכנה, אז בחר אחת וקשור אותו ל- V+ כך שהוא תמיד יקרא גבוה. אני בוחר להשתמש במגשר מפין 1 ועד סיכה 14 (V+) מכיוון שאתה יכול פשוט להטיל מגשר על לוח השבבים. הקלט הסידורי שנותר (סיכה 2 בתרשימים שלי) יעבור לסיכה דיגיטלית 2 של הארדואינו. סיכות 3, 4, 5 ו -6 מתוך 74HC164 הן 4 הבייטים הראשונים של הפלט פין 7 מתחבר לקרקע קפיצה ימינה, סיכה 8 הוא סיכת השעון, כך יודע רשם המשמרות שהסיביה הסדרתית הבאה מוכנה לקריאה, יש לחבר את זה לסיכה דיגיטלית 3 בארדואינו. פין 9 הוא לנקות את כל הרשם בבת אחת, אם הוא יורד נמוך, יש לך את האפשרות להשתמש בו, אבל שום דבר מהבלתי נחקר הזה עושה, אז קשור אותו ל- V+סיכות 10, 11 12 ו -13 הם 4 הבייטים האחרונים של סיכה פלט 14 היא כוח השבבים מבצע ראשית עליך להגדיר את הקלט הטורי של המרשם (סיכה דיגיטלית 2 על הארדואינו) גבוה או נמוך, לאחר מכן עליך להעיף את סיכת השעון (סיכה דיגיטלית 3) מהנמוך לגבוה, מרשם המשמרות יקרא את הנתונים על הקלט הטורי ויזיז את סיכות הפלט על ידי 1, חזור 8 פעמים והגדרת את כל 8 הפלטים. ניתן לעשות זאת ביד עם לולאות וכתיבה דיגיטלית ב- arduino IDE, אך מאז t שלו הוא תקשורת ברמת חומרה נפוצה מאוד (SPI) יש להם פונקציה אחת שעושה את זה בשבילך. shiftOut (dataPin, clockPin, bitOrder, value) רק ספר לו היכן הנתונים וסיכות השעון מחוברים לארדואינו, לאיזו דרך לשלוח את הנתונים ומה לשלוח, ולטפל בהם עבורך (שימושי)

שלב 3: פרויקטים

פרויקטים
פרויקטים

אוקיי, מספיק הרצאה ותיאוריה, בואו נעשה דברים מהנים עם השבב הזה! יש 3 פרוייקטים לנסות במדריך הזה, 2 הראשונים פשוטים וניתנים לחיתוך ברגעים. השלישי, מטריצת ה- LED 4x4, דורש יותר זמן ומחשבה לבנות, בשל החיווט הוביל.רשימת החלקים פרויקט 1: בקר תצוגת LED '2 Wire' ברגרף 1 * 74HC164 שידור רשם 1 * לוח לחם ללא הלחמה 1 * ארדואינו או ארדואינו תואם (5 וולט) 1 * 330 אוהם נגד 1/4 וואט 8 * חוטי מגשר אדומים של פלט נורמלי 12 * פרויקט 2: בקר תצוגת '2 חוטים' 7 פלחים 1 * 74HC164 שידור רשם 1 * לוח לחם ללא הלחמה 1 * ארדואינו או תואם ארדואינו (5V) 1 * 330 אוהם נגד 1/4 וואט 1 * תצוגה של קתודה משותפת בת שבעה קטעים 9 * חוטי מגשר פרויקט 3: תצוגת מטריקס 4 × 4 LED '1 * 74HC164 משמרת 1 * ארדואינו, או תואם ארדואינו (5 וולט) 4 * 150 אוהם 1 נגד 1/4 וואט 8 * 1 קוהם 1/8 וואט (או גדול יותר) 8 * טרנזיסטור NpN (2n3904 או טוב יותר) 16 * פלט נורמלי אדום של פלט הוא אמצעי לבנות אותו והספק 5 וולט מוסדר שיכול להתמודד עם 160+ma (אתה יכול הדלק את כל הנורות בבת אחת כמו נורת בלם)

שלב 4: פרוייקט 1 [pt 1]: חומרה לבקר תצוגת LED מסוג '2 חוטים'

פרוייקט 1 [pt 1]: חומרה לבקר תצוגת LED מסוג '2 חוטים'
פרוייקט 1 [pt 1]: חומרה לבקר תצוגת LED מסוג '2 חוטים'
פרויקט 1 [pt 1]: חומרה לבקר תצוגת LED מסוג '2 חוטים'
פרויקט 1 [pt 1]: חומרה לבקר תצוגת LED מסוג '2 חוטים'

חבר את הארדואינו והרשמה על פי הסכימה, יש לי כבר תצוגת ברגרף של 10 פלחים מוכנה לשימוש בלוח לחם וזה מה שתראה בתמונה, אבל אתה יכול לעשות את אותו הדבר עם LED בודדים בעמוד השני ציינתי כי לא מדובר במכשירי דרייבר, כי מדובר בהתקני היגיון, עם כמויות זעירות של זרם שיכולים לעבור דרכם. כדי להריץ 8 נוריות LED, תוך שמירה על המעגל הפשוט, ולא בישול מרשם המשמרות, דורש שנגביל את הזרם לא מעט. נוריות ה- LED מחוברות במקביל וחולקות קרקע משותפת (קתודה משותפת), לפני הכניסה לחשמל. אספקת הקרקע שהם צריכים לעבור דרך נגד של 330 אוהם, ומגבילה את הכמות הכוללת של הזרם שכל נוריות ה- LED יכולות להשתמש בו עד 10ma (ב 5 וולט) זה משאיר את נוריות ה- LED במצב למראה חולני, אך הן אכן נדלקות ומשמשות כך דוגמה זו, על מנת להניע את נוריות הנורית בזרם התקין שלהן, יהיה עליך להכניס טרנזיסטור שבו מאגר המשמרות יכול להפעיל / לכבות מקור זרם גבוה יותר (ראה פרויקט 3) סיכת הנתונים של רשם המשמרות (סיכה 2) צריכה. כדי להתחבר לסיכה דיגיטלית של arduino # 2 סיכת השעון של מרשם המשמרות (סיכה 8) צריכה להתחבר לסיכה הדיגיטלית של arduino # 3

שלב 5: פרוייקט 1 [pt 2]: תוכנת בקר תצוגת LED של ברגרף '2 חוטים'

פרוייקט 1 [pt 2]: תוכנת בקר תצוגת LED של ברגרף '2 חוטים'
פרוייקט 1 [pt 2]: תוכנת בקר תצוגת LED של ברגרף '2 חוטים'
פרוייקט 1 [pt 2]: תוכנת בקר תצוגת LED של ברגרף '2 חוטים'
פרוייקט 1 [pt 2]: תוכנת בקר תצוגת LED של ברגרף '2 חוטים'

דוגמה 1: פתח את הקובץ "_164_bas_ex.pde" בתוך ה- arduino IDE, זו שרטוט פשוט שמאפשר לך להגדיר או לכבות נוריות LED בתצוגת התרשים. 2 השורות הראשונות מגדירות את מספרי הסיכה בהם נשתמש עבור נתונים ושעון, אני השתמש #define על מספר שלם קבוע, קל לי יותר לזכור, ואין יתרון לאחד או אחר לאחר שנאספו #הגדר נתונים 2 #הגדר שעון 3 הבא הוא פונקציית הגדרת הריק, הוא פועל רק פעם אחת, כך שהארדואינו מסתובב on, מגדיר את רשימת המשמרות ואין לו מה לעשות. בתוך פונקציית הגדרת הריק אנו קובעים את השעון וסיכות הנתונים כסיכות OUTPUT, ולאחר מכן באמצעות הפונקציה shiftOut אנו שולחים את הנתונים להגדרת הריק חלל במשמרת () {pinMode (שעון, OUTPUT); // להפוך את סיכת השעון ל pinMode פלט (נתונים, OUTPUT); // להפוך את סיכת הנתונים לשינוי פלט (נתונים, שעון, LSBFIRST, B10101010); // שלח ערך בינארי זה לרשם המשמרות} בפונקציית shiftOut אתה יכול לראות את הטענות שלו הנתונים הם סיכת הנתונים, השעון הוא סיכת השעון LSBFIRST מתייחס לאיזה סדר הוא נכנס, כאשר כותבים אותו בסימון בינארי (Bxxxxxxxx) השביעי אלמנט מעבר ל- B הוא הסימן הכי פחות משמעותי ראשית, זה מוזן ראשון כך שהוא יגיע לפלט האחרון ברגע שכל 8 הסיביות מוזנות ב- B10101010 הוא הערך הבינארי שנשלח לרשם המשמרות והוא ידליק כל אור מוזר, נסה לשחק עם ערכים שונים כדי להפעיל או לבטל דפוסים שונים ולבסוף לולאת חלל ריקה (כי אתה צריך אחת גם אם אינך משתמש בה) לולאת חלל () {} // לולאה ריקה לעת עתה דוגמה 2: 8 השורות הראשונות הן זהה ל -8 השורות הראשונות של הדוגמה הראשונה, למעשה הן לא ישתנו לאף אחד מהפרויקטים האחרים, לכן #define data 2 #הגדירו את השעון 3void setup () {pinMode (שעון, OUTPUT); // להפוך את סיכת השעון ל pinMode פלט (נתונים, OUTPUT); // להפוך את סיכת הנתונים לפלט אבל עכשיו בהגדרת חלל יש 8 ספירה ללולאה, היא לוקחת בתים ריקים ומזיזה פנימה 1 בכל פעם שמתחילה מהסיביה השמאלית ביותר ונעה ימינה. זה לאחור מהדוגמה הראשונה שבה התחלנו מהקצה הימני ביותר ועבדנו שמאלה, אך באמצעות MSBFIRST פונקציית העברת החוצה שולחת את הנתונים בצורה הנכונה כמו כן, אנו מוסיפים עיכוב בלולאת ה- for כך שהוא יאט מספיק כדי להיות גלוי. for (int i = 0; i <8; ++ i) // עבור 0 - 7 do {shiftOut (נתונים, שעון, MSBFIRST, 1 << i); // bit shift ערך לוגי גבוה (1) על ידי i delay (100); // עיכוב של 100 ms או שלא תוכל לראות אותו}} לולאת חלל () {} // לולאה ריקה לעת עתה, העלה את הסקריפט וכעת אתה אמור לראות את חתימת העמודים מדליקה כל אחד באחד בכל פעם.

שלב 6: פרויקט 2: '2 חוטים' 7 פלחי בקר תצוגה

פרוייקט 2: '2 חוטים' 7 פלחי בקר תצוגה
פרוייקט 2: '2 חוטים' 7 פלחי בקר תצוגה
פרוייקט 2: '2 חוטים' 7 פלחי בקר תצוגה
פרוייקט 2: '2 חוטים' 7 פלחי בקר תצוגה

תסתכל על הסיכה של תצוגת 7 הקטעים שלך (היה לי רק כפול אבל רק חצי) והשתמש בשרטוט שלהלן כדי לחבר כל קטע לסיביות הנכונות ברגיסטביט 1 = סיכה 3bit 2 = סיכה 4bit 3 = סיכה 5bit 4 = סיכה 6 סיביות 5 = סיכה 10 סיביות 6 = סיכה 11 סיביות 7 = סיכה 12 סיביות 8 = סיכה 13 (אם אתה רוצה להשתמש בנקודה העשרונית) והקטודה של התצוגה דרך הנגד 330 אוהם ואל אספקת החשמל, פתח כעת את Seven_seg_demo.pde ב- arduino IDEF ראשית אתה רואה היכן אנו מגדירים את הנתונים וסיכות השעון #הגדרת נתונים 2 #הגדר שעון 3 לאחר מכן אנו מגדירים את כל דפוסי הצ'טר בינארי, זה די קל, תסתכל על הציור שלהלן, אם אתה צריך את הקטע האמצעי הקלד אחד, הבא אתה צריך את הקטע העליון, אם כן הקלד עוד אחד, המשך לעשות זאת עד שתכסה את כל 8 הקטעים, שים לב שהסיבי הימני ביותר (ביט 8) הוא תמיד 0, זה כי אני אף פעם לא מפעיל את העשרוני נְקוּדָה. בייט אפס = B01111110; בייט אחד = B00000110; בייט שני = B11011010; בייט שלוש = B11010110; בת ארבע = B10100110; בת חמש = B11110100; בת שש = B11111100; בת שבע = B01000110; בת שמונה = B11111110; בת תשע = B111101 הבא בהתקנת חלל הגדרנו את הנתונים וסיכות השעון שלנו לפלטים הגדרת חלל () {pinMode (שעון, OUTPUT); // להפוך את סיכת השעון ל pinMode פלט (נתונים, OUTPUT); // הפוך את סיכת הנתונים לפלט 3} ואז בלולאת חלל אנו משתמשים ב- shiftOut כדי להציג כל תבנית (מספר) המתן 1/2 שנייה ולהציג את הבא, 0 עד 9, מכיוון שהיא נעשית בפונקציית לולאת החלל היא תספור 0-9 וחזור לנצח. לולאת void () {shiftOut (נתונים, שעון, LSBFIRST, אפס); עיכוב (500); shiftOut (נתונים, שעון, LSBFIRST, אחד); עיכוב (500); shiftOut (נתונים, שעון, LSBFIRST, שניים); עיכוב (500); shiftOut (נתונים, שעון, LSBFIRST, שלושה); עיכוב (500); shiftOut (נתונים, שעון, LSBFIRST, ארבעה); עיכוב (500); shiftOut (נתונים, שעון, LSBFIRST, חמישה); עיכוב (500); shiftOut (נתונים, שעון, LSBFIRST, שש); עיכוב (500); shiftOut (נתונים, שעון, LSBFIRST, שבעה); עיכוב (500); shiftOut (נתונים, שעון, LSBFIRST, שמונה); עיכוב (500); shiftOut (נתונים, שעון, LSBFIRST, תשע); עיכוב (500);}

שלב 7: פרוייקט 3 [pt 1]: תצוגת מטריקס לד 4X4 '2 חוטים'

פרויקט 3 [pt 1]: '2 Wire' 4x4 Led Matrix Display
פרויקט 3 [pt 1]: '2 Wire' 4x4 Led Matrix Display
פרויקט 3 [pt 1]: '2 Wire' 4x4 Led Matrix Display
פרויקט 3 [pt 1]: '2 Wire' 4x4 Led Matrix Display

פרויקט מטריצת ה- LED 4x4 הוא לא מעט יותר מורכב, אך הוא כמעט כולו בבנייה, אני בוחר להכין את שלי מולחם על פרבורד, אבל צריך להיות אפשרי לשכפל אותו על קרש לחם, רק הרבה יותר מרווח. שונה בכך שרשם המשמרות אינו מניע ישירות את הלדים, במקום זאת יציאות רישום המשמרות נשלחות דרך נגד 1 קוהם לבסיס טרנזיסטור NpN, כאשר תפוקת הסיבית גבוהה, היא מאפשרת מספיק זרם ומתח לעבור לתוך טרנזיסטור בכדי להעביר את החיבור בין האספן והפולט, הקולטים קשורים ל- 5 וולט מוסדר "חסון". פולטות הטרנזיסטורים מחוברים לנגדים של 150 אוהם והנגדים קשורים לצורכי 4 לדים ברציפות ו מגביל את השורה ל 20ma, אם כי בעת ציור תמונות על הצג רק LED אחד דולק בכל פעם, ולכן כמעט בהירות מלאה (כמעט מכיוון שהם נדלקים ומכבים ממש מהר כדי ליצור את כל התמונה) יש 4 שורות ו -4 עמודות, כל אחת השורה מקבלת נגד וטרנזיסטור, בכל עמוד הקתודות של ה- LED קשורות זו לזו, נתקלות באספן של טרנזיסטור, שגם הבסיס שלו נשלט על ידי מרשם המשמרות, ולבסוף החוצה לקרקע. גרסה גדולה של סכמטי www.instructables.com/files/orig/F7J/52X0/G1ZGOSRQ/F7J52X0G1ZGOSRQ.jpg

שלב 8: פרוייקט 3 [נקודה 2]: תצוגת מטריקס לד 4X4 '2 חוטים'

פרוייקט 3 [pt 2]: תצוגת מטריקס לד 2 × 4 חוטים
פרוייקט 3 [pt 2]: תצוגת מטריקס לד 2 × 4 חוטים
פרוייקט 3 [pt 2]: תצוגת מטריקס לד 2 × 4 חוטים
פרוייקט 3 [pt 2]: תצוגת מטריקס לד 2 × 4 חוטים
פרוייקט 3 [pt 2]: תצוגת מטריקס לד 2 × 4 חוטים
פרוייקט 3 [pt 2]: תצוגת מטריקס לד 2 × 4 חוטים

רשימת המשמרות שולטת הן באנודה והן בקתודות של נוריות ה- LED בפורמט YX, התבונן בביטביט 1 = עמודה 1 (הימנית ביותר) ביט 2 = עמודה 2bit 3 = עמודה 3bit 4 = עמודה 4bit 5 = שורה 1 (העליונה) 6 = שורה 2bit 7 = שורה 3bit 8 = שורה 4 כדי ליצור תמונה צייר ריבוע 4x4 על נייר גרף ומלא אילו מהם אתה רוצה להציג, הבא צור טבלה YX. להלן תראה מיפוי לדמיון, והכי טוב שאפשר לעשות על 4x4 "פיקסלים" עבור כל קטע מלא אני רושם באיזה עמודה (Y) הוא נמצא, ואז באיזה שורה הוא נמצא (X) עכשיו נפתח את הקובץ _4x4.pde ב- arduino IDE תראה את 2 החברים הישנים שלנו #הגדר נתונים 2 #הגדר שעון 3 ואז מערך של מספרים שלמים int img = {1, 1, 4, 1, 1, 3, 4, 3, 2, 4, 3, 4}; אם תסתכל זה רק רשימה של קואורדינטות ה- YX הרשומות שלי, יהיה זה כאב גדול להמיר את הערכים האלה ביד, ויש לנו מחשב … תן לזה לעשות את זה! השעון וסיכות הנתונים שלנו OUTPUTS הגדרת חלל () {pinMode (שעון, OUTPUT); // להפוך את סיכת השעון ל pinMode פלט (נתונים, OUTPUT); // להפוך את סיכת הנתונים לפלט 3} ולולאת חלל מבלבלת למראה, כדי להתחיל דברים אנחנו צריכים להכריז על כמה משתנים מקומיים לולאת חלל () {int Y; int X; בייט החוצה; ואז לולאה, לולאה זו צריכה להיות ארוכה כמו כמות הערכים במערך img, עבור תמונה זו השתמשתי רק ב -6 פיקסלים, כך שזה יוצר 12 קואורדינטות YX. אני גורם לו לדלג על כל מספר אחר באמצעות i += 2, מכיוון שקראנו 2 קואורדינטות לכל לולאה עבור (int i = 0; i <12; i += 2) // מספר נקודות במערך img, מקרה זה 12 {כעת אנו קוראים את ערך Y ב- במערך, ומחסירים אחד מהערך שלו, כי בתים לא מתחילים באחד, הם מתחילים באפס, אבל ספרנו מ- 1 // מקבלים את זוג כבלי YX הראשון Y = (img - 1); // מחסירים אחד מכיוון שמספר הסיביות מתחיל ב -0 לאחר מכן אנו קוראים את ערך ה- X ב- [i + 1] במערך, ומחסירים אחד מהערך שלו, מאותה סיבה X = (img [i + 1] - 1); לאחר שיש לנו את ערכי ה- YX של הפיקסל, אנו עושים קצת ביסודיות או מתמטיקה ועוברים שמאלה. ראשית עלינו לקרוא את ערך ה- X, וכל הערך שלו הוא להזיז אותו להרבה מקומות + 4 שמאלה, כך שאם X הוא 4 והוסף 4 זה סיביה 8 (MSB), מסתכל על התרשים שוב … ביט 1 = עמודה 1 (הימנית ביותר) סיביות 2 = עמודה 2bit 3 = עמודה 3bit 4 = עמודה 4bit 5 = שורה 1 (העליונה) bit 6 = שורה 2bit 7 = שורה 3 סיביות 8 = שורה 4 ביט 8 היא השורה האחרונה לאחר מכן גם ערך ה- Y מועבר שמאלה, הפעם מעצמו, שום דבר לא מתווסף. לבסוף השניים מחוברים יחד ל -1 בתים במקום 2 חצי בתים. (נשנוש), באמצעות bitwise או (הסמל |) לוקח שני בתים ומוסיף אותם ביסודו, מאפשר להניח X = 10000000Y = 00000001 -------------------- OR = 10000001 עמודה 4 החוצה עמודה 1 = 1 << (X + 4) | 1 << Y; ולבסוף shiftout כדי להציג את התמונה הנוכחית, ותמשיך כך עד שאין לנו עוד נתונים במערך … עיכוב רגע ולולאה לנצח, מכיוון שהעברנו נתונים שמאלה ואנו זקוקים ל- MSB להיות על סיכת הפלט האחרונה. של פנקס המשמרות שלח אותו תחילה. shiftOut (נתונים, שעון, MSBFIRST, יציאה); // העבר את הבייט החוצה לעיכוב הרשומות שלנו (1); // עיכבו אותו כך שיהיה לו סיכוי להשאיר כתם אור בעיניכם אתם מוזמנים ליצור תמונות ואפקטים משלכם, ישנם 3 קבצי דוגמה, פרצוף סמיילי ולוח שחמט (שנראה יותר כמו פסים), ולבסוף יצרנית ניצוצות אקראית

שלב 9: מסקנה

סיכום
סיכום
סיכום
סיכום
סיכום
סיכום

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

מוּמלָץ: