תוכן עניינים:

שעון ניגר ברגרף: 6 שלבים (עם תמונות)
שעון ניגר ברגרף: 6 שלבים (עם תמונות)

וִידֵאוֹ: שעון ניגר ברגרף: 6 שלבים (עם תמונות)

וִידֵאוֹ: שעון ניגר ברגרף: 6 שלבים (עם תמונות)
וִידֵאוֹ: סטפן לגר - רק אני יודע (Prod. By Triangle) 2024, יולי
Anonim
שעון ניקי ברגרף
שעון ניקי ברגרף
שעון ניקי ברגרף
שעון ניקי ברגרף

ערוך 9/11/17 בעזרת Kickstarter שחררתי כעת ערכה לערכת השעון הזו! הוא כולל לוח נהגים ו -2 צינורות Nixie IN-9. כל מה שאתה צריך להוסיף הוא Arduino/Raspberry Pi/אחר שלך. את הערכה ניתן למצוא אך לחיצה על הקישור הזה!

אז ראיתי הרבה שעוני ניקסי באינטרנט וחשבתי שהם נראים נהדר, אולם לא רציתי להוציא 100 $+ על שעון שאפילו לא כולל את הצינורות! אז עם קצת ידע באלקטרוניקה צדתי סביב צינורות הניקסי השונים ומעגלים. רציתי לעשות משהו קצת שונה מהמגוון הגדול של שעוני ניקסי דומים בדרך כלל. בסופו של דבר בחרתי להשתמש בצינורות ברגרף של Nixie IN-9. אלה צינורות ארוכים ודקים וגובה הפלזמה הזוהרת תלוי בזרם דרך הצינורות. הצינור בצד שמאל הוא במרווחים של שעות והצינור מימין הוא בתוך דקות. יש להם רק שני מוליכים ולכן בניית מעגל ישר יותר קדימה. בעיצוב זה, יש צינור של שעה ודקה, כאשר גובה הפלזמה בכל צינור מייצג את הזמן הנוכחי. הזמן נשמר באמצעות מיקרו -בקר Adafruit Trinket ושעון בזמן אמת (RTC).

שלב 1: הרכבת החלקים

הרכבת החלקים
הרכבת החלקים

