קיבלתי כמה לוחות ארדואינו, ורכיבי רדיו שונים כדי להכיר מקררי בקרה, הכותב החליט לעשות משהו מעניין ובאותו זמן שימושי. לאחר שמלאי מספר גדול של נוריות LED, הרעיון עלה ליצור שעון בינארי.
בצד האלקטרוניקה, שעון בינארי אינו מסובך במיוחד, אך המחבר סיבך את המשימה והחליט לא לשמור כפתורים ונורות LED. בתחילה, הפרויקט היה להשתמש ב 22 נוריות לד, 6 כפתורים וטוויטר אחד. היה גם רעיון להרכיב שעון על מגה ארדואינו בגלל מספר גדול יותר של סיכות, אך רישומי המשמרת 74HC595 התבררו כישועה.
חומרים:
- ארדואינו אונו
- 2 לוחות לחם בגודל מלא
- נוריות נוריות אדומות 7 יח '
- נוריות נוריות ירוקות 7 יחידות
- נוריות כחולות 6 יחידות
- 2 נוריות צהוב לבן
- נגדים 220 אוהם 25 יח '
- זמזם Piezo 1 pc
- 6 כפתורי טאקט
- רישומי תפוקת Shift 74HC595 בחבילה DIP-16 3 יחידות
- חוטי חיבור 90 יח '
- מודול שעון בזמן אמת מבוסס על שבב ה- RT1 DS1307
איך הכל יעבוד.
ישנם כעשרה סוגים של שעונים בינאריים. יש המראים זמן בפורמט עשרוני בינארי (BCD), ואחרים כמספרים בינאריים. מכיוון שהסופר לא אוהב במיוחד את שעון ה- BCD, הוא החליט להפוך את הבינארי הטהור שלו. יש אנשים שקשה יותר לקרוא אותם, אבל ההבדל אינו גדול, מכיוון שתרגום מספרים מבינארי לדצמבר הוא קל. גם תנאי מקדם ליוצר השעון היה אינדיקציה לשניות שנמצאות בשעון.
בנוסף, לשעון 6 כפתורים:
Set - אחראי על מצב הגדרת השעון / אזעקה ושמירת הפרמטר במצב ההגדרה.
מצב - אחראי על מעבר בין מצבי שעון, אזעקה וטיימר.
למעלה - בהגדרת שעון / אזעקה / טיימר, מגדיל את הפרמטר בזה אחר זה. בשעון המעורר ובטיימר, זה אחראי להפעלה ולביטול של המצב שנבחר. כאשר מופעל אות, הוא יכבה את אות האזעקה / טיימר.
למטה - בהגדרת שעון / אזעקה / טיימר, זה יקטין את הפרמטר בזה אחר זה. הטיימר ישהה אותו מבלי לאפס את הספירה לאחור. כאשר האזעקה נכבה, היא תעביר את האות למשך 5 דקות.
24/12 - שנה את פורמט הזמן.
עמום - אחראי להדלקה ולכיבוי של נוריות הלד (כאשר הנוריות כבויות, הכפתורים הנותרים מפסיקים לעבוד).
תרשים מיקום LED:
חיבור רכיב
הכותב יחבר את כל נוריות ה- LED בסדרה ועם נגן. הנגד מוחדר לאחד מסופי הנוריות, לא משנה איזה מהם. נוריות LED יחוברו באמצעות ריסטרי משמרת, לשבב זה יש 16 אנשי קשר.מספר סיכות זה מאפשר לך להשתמש במספר גדול של סיכות, לוקח רק 3 סיכות על הארדואינו.
הרמת משמרת Pinout 74HC595:
Q0-Q7 הם ממצאי הקופה שאליה יחוברו נוריות ה- LED.
Vcc - יושם עליו סיכת אספקת חשמל 5V.
GND - קרקע המחוברת ל- GND על ארדואינו.
OE - הסיכה אחראית להפעלה הפוכה של הסיכות, אך היא לא תשמש, היא פשוט מקוצרת לאדמה.
MR הוא סליקת רישום הפוכה, אין צורך לשלוט בו, ולכן הוא יהיה מחובר לאספקת חשמל 5V.
ST_CP - סיכה אחראית לעדכון סטטוס הקופה. בעת הקלטת המצב, יש צורך להחיל עליו LOW, לאחר ההקלטה - HIGH, כדי לעדכן את מצב היציאות. זה צריך להיות מחובר לסיכה שעל הארדואינו. אתה יכול לחבר סיכה זו בשלושה אוגרים במקביל.
SH_CP - סיכה, אחראית למשמרת בסיבית אחת מהפנקס. זה צריך להיות מחובר לסיכה שעל הארדואינו. הם מחוברים על מעגלי מיקרו גם במקביל.
DS - נתונים נשלחים לסיכה זו, הם מחוברים לפין שעל הארדואינו.
Q7 '- סיכה זו משמשת לחיבור מפל עם אוגרים אחרים 74HC595.
תרשים חיווט:
זמזם הפייזו יחובר לפין הארדואינו השלישי בסדרה עם הנגד. לפני שכלל את הטוויטר במעגל, המחבר בדק אילו סיכות תומכות ב- PWM, מכיוון שזה חובה עבורה. ב- Arduino Uno, PWM תומך בסיכות 3, 5, 6, 9, 10 ו- 11.
הכפתורים מחוברים באמצעות נגדים המובנים בארדואינו, כאשר צד אחד של הכפתורים מחובר לקרקע והשני לפינים של ארדואינו.
אז העיצוב הסופי נראה:
בנה על הגלשן
לאחר שרכש פרטים נוספים, החל הכותב להרכיב את הפרויקט על קרש הגישה על פי התוכניות. המראה עמד היה להיות צפוי, מכיוון ש- Breadboard מגביל את החופש במיקום הרכיבים, והדבקת חוטים לא יצרה הנאה אסתטית. אך ככל הנראה קרש הגישה מיועד לדגמי קרטון, אך לא למכשירים מוגמרים.
קוד התוכנית.
לאחר שהתמצא בתכנות, החליט הכותב לכתוב קוד בכוחות עצמו, מבלי להשתמש בפיתוחים של אנשים אחרים. השלב הראשון היה לכתוב תת-רוטינה, זה אחראי למצמוץ את כל הדיודות ולתת את האות בפיזו כשהוא מופעל. פונקציה זו מסייעת לאמת את שלמות המעגל, בדומה לזו המיושמת במכשירים רבים.
הסקיצה יצאה די גדולה, אז אתה יכול לשקול את התכונות העיקריות שלה.
עבודת לד.
מכיוון שגישה אל נוריות ה- LED דרך פנקס המשמרות, ראשית, היה צורך ליישם יותר שגרות עבור נוריות ה- LED. להפעלה קלה יותר עם דיודות, יושמו מספר פונקציות נוספות. מיושמים אפקטים שונים של הנפשת דיודות. כאשר השעון אינו מוגדר, הדיודות האחראיות על השעות והדקות יתחילו להבהב (כיוון ששעון רגיל מהבהב כאשר אינו מוגדר). לנורות הלד האחריות לשניות יש גם אנימציה משלהן, הדיודה יכולה לרוץ שמאלה וימינה במצב המעורר, או במצב הגדרת השעון.
לולאה ראשית.
התוכנית מוגדרת כך שתפעל כך: השעון מציג מידע בהתאם למצב הנוכחי, ומשנה את מצבו בהתאם לשימוש בכפתורים ואירועים. הכל נראה כמו כמות ניכרת של תנאים מקוננים. מצב הדיודות מתעדכן בכל פעם לאחר בדיקת מצב טיימרים וכפתורים באמצעות קריאה למטפל שלהם.
כמו כן, הכותב עשה עבודה נהדרת להפעלה נכונה של כפתורי הקלט והטיימרים. ניתן להוריד את קוד המקור של הסקיצה תחת המאמר.
הפעל פריסה
לאחר הדלקת הפרויקט, במבט ראשון, המכשיר עבד נכון ויציב. אבל המחבר מצא פגם, השעון היה מאחור בשנייה בשעה, במשך זמן רב זה יהפוך לטעות גדולה.
לאחר בחינת בעיה זו, נמצא כי Arduino Uno המקורי משתמש בתהודה קרמית, והוא חסר דיוק למדידת זמן בפרקי זמן ארוכים. הפיתרון הרציונלי ביותר היה לקנות שעון בזמן אמת, ובנוסף בגלל מודול זה, השעון בשעון לא ישתולל כשכבה. המחבר רכש את מודול Grove RTC מבית סטודיו Seeed. זהו לוח סיים עם שבב שעון. המחבר חיבר את הסיכות של מודול SDA ו- SCL לארדואינו על סיכות A4 ו- A5, GND לקרקע. מכיוון שהספק של 5 וולט תפוס על ידי לוח השעון, לא היה לאן לחבר את המודול. הכותב החליט להעביר את המודול מאחד מהסיכות הדיגיטליות, שיופעלו ללא הפסקה.כמו כן, המחבר היה צריך לשנות את קוד המקור ולהוסיף ספרייה של שעונים בזמן אמת.
הרכבת שעון
לאחר שסיימת עבודה ארוכה בקוד, הגיע הזמן להעניק למכשיר מראה שלם ולהעביר אותו מהקרש הלוח ללוח המודפס. קודם כל, היה צורך לבצע את החיווט ללוח. פריצינג שימש לכך, מכיוון שלסופר כבר היה מושג לגבי מראה השעון, והוא בנה תרשים מכשיר. הכותב גם התחקה אחר הלוח באופן ידני, זה לקח הרבה זמן.
פרויקט לייצור מעגלים מודפסים:
ייצור PCB הוזמן בסין. ל- Seeed Studio יש שירות לוח Fusion PCB. באמצעות פריצינג, הקובץ ייצא לפורמט מורחב גרבר, יצרני לוחות רבים עובדים איתו. כעבור שבועיים, הכותב קיבל את הדמיון המיוחל בדואר.
נותר רק כדי להלחם על הלוח כמה חלקים מאובקים. התוצאה המוגמרת לאחר ההלחמה נראתה הרבה יותר טובה מהמתווה שעל הלוח.
כותב הפרויקט עבד קשה זמן רב וקיבל את מבוקשו - שעון בינארי ייחודי עם טיימר ושעון מעורר. בעזרת תא הסוללה ניתן להציב את השעון בכל מקום. ארדואינו עמד בציפיות והתמודד לחלוטין עם המשימה.