- רכיבים נדרשים
- תצוגת קטע בת 4 ספרות
- 74HC595 Shift Register IC
- מודול DS3231 RTC
- תרשים מעגל
- תכנות Arduino UNO לתצוגה מרובת שבעה קטעים
שעוני קיר דיגיטליים הופכים פופולריים יותר בימים אלה והם טובים יותר משעון אנלוגי מכיוון שהוא מספק זמן מדויק בשעות, דקות ושניות וקל לקרוא את הערכים. בחלק מהשעונים הדיגיטליים יש מתקנים רבים כמו הצגת טמפרטורה, לחות, הגדרת אזעקות מרובות וכו '. רוב השעונים הדיגיטליים משתמשים בתצוגת שבע קטעים.
בנינו בעבר מעגלי שעונים דיגיטליים רבים באמצעות 7 תצוגות קטע או באמצעות 16x2 LCD. כאן תוכלו לתכנן את לוחות המעגלים המלאים של שעון דיגיטלי מבוסס AVR. הדרכה זו עוסקת ביצירת שעון דיגיטלי על ידי ריבוב תצוגות של ארבעה 7 קטעים באמצעות Arduino UNO והצגת השעה בפורמט HH: MM.
רכיבים נדרשים
- תצוגת קטע בת 4 ספרות
- 74HC595 IC
- מודול DS3231 RTC
- ארדואינו UNO
- קרש לחם
- חוטי חיבור
תצוגת קטע בת 4 ספרות
תצוגת 7 מגזרים בת 4 ספרות כוללת ארבע תצוגות בשבע קטעים המחוברות יחד או שאנחנו יכולים לומר מרובות יחד. הם משמשים להצגת ערכים מספריים וגם כמה אלפביתים עם עשרונים ונקודתיים. ניתן להשתמש בתצוגה לשני הכיוונים. ארבע ספרות שימושיות להכנת שעונים דיגיטליים או כמו ספירת מספרים בין 0 ל 9999. להלן התרשים הפנימי לתצוגת מקטע 4 ספרות.
לכל קטע יש נורית אחת עם בקרת LED בודדת. ישנם שני סוגים של שבעה תצוגות קטע כגון אנודה משותפת וקתודה משותפת. התמונה לעיל מציגה את תצוגת קטע הנפוצה מסוג אנודה 7.
אנודה נפוצה
ב- Common Anode, כל המסופים החיוביים (Anodes) של כל 8 נוריות ה- LED מחוברים זה לזה, הנקראים COM. וכל המסופים השליליים נשארים לבד או מחוברים לסיכות המיקרו-בקר. על ידי שימוש במיקרו-בקר, אם ההיגיון LOW מוגדר להאיר את פלח ה- LED המסוים והגדר את הלוגיקה High כדי לכבות את ה- LED.
קתודה משותפת
בקטודה המשותפת, כל המסופים השליליים (קתודה) של כל 8 נוריות ה- LED מחוברים יחד, הנקראים COM. וכל המסופים החיוביים נשארים לבד או מחוברים לסיכות המיקרו-בקר. על ידי שימוש במיקרו-בקר, אם הגדר לוגיקה HIGH כדי להאיר את ה- LED והגדר LOW לכיבוי ה- LED.
למידע נוסף על 7 תצוגות קטע כאן ובדוק כיצד ניתן להתממשק למיקרו-בקרים אחרים:
- ממשק תצוגת 7 קטעים עם ארדואינו
- ממשק תצוגת 7 קטעים עם פטל פי
- ממשק תצוגת שבע קטעים עם ARM7-LPC2148
- ממשק תצוגת 7 קטעים עם מיקרו-בקר PIC
- ממשק תצוגת 7 קטעים עם מיקרו-בקר 8051
74HC595 Shift Register IC
IC 74HC595 הידוע גם לפי סידורי 8-Bit - Shift יוצאות במקביל רישום. IC זה יכול לקבל קלט נתונים בסידרה ויכול לשלוט על 8 פינים של פלט במקביל. זה שימושי בהפחתת פינים המשמשים ממיקרו-בקר. אתה יכול למצוא את כל הפרויקטים הקשורים לרישום משמרות 74HC595 כאן.
עבודה של 74HC595 IC:
IC זה משתמש בשלושה פינים כגון Clock, Data & Latch עם המיקרו-בקר כדי לשלוט על 8 פינות הפלט של ה- IC. השעון משמש לאספקת פעימות ברציפות ממיקרו-בקר וסיכת נתונים משמשת לשליחת הנתונים כמו איזה פלט צריך להיות מופעל או כבוי בזמן השעון המתאים.
Pinout:
מספר סיכה |
שם סיכה |
תיאור |
1,2,3,4,5,6,7 |
סיכות פלט (Q1 עד Q7) |
ל- 74HC595 8 פינות פלט מתוכן 7 פינים אלה. ניתן לשלוט בהם באופן סדרתי |
8 |
קרקע, אדמה |
מחובר לקרקע של מיקרו-בקר |
9 |
(ש 7) פלט סדרתי |
סיכה זו משמשת לחיבור יותר מ 74HC595 אחד כמדורג |
10 |
(MR) איפוס מאסטר |
מאפס את כל התפוקות נמוכות. יש להחזיק אותו גבוה להפעלה רגילה |
11 |
(SH_CP) שעון |
זהו סיכת השעון אליה יש לספק את אות השעון מ- MCU / MPU |
12 |
(ST_CP) תפס |
סיכת התפס משמשת לעדכון הנתונים לסיכות הפלט. הוא פעיל גבוה |
13 |
(OE) פלט אפשרי |
הפלט Enable משמש לכיבוי הפלטים. יש להחזיק אותו נמוך להפעלה רגילה |
14 |
(DS) נתונים סידוריים |
זהו הסיכה אליה נשלחים נתונים, על בסיסה נשלטים 8 היציאות |
15 |
(Q0) פלט |
סיכת הפלט הראשונה. |
16 |
Vcc |
סיכה זו מפעילה את ה- IC, בדרך כלל משתמשים ב -5 וולט. |
מודול DS3231 RTC
DS3231 הוא מודול RTC. RTC מייצג שעון זמן אמת. מודול זה משמש לזכירת השעה והתאריך גם כאשר המעגל אינו מופעל. יש לו גיבוי סוללה CR2032 להפעלת המודול בהעדר כוח חיצוני. מודול זה כולל גם חיישן טמפרטורה. ניתן להשתמש במודול בפרויקטים משובצים כגון יצירת שעון דיגיטלי עם מחוון טמפרטורה וכו '. להלן כמה פרויקטים שימושיים המשתמשים בו:
- מזין חיות מחמד אוטומטי באמצעות ארדואינו
- ממשק RTC מודול (DS3231) עם מיקרו-בקר PIC: שעון דיגיטלי
- ממשק ממשק RTC (DS3231) עם MSP430: שעון דיגיטלי
- שעון בזמן אמת ESP32 באמצעות מודול DS3231
- שעון קיר דיגיטלי על גבי PCB באמצעות מיקרו בקר Atmega16 ו- DS3231 RTC
Pinout של DS3231:
שם סיכה |
להשתמש |
VCC |
מחובר למקור כוח חיובי |
GND |
מחובר לקרקע |
SDA |
סיכת נתונים טורית (I2C) |
SCL |
סיכת שעון טורית (I2C) |
SQW |
סיכת פלט גל מרובע |
32K |
פלט מתנד 32K |
מאפיינים ומפרטים:
- RTC מונה שניות, דקות, שעות ושנה
- חיישן טמפרטורה דיגיטלי עם דיוק של ± 3 מעלות צלזיוס
- הירשם לקיצוץ הזדקנות
- ממשק 400Khz I2C
- צריכת חשמל נמוכה
- גיבוי סוללה CR2032 עם חיי שנתיים-שלוש
- מתח הפעלה: 2.3 עד 5.5 וולט
תרשים מעגל
חיבור מעגל בין DS3231 RTC ו- Arduino UNO:
DS3231 |
ארדואינו UNO |
VCC |
5V |
GND |
GND |
SDA |
A4 |
SCL |
A4 |
חיבורי מעגלים בין 74HC595 IC ו- Arduino Uno:
74HC595 IC |
ארדואינו UNO |
11-SH_CP (SRCLK) |
6 |
12-ST_CP (RCLK) |
5 |
14-DS (נתונים) |
4 |
13-OE (תפס) |
GND |
8-GND |
GND |
10-MR (SRCLR) |
+ 5 וולט |
16-VCC |
+ 5 וולט |
חיבורי מעגלים בין IC 74HC595 וארבעה ספרות קטע שבע וארדואינו UNO:
מגזר בן 4 ספרות |
IC 74HC595 |
ארדואינו UNO |
א |
Q0 |
- |
ב |
שאלה 1 |
- |
ג |
שאלה 2 |
- |
ד |
שאלה 3 |
- |
ה |
ש 4 |
- |
F |
ש 5 |
- |
ז |
ש 6 |
- |
D1 |
- |
10 |
D2 |
- |
11 |
D3 |
- |
12 |
D4 |
- |
9 |
תכנות Arduino UNO לתצוגה מרובת שבעה קטעים
הקוד המלא וסרטון העבודה מצורפים בסוף הדרכה זו. בסעיף התכנות, כיצד יוסבר הזמן (שעה ודקה) ממודול ה- RTC בפורמט 24 שעות ואז הוא יומר לפורמט בהתאמה להצגתם בתצוגה 4-ספרתית של 7 קטעים.
כדי לממשק את מודול ה- RTC DS3231 עם Arduino UNO, נעשה שימוש באוטובוס I2C של Arduino UNO. ספרייה שנקראת
בתפיסה זו, השעה והדקה נלקחים תחילה מ- RTC והם משולבים יחד כמו 0930 (09:30) ואז הספרות הבודדות מופרדות כמו אלף, מאה, עשרות, יחידה והספרות הבודדות מומרות לפורמט בינארי כמו 0 לתוך 63 (0111111). קוד בינארי זה נשלח למאגר משמרות ואז ממרשם המשמרות לשבעה קטעים, ומציג בהצלחה את הספרה 0 בתצוגת שבע קטעים. בדרך זו, ארבע הספרות מרובות ומוצגות שעה ודקה.
בתחילה, הספרייה ההכרחית כלול כגון ספריית DS3231 וספרייה בנקאית (ספריית I2C).
#לִכלוֹל
הפינים מוגדרים עבור בקרת שבעת המגזרים. פקדים אלה ימלאו תפקיד חשוב בריבוב התצוגה.
# הגדר תפס סיכה 5 # הגדר שעון סיכה 6 # הגדר נתונים סיכה 4 # הגדר נקודה 2
המשתנים מוצהרים כדי לאחסן את התוצאה המרה או הגולמית שנלקחה מה- RTC.
int h; // המשתנה הוכרז למשך שעה int m; // המשתנה הוכרז לדקות אלפי דקות ; int מאות; int עשרות; יחידת int; בול h24; ראש הממשלה bool;
בשלב הבא האובייקט של הכיתה DS3231 מוכרז כ- RTC כדי לפשט את השימוש בשורות נוספות.
DS3231 RTC;
כמודול RTC מתממשק עם Arduino באמצעות תקשורת I2C. אז, wire.begin () משמש להפעלת תקשורת I2C בכתובת ברירת המחדל של RTC מכיוון שאין מודולי I2C אחרים.
Wire.begin ();
מצב הסיכה מוגדר, אם GPIO יתנהג כמו פלט או קלט.
pinMode (9, OUTPUT); pinMode (10, OUTPUT); pinMode (11, OUTPUT); pinMode (12, OUTPUT); pinMode (latchPin, OUTPUT); pinMode (clockPin, OUTPUT); pinMode (dataPin, OUTPUT); pinMode (נקודה, OUTPUT);
הלולאה עוברת לאין ערוך וזה לוקח זמן בשעה ודקה ממודול RTC DS3231. 'h24' מציין את המשתנה בפורמט 24 שעות.
int h = RTC.getHour (h24, PM); int m = RTC.getMinute ();
ואז השעה והדקה משולבים כמספר אחד (לדוגמא אם שעה היא 10 דקות הוא 60 אז המספר הוא 10 * 100 = 1000 + 60 = 1060).
מספר int = h * 100 + m;
הספרות הבודדת מתוך מספר המתקבלים (למשל 1060- 1 היא אלפים, 0 הוא hundered, 1 היא עשירי ו 0 היא הספרה אחרונה). כדי להפריד בין הספרות משתמשים במפעיל המודולוס. לדוגמא, בשנת 1060 לקבל 1 אז 1060/1000 = 1.06% 10 = 1). אז ספרות נפרדות נשמרות במשתנים נפרדים.
int אלפים = מספר / 1000% 10; int מאות = מספר / 100% 10; int עשרות = מספר / 10% 10; יחידה int = מספר% 10;
לאחר מכן מוגדרת הצהרת מקרה להחלפה עבור כל ספרה בודדת להמרתם לפורמט בהתאמה (פורמט בינארי) ושליחתם באמצעות הרשמת משמרות להצגה ב 7 קטעים. לדוגמא (עבור ספרה אחת זה שונה ל- 06 (0000 0110)). כך שהוא נשלח באמצעות משמרת וספרה אחת מוצגת ב 7 קטעים (0 עבור LOW, 1 עבור HIGH).
מתג (t) { מקרה 0: יחידה = 63; לשבור; מקרה 1: יחידה = 06; לשבור; מקרה 2: יחידה = 91; לשבור; מקרה 3: יחידה = 79; לשבור; מקרה 4: יחידה = 102; לשבור; מקרה 5: יחידה = 109; לשבור; מקרה 6: יחידה = 125; מקרה 7: יחידה = 07; לשבור; מקרה 8: יחידה = 127; לשבור; מקרה 9: יחידה = 103; לשבור; }
ואז הספרה האישית בפורמט בינארי נשלחת באמצעות פונקציית 'shiftout' עם MSB תחילה וסיכת הספרות בהתאמה נעשית גבוהה וסיכת התפס נעשית גבוהה.
digitalWrite (9, LOW); digitalWrite (latchPin, LOW); shiftOut (dataPin, clockPin, MSBFIRST, אלפים); digitalWrite (latchPin, HIGH); digitalWrite (9, HIGH); עיכוב (5);
זה מסיים את הקוד השלם. רוב ההסבר על הפונקציה ניתן בקטע הערת הקוד ממש ליד שורת הקוד. תדירות השעון תחליט את תצוגת הזמן ואיכות הריבוב כלומר אם משתמשים בשעון נמוך אז ניתן לראות את ההבהוב איפה כאילו מהירות השעון גבוהה אז לא יהיה מהבהב כזה וניתן לראות זמן יציב.
שים לב שכדי לגשת למודול RTC, יש לשמור על מתח האוטובוס I2C. על מנת לתת הצעה כלשהי או אם יש לך ספק, אנא הגיב למטה.