ישנם שני חלקים, ראשית האלקטרוניקה ושנית הרכבה וגימור. הרכיבים האלקטרוניים הנדרשים הם: Adafruit Trinket 5V - $ 7.95 (www.adafruit.com/products/1501) Adafruit RTC - $ 9 (www.adafruit.com/products/264) 2x Nixie IN -9 bargraph ~ 3 $ לכל צינור ב- eBay 1x Nixie 140v אספקת חשמל ~ $ 12 ב- eBay 4x 47 uF קבלים אלקטרוליטים 4x 3.9 קאוהם נגדים 2x 1 kOhm פוטנציומטר 2x טרנזיסטור MJE340 NPN מתח גבוה ~ $ 1 כל 1x LM7805 5v רגולטור ~ $ 1 1x 2.1mm שקע ~ $ 1 1x תיבת פרוייקט עם PCB ~ $ 5 1x ספק כוח 12 וולט DC (מצאתי ישן מאיזה גאדג'ט שנשכח מזמן) הלחמה, חוט חיבור וכו 'הרכבה: החלטתי להרכיב את האלקטרוניקה בקופסת פרויקט פלסטיק שחורה קטנה, ואז להרכיב את הצינורות בתנועת שעון עתיקה. לציון השעה והדקות השתמשתי בחוט נחושת העטוף את הצינורות. חלקי הרכבה: תנועת שעון עתיקה - $ 10 eBay חוט נחושת - $ 3 eBay אקדח דבק חם

שלב 2: מעגל

מעגל חשמלי
מעגל חשמלי
מעגל חשמלי
מעגל חשמלי
מעגל חשמלי
מעגל חשמלי
מעגל חשמלי
מעגל חשמלי

השלב הראשון הוא לבנות את ספק הכוח של ניקסי. זה בא כערכה קטנה ונחמדה מאיביי, כולל מעט PCB ופשוט היה צורך בהלחמה של הרכיבים ללוח. ההיצע המסוים הזה משתנה בין 110-180 וולט, ניתן לשליטה עם סיר קטן על הלוח. בעזרת מברג קטן התאם את הפלט ל ~ 140 וולט. לפני שהלכתי לדרך רציתי לבדוק את צינורות ה- nixie שלי. לשם כך בניתי מעגל בדיקה פשוט באמצעות צינור אחד, טרנזיסטור ופוטנציומטר 10k שהיה לי בסביבה. כפי שניתן לראות באיור הראשון, אספקת 140V מחוברת לאנודה הצינורית (רגל ימין). הקתודה (רגל שמאל) מחוברת לאחר מכן לרגל האספן של הטרנזיסטור MJE340. אספקת 5V מחוברת לסיר 10k המתחלק לקרקע לבסיס הטרנזיסטור. לבסוף פולט הטרנזיסטור מתחבר דרך נגד הגבלת זרם של 300 אוהם לקרקע. אם אינך מכיר טרנזיסטורים ואלקטרוניקה זה לא ממש משנה, פשוט חבר אותו ושנה את גובה הפלזמה בעזרת כפתור הסיר! ברגע שזה עובד נוכל להסתכל על יצירת השעון שלנו. ניתן לראות את מעגל השעון המלא בתרשים המעגלים השני. לאחר קצת מחקר מצאתי הדרכה מושלמת באתר Adafruit learn שעושה כמעט בדיוק את מה שרציתי לעשות. ניתן למצוא את ההדרכה כאן: https://learn.adafruit.com/trinket-powered-analog-m… הדרכה זו משתמשת בבקר Trinket ו- RTC לשליטה על שני מטרי אמפר אנלוגיים. שימוש באפנון רוחב הדופק (PWM) לשליטה על סטיית המחט. הסליל של מד המגבר ממוצע PWM לאות DC יעיל. אולם אם נשתמש ב- PWM ישירות להנעת הצינורות, אז אפנון בתדר גבוה פירושו שבר הפלזמה לא יישאר "מהודק" לבסיס הצינור ויהיה לך מוט מרחף. כדי להימנע מכך, עשיתי ממוצע של ה- PWM באמצעות מסנן מעבר נמוך עם קבוע זמן רב כדי לקבל אות כמעט DC. יש לזה תדר ניתוק של 0.8 הרץ, זה בסדר מכיוון שאנו מעדכנים את זמן השעון רק כל 5 שניות. בנוסף, מאחר שלברגרפים יש אורך חיים סופי ואולי יהיה צורך בהחלפה ולא כל צינור זהה לחלוטין כללתי סיר 1k לאחר הצינור. זה מאפשר לצבוט להתאים את גובה הפלזמה לשתי הצינורות. כדי לחבר את התכשיר לשעון בזמן אמת (RCT) חבר את Trinket-pin 0 ל- RTC-SDA, Pin-pin 2 ל- RTC-SCL ו- Trinket-5v ל- RTC-5v ואת ה- Trinket GND לקרקע RTC. עבור חלק זה עשוי להיות מועיל לצפות בהוראת השעון של Adafruit, https://learn.adafruit.com/trinket-powered-analog-…. ברגע שה- Trinket ו- RTC מחוברים כראוי, חברו את צינורות ה- Nixie, הטרנזיסטורים, המסננים וכו 'על לוח הלוח, עקבו בזהירות אחר תרשים המעגל.

כדי לדבר על RTC ו- Trinket תחילה עליך להוריד את הספריות הנכונות מ- Adafruit Github. אתה צריך TinyWireM.h ו- TInyRTClib.h. ראשית אנו רוצים לכייל את הצינורות, להעלות את הסקיצה לכייל בסוף ההוראה הזו. אם אף אחד מהרישומים בסוף לא עובד, נסה את סקיצת השעון של Adafruit. שיפרתי את סקיצת השעון של Adafruit כדי לעבוד בצורה היעילה ביותר עם צינורות ה- nixie, אך המערכון של Adafruit יעבוד מצוין.

שלב 3: כיול

כִּיוּל
כִּיוּל

לאחר שהעלית את סקיצת הכיול יש לסמן את הסיום.

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

ההגדרה השנייה מכיילת את צינור הדקות. הוא משתנה בין 0, 15, 30, 45 ל -60 דקות כל 5 שניות.

ההגדרה האחרונה חוזרת על זה בכל תוספת של שעה. שלא כמו שעון Adafruit מחוון השעות נע במרווחים קבועים אחת לשעה. היה קשה לקבל תגובה לינארית לכל שעה בעת שימוש במד אנלוגי.

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

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

שלב 4: הרכבה וגימור

הרכבה וגימור
הרכבה וגימור
הרכבה וגימור
הרכבה וגימור
הרכבה וגימור
הרכבה וגימור

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

שלב 5: סקיצה Arduino - כיול

#הגדר HOUR_PIN 1 // תצוגת שעות באמצעות PWM ב- Trinket GPIO #1

#define MINUTE_PIN 4 // תצוגת דקות באמצעות PWM ב- Trinket GPIO #4 (באמצעות שיחות טיימר 1)

אינט שעות = 57; דקות דקות = 57; // הגדר מינימום pwm

הגדרת חלל () {pinMode (HOUR_PIN, OUTPUT); pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // להגדיר יציאות PWM

}

לולאת void () {// השתמשו בזה כדי לצבוט את סירי ה- nixie כדי לוודא שגובה הצינור המרבי תואם analogWrite (HOUR_PIN, 255); analogWrite4 (255); // השתמש בזה כדי לכייל את מרווחי הדקות

/*

analogWrite4 (57); // עיכוב דקה 0 (5000); analogWrite4 (107); // עיכוב של דקה 15 (5000); analogWrite4 (156); // עיכוב של 30 דקות (5000); analogWrite4 (206); // עיכוב של דקה 45 (5000); analogWrite4 (255); // עיכוב של דקה 60 (5000);

*/

// השתמש בזה כדי לכייל את מרווחי השעות /*

analogWrite (HOUR_PIN, 57); // 57 הוא הפלט המינימלי ותואם לעיכוב של 1 am /pm (4000); // עיכוב 4 שניות analogWrite (HOUR_PIN, 75); // 75 הוא הפלט המתאים לעיכוב של 2 am /pm (4000); analogWrite (HOUR_PIN, 93); // 93 הוא הפלט המתאים לעיכוב של 3 בבוקר/שעה (4000); analogWrite (HOUR_PIN, 111); // 111 הוא הפלט המתאים לעיכוב של 4 בבוקר/שעה (4000); analogWrite (HOUR_PIN, 129); // 129 הוא הפלט המתאים לעיכוב של 5 בבוקר/שעה (4000); analogWrite (HOUR_PIN, 147); // 147 הוא הפלט המתאים לעיכוב של 6 בבוקר/שעה (4000); analogWrite (HOUR_PIN, 165); // 165 הוא הפלט המתאים לעיכוב של 7 בבוקר/שעה (4000); analogWrite (HOUR_PIN, 183); // 183 הוא הפלט המתאים לעיכוב של 8 בבוקר/שעה (4000); analogWrite (HOUR_PIN, 201); // 201 הוא הפלט המתאים לעיכוב של 9 בבוקר/שעה (4000); analogWrite (HOUR_PIN, 219); // 219 הוא הפלט המתאים לעיכוב של 10 בבוקר/שעה (4000); analogWrite (HOUR_PIN, 237); // 237 הוא הפלט המתאים לעיכוב של 11 בבוקר/שעה (4000); analogWrite (HOUR_PIN, 255); // 255 הוא הפלט המתאים ל -12 בבוקר/דקה

*/

}

void PWM4_init () {// הגדר PWM ב- Trinket GPIO #4 (PB4, סיכה 3) באמצעות טיימר 1 TCCR1 = _BV (CS10); // ללא מכשיר הגנה מראש GTCCR = _BV (COM1B1) | _BV (PWM1B); // נקה OC1B על השוואת OCR1B = 127; // מחזור תפקיד לאתחול ל- 50% OCR1C = 255; // תדירות }

// פונקציה לאפשר analogWrite ב- Trinket GPIO #4 void analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // החובה עשויה להיות 0 עד 255 (0 עד 100%)}

שלב 6: סקיצה Arduino - שעון

// שעון מד אנלוגי של Adafruit Trinket

// פונקציות תאריך ושעה באמצעות RTC DS1307 המחובר באמצעות I2C ו- lib TinyWireM

// הורד את הספריות האלה ממאגר Github של Adafruit ו // התקן בספריית Arduino Libraries שלך #כלול #כלול

// לצורך איתור באגים, קוד סידורי שאינו מגיב, השתמש בחבר FTDI עם סיכת ה- RX שלו המחוברת לפין 3 // תזדקק לתוכנית מסוף (כגון תוכנה חופשית PuTTY עבור Windows) המוגדרת ליציאת USB של חבר FTDI ב -9600 לשבח. אל תגיב על פקודות סדרתיות כדי לראות מה קורה // #הגדר HOUR_PIN 1 // תצוגת שעות באמצעות PWM ב- Trinket GPIO #1 #הגדר MINUTE_PIN 4 // תצוגה של דקות באמצעות PWM ב- Trinket GPIO #4 (באמצעות שיחות טיימר 1) // SendOnlySoftwareSerial Serial (3); // שידור סידורי ב- Trinket Pin 3 RTC_DS1307 rtc; // הגדר שעון בזמן אמת

הגדרת חלל () {pinMode (HOUR_PIN, OUTPUT); // הגדר סיכות מד PWM כפלט pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // הגדר טיימר 1 לעבודה PWM על פין טרינקט 4 TinyWireM.begin (); // Begin I2C rtc.begin (); // בגין DS1307 שעון בזמן אמת //Serial.begin(9600); // התחל צג סידורי ב- 9600 baud אם (! Rtc.isrunning ()) {//Serial.println("RTC אינו פועל! "); // השורה הבאה קובעת את ה- RTC לתאריך ושעה שסקיצה זו נערכה rtc.adjust (DateTime (_ DATE_, _TIME_)); }}

לולאת void () {uint8_t hourvalue, minutevalue; uint8_t שעה מתח, דקות מתח;

DateTime עכשיו = rtc.now (); // קבל את המידע RTC hourvalue = now.hour (); // קבל את השעה אם (ערך ערך> 12) ערך ערך -= 12; // שעון זה הוא 12 דקות ערך = now.minute (); // קבל את הפרוטוקולים

minuteevtage = מפה (minuteevalue, 1, 60, 57, 255); // המרת דקות למחזור עבודה של PWM

if (ערך ערך == 1) {analogWrite (HOUR_PIN, 57); } if (ערך ערך == 2) {analogWrite (HOUR_PIN, 75); // כל שעה מתאימה ל +18} if (ערך ערך == 3) {analogWrite (HOUR_PIN, 91); }

if (ערך ערך == 4) {analogWrite (HOUR_PIN, 111); } if (ערך ערך == 5) {analogWrite (HOUR_PIN, 126); } if (ערך ערך == 6) {analogWrite (HOUR_PIN, 147); } if (ערך ערך == 7) {analogWrite (HOUR_PIN, 165); } if (ערך ערך == 8) {analogWrite (HOUR_PIN, 183); } if (ערך ערך == 9) {analogWrite (HOUR_PIN, 201); } if (ערך ערך == 10) {analogWrite (HOUR_PIN, 215); } if (ערך ערך == 11) {analogWrite (HOUR_PIN, 237); } if (ערך ערך == 12) {analogWrite (HOUR_PIN, 255); }

analogWrite4 (דקות מתח); // analogwrite דקה יכולה להישאר זהה לעבודות המיפוי // קוד להרדים את המעבד עשוי להיות עדיף - נדחה את העיכוב (5000); // לבדוק זמן כל 5 שניות. אתה יכול לשנות זאת. }

void PWM4_init () {// הגדר PWM ב- Trinket GPIO #4 (PB4, סיכה 3) באמצעות טיימר 1 TCCR1 = _BV (CS10); // ללא מכשיר הגנה מראש GTCCR = _BV (COM1B1) | _BV (PWM1B); // נקה OC1B על השוואת OCR1B = 127; // מחזור תפקיד לאתחול ל- 50% OCR1C = 255; // תדירות }

// פונקציה לאפשר analogWrite ב- Trinket GPIO #4 void analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // החובה עשויה להיות 0 עד 255 (0 עד 100%)}

מוּמלָץ: