0.000011574Hz, חלק שני

פחות מ-150 מחזורי שעון מאז הפוסט הקודם בנושא: הנה הפרטים על השלמת פרויקט "גלאי השבת", המערכת מבוססת המיקרו-בקר האיטית ביותר בעולם שעוד יש לה איזשהו שימוש…

גלאי השבת בפעולה
גלאי השבת בפעולה

אם כן, היה לי כבר קוד עם לולאה ראשית של 7 מחזורי שעון בדיוק, שמדליקה את הלד למשך מחזור אחד בכל "סיבוב", ואת התיאוריה והרכיבים ליצירה של אות שעון מחילופי היום והלילה. עכשיו נשאר רק להרכיב הכול ביחד.

כדי ליצור אות שעון שימושי הייתי זקוק למשהו שיהפוך את הקלט האנלוגי (שמתקבל ממחלק מתח שכולל נגד תלוי-אור) לסיגנל דיגיטלי, שיהפוך ל-LOW אך ורק כשחשוך באמת בחוץ (בניגוד, נניח, ליום מעונן) ויהפוך ל-HIGH רק כשהאור הוא אור יום במובהק (בניגוד למשל לירח מלא). במצבי תאורה בין לבין, הסיגנל צריך להישאר כפי שהיה קודם, ובמילה אחת – היסטרזיס.

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

ראשית בדקתי ב-Datasheet, ולפי המידע שם, החשש לא היה מבוסס: אמנם יש היסטרזיס אך הטווח שלו מצומצם למדי ולא מספיק בשביל המערכת שלי. ליתר ביטחון הוצאתי את המיקרו-בקר מהמעגל (בגלל דברים כאלה, בין השאר, אני תמיד שם את הג'וקים ב-Socket ולא מלחים אותם ישירות ל-PCB). צרבתי את הפיוזים שלו מחדש כך שאות השעון של המערכת ייצא אוטומטית מפין אחר, ובעזרת פוטנציומטר שיחקתי עם המתח שנכנס לפין הכניסה של השעון ובדקתי מהם ספי המתח שבהם המיקרו-בקר מחשיב את הקלט כ-LOW או כ-HIGH. כפי שצוין ב-Datasheet, הם היו די קרובים למתח הכניסה חלקי שתיים.

החזרתי את ה-ATtiny85 למעגל עם הפתרון המקורי שלי: רכיב משווה (Comparator) עם פלט Push-Pull. המשווה מוציא מתח HIGH כשהמתח בכניסה הראשונה גבוה מהמתח בכניסה השנייה, ו-LOW כשהמתח בשנייה גבוה מהמתח בראשונה. המשמעות של Push-Pull היא שהפלט של המשווה הוא לא סתם רפרנס, אלא יכולת ממשית "לדחוף" (Push) זרם – בסביבות 20 מיליאמפר – כשהפלט הוא HIGH, ולקלוט (Pull) זרם כזה ממקור חיצוני כשהוא LOW.

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

המעגל הסופי של "גלאי השבת". משמאל למטה המיקרו-בקר, מימין למעלה המשווה.
המעגל הסופי של "גלאי השבת". משמאל למטה המיקרו-בקר, מימין למעלה המשווה.

מקור החשמל למעגל הוא 3 סוללות AA, עם מייצב מתח ל-3.3V. השתמשתי בשני חיישני אור (LDR) במקביל, ש"מסתכלים" בכיוונים הפוכים, כדי להקטין את הסיכוי לקריאות שווא בגלל צל חולף, ושמתי הכול בתוך מארז מסוגנן של שעון יד, עם דפנות פלסטיק שקופות. הצלחתי גם לחתוך את ה-PCB בגודל כזה, שהוא מוחזק על ידי הלחץ של הדפנות בלבד בלי שום דבק או ברגים, ונראה כאילו הוא צף באוויר.

תהליך האתחול של המיקרו-בקר (בחומרה + בתוכנה שלי) נמשך כ-40 מחזורי שעון עד שמתחילה הלולאה הראשית. כדי לא לחכות חודש וחצי רק כדי שהמערכת תתחיל לעבוד, הוספתי headers (משמאל למעלה בתמונה הקודמת) כדי שאוכל "להזריק" למיקרו-בקר אותות מהירים יותר.

המערכת במלוא הדרה
המערכת במלוא הדרה

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

2 thoughts on “0.000011574Hz, חלק שני”

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

    1. לא מצאתי עדיין מקום נוח ובטיחותי בחוץ, אז בינתיים זה יושב בחדר העבודה שלי – והאמת שרוב הזמן מואר שם ברציפות, כך שסדרי הגודל של הזמנים די דומים, ואכן אחת לכמה ימים זה נדלק 🙂

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *