ב- ARDUINO יש לנו 20 סיכות קלט / פלט, כך שנוכל לתכנת 20 פינים של UNO שישמשו כקלט או פלט. למרות שיש יותר סיכות בבקר ATMEGA328P מאשר ב- UNO, הסיבה לכך היא שבעת תכנון הלוח יש כמה ברכות ברירת מחדל.
כעת עבור יישומים מסוימים אנו זקוקים ליותר מ -30 פינים, נניח אם ברצוננו לעצב קוביית LED 5x5x5, אז בשביל זה אנו צריכים 5x5 + 5 = 30 סיכות. במקרים כאלה אנו משתמשים בשבבי ממיר טוריים ומקבילים או במאגר משמרות. שבב הרשמת משמרת לוקח נתונים מלוח UNO באופן סדרתי ונותן פלט בתצורה מקבילה של 8 סיביות.
רכיבים נדרשים
חומרה: לוח Uno Arduino, פינים מחברים, נגד 220Ω, נורית (שמונה חתיכות), 74HC595 IC, לוח לחם.
תוכנה סופית: ארדואינו מדי לילה
תרשים מעגל והסבר עבודה
כאן אנו הולכים לשלוח נתונים בגודל שמונה סיביות דרך ערוץ יחיד להעביר את הרישום. מרשם המשמרות לוקח את הנתונים באופן סדרתי ומאחסן את הנתונים בזיכרונו. לאחר שנשלח הנתונים על ידי הבקר, אנו הולכים לשלוח פקודה לרישום משמרת כדי להציג את הנתונים בפלט, עם פקודה זו רושם המשמרות מוציא נתונים מקבילים.
פלט זה מוצג על ידי שמונה נוריות מחוברות בפלט.
כדי לחבר את מרשם המשמרות ל- Arduino UNO עלינו לעשות שני דברים:
|
ראשית עלינו להגדיר כל שלוש סיכות של UNO כפלט. ואז עלינו לחבר סיכה דיגיטלית, סיכת שעון וסיכת תפס לשלושת פינות הפלט הללו. לאחר מכן עלינו לומר ל- UNO איזה סיכה של שבב מחוברת לסיכות לוח UNO. זה נעשה על ידי כתיבה פשוטה בפקודה "
shiftOut(dataPin, clockPin, data);
". הנתונים כאן יכולים להיות בינאריים או עשרוניים או הקסדצימאליים. המידע של שמונה הסיביות שצריך לשלוח נכתב במקום "נתונים".
הנתונים שנשלחו נעשים כ:
השבת תפס, זה אומר לשבב לא להציג כרגע פלט.
במשך שמונה פעמים נשלח נתונים עם שעון באופן סדרתי, אז שעון גבוה שעון נתונים נמוך נמוך וכן הלאה.
אפשר תפס, זה אומר לשבב להציג נתונים של שמונה סיביות.
העבודה של ARDUINO עם SHIFT REGISTER מוסברת שלב אחר שלב בקוד C המופיע להלן: