- מודול תצוגה בן 7 קטעים וארבע ספרות:
- חיבור מודול בן 7 ספרות בן 4 ספרות עם Raspberry Pi:
- תכנות פטל פי שלך:
- זמן תצוגה בקטע בן 7 ספרות באמצעות Raspberry Pi:
כולנו יודעים כי פטל פי היא פלטפורמת פיתוח נפלאה המבוססת על מעבד ARM. עם כוחו החישובי הגבוה הוא יכול לחולל פלאים בידי חובבי אלקטרוניקה או סטודנטים. כל זה יכול להיות אפשרי רק אם נדע לגרום לו לקיים אינטראקציה עם העולם האמיתי ולנתח את הנתונים באמצעות מכשיר פלט כלשהו. ישנם חיישנים רבים אשר יכולים לזהות פרמטרים מסוימים מהעולם האמיתי ולהעבירם לעולם דיגיטלי ואנו מנתחים אותם בצפייה במסך LCD או בתצוגה אחרת. אבל, זה תמיד לא יהיה כלכלי להשתמש במסך LCD עם PI להצגת כמות קטנה של נתונים. זה המקום בו אנו מעדיפים להשתמש בתצוגת LCD אלפאנומרית 16x2 או בתצוגת 7 המגזרים. למדנו כבר כיצד להשתמש ב- LCD אלפאנומרי ובתצוגה בת 7 קטעים בודדים עם Raspberry pi. היום נעשהממשק 4 ספרות מודול תצוגת שבע קטעים עם Raspberry Pi ותצוגת זמן מעליו.
למרות ש- 16x2 LCD אלפא-נומרי הרבה יותר נוח מתצוגת 7 קטעים, ישנם מעט תרחישים בהם תצוגת 7 קטעים תגיע בצורה נוחה יותר מאשר תצוגת LCD. LCD סובל מהחסרון שיש גודל תווים נמוך ויהיה מוגזם מדי עבור הפרויקט שלך אם אתה רק מתכנן להציג כמה ערכים מספריים. ל- 7 קטעים יש יתרון גם כנגד מצב תאורה ירוד וניתן לראותם מזוויות לאגר מאשר מסך LCD רגיל. אז בואו נתחיל לדעת את זה.
מודול תצוגה בן 7 קטעים וארבע ספרות:
תצוגת 7 קטעים כוללת שבעה קטעים ובכל קטע יש LED אחד לתצוגה של המספרים על ידי הארת הקטעים המתאימים. כמו אם ברצונך שהמקטע בן 7 יציג את המספר "5" אז עליך להאיר את קטע a, f, g, c ו- d על ידי כך שהסיכות המתאימות שלהם יהיו גבוהות. ישנם שני סוגים של תצוגות בעלות 7 קטעים: קתודה משותפת ואנודה משותפת, כאן אנו משתמשים בתצוגה של קטע משותף בשבעה קטעים. למידע נוסף על תצוגת 7 קטעים כאן.
כעת אנו יודעים כיצד להציג את התו המספרי הרצוי שלנו בתצוגה 7-קטע אחת. אבל די ברור שאנחנו נצטרך יותר מתצוגה בת 7 קטעים אחת כדי להעביר כל מידע שהוא יותר מספרה אחת. לכן, במדריך זה נשתמש במודול תצוגה בן 7 ספרות בת 4 מגזרים, כמוצג להלן.
כפי שאנו רואים ישנם ארבעה שבעה מגזרי תצוגה המחוברים זה לזה. אנו יודעים שלכל מודול בן 7 קטעים יהיו 10 פינים ובמשך 4 תצוגות של 7 קטעים יהיו 40 פינים בסך הכל וזה יהיה קדחתני עבור כל אחד להלחם אותם על לוח נקודה, אז אני ממליץ בחום לכל אחד לקנות מודול או הכינו PCB משלכם לשימוש בתצוגה בת 4 ספרות בת 7 קטעים. סכמת החיבור עבור אותו מוצגת להלן:
כדי להבין כיצד פועל מודול בן 7 ספרות קטע, עלינו לבדוק את התרשימות שלעיל, כפי שמוצג סיכות A של כל ארבע התצוגה מחוברות כדי להתאסף כ- A זהה עבור B, C…. עד DP. אז, בעצם אם ההדק A פועל, אז כל ארבעת ה- A צריכים לעבור גבוה נכון?
אבל, זה לא קורה. יש לנו ארבעה פינים נוספים מ- D0 ל- D3 (D0, D1, D2 ו- D3), בהם ניתן להשתמש כדי לשלוט באיזו תצוגה מתוך הארבע צריכה להיות גבוהה. לדוגמא: אם אני צריך שהפלט שלי יהיה נוכח רק בתצוגה השנייה, אז רק D1 צריך להיות גבוה תוך שמירה על סיכות אחרות (D0, D2 ו- D3) נמוכות. פשוט נוכל לבחור איזו תצוגה צריכה להיות פעילה באמצעות הפינים מ D0 ל- D3 ואיזה תו להציג באמצעות הפינים מ- A ל- DP.
חיבור מודול בן 7 ספרות בן 4 ספרות עם Raspberry Pi:
בואו נראה כיצד, כיצד נוכל לחבר את המודול בן 7 הספרות בן 4 הספרות עם ה- Raspberry Pi שלנו. המודול בעל 7 הסגמנטים כולל 16 פינים כמוצג להלן. ייתכן שהמודול שלך יהיה פחות, אך אל תדאג, עדיין יהיה את הדברים הבאים בוודאות
- 7 או 8 סיכות קטע (כאן סיכות החל מ -1 עד 8)
- סיכה קרקעית (כאן סיכה 11)
- ארבע סיכות (כאן סיכות 13 עד 16)
להלן נתון התרשים עבור שעון דיגיטלי פטל פאי על ידי חיבור מודול תצוגה בן 4 ספרות עם 7 קטעים עם Raspberry Pi:
הטבלה הבאה תעזור לך גם ליצור את החיבורים ולאמת את זה בהתאם לתרשימים המוצגים לעיל.
S.No |
מספר GPIO Rsp Pi |
מספר PIN של Rsp Pi |
שם של 7 קטעים |
מספר פינים עם 7 מגזרים (כאן במודול זה) |
1 |
GPIO 26 |
PIN 37 |
קטע א |
1 |
2 |
GPIO 19 |
PIN 35 |
קטע ב |
2 |
3 |
GPIO 13 |
PIN 33 |
קטע ג |
3 |
4 |
GPIO 6 |
PIN 31 |
קטע ד |
4 |
5 |
GPIO 5 |
PIN 29 |
קטע ה |
5 |
6 |
GPIO 11 |
PIN 23 |
קטע ו |
6 |
7 |
GPIO 9 |
PIN 21 |
קטע ז |
7 |
8 |
GPIO 10 |
PIN 19 |
קטע DP |
8 |
9 |
GPIO 7 |
PIN 26 |
ספרה 1 |
13 |
10 |
GPIO 8 |
PIN 24 |
ספרה 2 |
14 |
11 |
GPIO 25 |
PIN 22 |
ספרה 3 |
15 |
12 |
GPIO 24 |
PIN 18 |
ספרה 4 |
16 |
13 |
קרקע, אדמה |
קרקע, אדמה |
קרקע, אדמה |
11 |
זהה את הפינים במודול שלך וכולכם טובים להמשיך בחיבורים. איתור סיכות GPIO ב- Raspberry pi עשוי להיות משימה מעט מאתגרת ולכן סיפקתי לך את התמונה הזו עבור סיכות GPIO.
תכנות פטל פי שלך:
כאן אנו משתמשים בשפת תכנות Python לתכנות RPi. ישנן דרכים רבות לתכנת את ה- Raspberry Pi שלך. במדריך זה אנו משתמשים ב- Python 3 IDE, מכיוון שהוא הנפוץ ביותר. תוכנית פייתון מלאה ניתנת בסוף מדריך זה. למידע נוסף על תכנות והפעל קוד ב- Raspberry Pi כאן.
נדבר על כמה פקודות בהן נשתמש בתוכנית PYHTON עבור פרויקט זה, ראשית אנו הולכים לייבא קובץ GPIO מהספריה, למטה הפונקציה מאפשרת לנו לתכנת סיכות GPIO של PI. אנו גם משנים את השם "GPIO" ל- "IO", ולכן בתוכנית בכל פעם שברצוננו להתייחס לסיכות GPIO נשתמש במילה 'IO'. אנחנו גם ייבאנו זמן ו datetime לקרוא את הערך של זמן מן RSP Pi.
ייבא RPi.GPIO כזמן ייבוא של GPIO, זמן תאריך
לפעמים, כאשר סיכות ה- GPIO, בהן אנו מנסים להשתמש, עשויות לבצע פונקציות אחרות. במקרה כזה נקבל אזהרות בזמן ביצוע התוכנית. הפקודה למטה אומרת ל- PI להתעלם מהאזהרות ולהמשיך בתוכנית.
IO.setwarnings (שקר)
אנו יכולים להפנות את סיכות ה- GPIO של PI, על ידי מספר סיכה על הלוח או על ידי מספר הפונקציה שלהן. כמו 'PIN 29' על הלוח הוא 'GPIO5'. אז אנו אומרים כאן או שנציג את הסיכה כאן על ידי '29' או '5'. GPIO.BCM פירושו שנציג 5 באמצעות GPIO5 סיכה 29.
IO.setmode (GPIO.BCM)
כמו תמיד עלינו להתחיל באתחול הסיכות, כאן גם סיכות הקטע וגם סיכות הספרה הן סיכות פלט. למטרת תכנות אנו יוצרים מערכים לסיכות קטע ומאתחלים אותם ל- '0' לאחר שהכרזנו כ- GPIO.OUT
קטע 8 = (26,19,13,6,5,11,9,10) עבור קטע במקטע 8: GPIO.setup (קטע, GPIO.OUT) פלט GPIO. (קטע, 0)
באופן דומה עבור סיכות הספרות אנו מכריזים עליהם כסיכות פלט והופכים אותם ל'0 'כברירת מחדל
#Digit 1 GPIO.setup (7, GPIO.OUT) GPIO.output (7, 0) # Off Off #Digit 2 GPIO.setup (8, GPIO.OUT) GPIO.output (8, 0) # Off בתחילה #Digit 3 GPIO.setup (25, GPIO.OUT) GPIO.output (25, 0) # Off Off #Digit 4 GPIO.setup (24, GPIO.OUT) GPIO.output (24, 0) # Off בתחילה
עלינו ליצור מערכים כדי להציג כל מספר בתצוגה של שבעה קטעים. כדי להציג מספר אחד עלינו לשלוט בכל 7 פינים של מקטעים (לא כולל סיכה נקודה), כלומר יש לכבות או להפעיל אותם. למשל כדי להציג את המספר 5 יש לנו את הסידור הבא
S.No |
מספר GPIO Rsp Pi |
שם של 7 קטעים |
סטטוס להצגת '5'. (0-> OFF, 1-> ON) |
1 |
GPIO 26 |
קטע א |
1 |
2 |
GPIO 19 |
קטע ב |
1 |
3 |
GPIO 13 |
קטע ג |
0 |
4 |
GPIO 6 |
קטע ד |
1 |
5 |
GPIO 5 |
קטע ה |
1 |
6 |
GPIO 11 |
קטע ו |
0 |
7 |
GPIO 9 |
קטע ז |
1 |
באופן דומה יש לנו מספר רצף עבור כל המספרים והאלפביתים. אתה יכול לכתוב לבד או להשתמש בתרשים למטה.
בעזרת נתונים אלה אנו יכולים ליצור מערכים עבור כל מספר בתוכנית הפיתון שלנו, כמוצג להלן.
null = zero = one = two = three = four = five = six = שבע = שמונה = תשע =
אם אתה עוקב אחר התוכנית תהיה פונקציה להציג כל תו בתצוגה 7-קטעים שלנו, אבל, בוא נדלג על זה לעת עתה ונכנס ללולאה האינסופית בזמן . היכן קרא את הזמן הנוכחי מ- Raspberry Pi ופצל את ערך הזמן בין ארבעה משתנים. לדוגמא אם הזמן הוא 10.45 אז למשתנה h1 יהיה 1, ל- h2 יהיה 0, ל- m1 יהיה 4 ואנד מ"ר יהיה 5.
עכשיו = datetime.datetime.now () שעה = now.hour דקה = now.minute h1 = שעה / 10 h2 = שעה% 10 m1 = דקה / 10 m2 = דקה% 10 הדפסה (h1, h2, m1, m2)
עלינו להציג את ארבעת הערכים המשתנים הללו בארבע הספרות שלנו בהתאמה. כדי לכתוב ערך של משתנה לספרה נוכל להשתמש בשורות הבאות. כאן אנו מוצגים בספרה 1 על ידי הפיכתה לגבוהה ואז הפונקציה print_segment (משתנה) תיקרא להצגת הערך במשתנה בתצוגת הקטע. ייתכן שאתה תוהה מדוע יש לנו עיכוב לאחר מכן ומדוע אנו מכבים ספרה זו לאחר מכן.
פלט GPIO. (7, 1) # הפעל הדפסת ספרה אחת (h1) # הדפס h1 על זמן הקטע. שינה (זמן עיכוב) פלט GPIO. (7, 0) # כבה את ספרה אחת
הסיבה היא שכידוע אנו יכולים להציג רק ספרה אחת בכל פעם, אך יש לנו ארבע ספרות להצגה ורק אם כל ארבע הספרות מוצגות המספר הארבע ספרתי השלם יהיה גלוי למשתמש.
אז איך להציג את כל 4 הספרות בו זמנית ?
למזלנו ה- MPU שלנו מהיר הרבה יותר מעין אנושית, אז מה שאנחנו עושים בפועל: אנו מציגים ספרה אחת בכל פעם, אך אנו עושים זאת מהר מאוד כפי שמוצג לעיל.
אנו בוחרים ספרה אחת המציגה אותה ממתינה לשתי ms (עיכוב זמן משתנה), כך שה- MPU וקטע 7 יכולים לעבד אותה ואז לכבות את אותה ספרה ולעבור לספרה הבאה ולעשות אותה עד שנגיע לספרה האחרונה. עיכוב אנושי אינו יכול להתבונן בעיכוב זה של 2ms, וכל ארבע הספרות נראות מופעלות בו זמנית.
הדבר האחרון ללמוד אותו כדי לדעת כיצד פועלת הפונקציה print_segment (משתנה) . בתוך פונקציה זו אנו משתמשים במערכים שהכרזנו עד כה. כך שלא משנה מה המשתנה שנשלח לפונקציה זו יהיה הערך בין (0-9), התו המשתנה יקבל ערך זה וישווה אותו לערך אמיתי. כאן משווים את המשתנה עם '1'. באופן דומה אנו משווים עם כל המספרים בין 0 ל 9. אם זה התאמה אנו משתמשים במערכים ומקצים כל ערך לסיכות הקטע בהתאמה שלו, כפי שמוצג להלן.
def print_segment (charector): if charector == 1: for i in range (7): GPIO.output (segment8, one)
זמן תצוגה בקטע בן 7 ספרות באמצעות Raspberry Pi:
השתמש בתרשים ובקוד המופיעים כאן בכדי ליצור את החיבורים ולתכנת את פי הפטל שלך בהתאם. לאחר שהכל נעשה פשוט הפעל את התוכנית ואתה אמור למצוא את השעה הנוכחית המוצגת בתצוגת שבעת החלקים. אבל, יש כמה דברים שאתה צריך לבדוק לפני זה
- ודא שהגדרת את ה- Raspberry Pi שלך עם הזמן הנוכחי, למקרה שהוא פועל בזמן לא מקוון.
- הפעל את ה- Raspberry pi שלך באמצעות מתאם ולא באמצעות המחשב הנייד / המחשב שלך מכיוון שכמות הזרם הנמשכת על ידי תצוגת 7 הקטעים גבוהה ויציאת ה- USB שלך אינה יכולה למקור אותו.
אם הכל עובד כצפוי, כדאי שתמצא משהו כזה למטה.
ניתן לבדוק את עבודתו המלאה של שעון פי פטל זה בסרטון הבא. מקווה שאהבתם את הפרויקט ונהניתם לבנות. ספר לי מה אתה חושב או אם אתה זקוק לעזרה.