Mündəricat:
- Addım 1: Parçaların yığılması
- Addım 2: Dövrə
- Addım 3: Kalibrləmə
- Addım 4: Montaj və bitirmə
- Addım 5: Arduino Sketch - Kalibrləmə
- Addım 6: Arduino Sketch - Saat
Video: Nixie Bargraph Saatı: 6 Addım (Şəkillərlə birlikdə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:49
Kickstarter -in köməyi ilə bu saat dəsti üçün bir dəst buraxdım! Sürücü lövhəsi və 2 Nixie IN-9 borusu daxildir. Əlavə etməyiniz lazım olan tək şey öz Arduino/Raspberry Pi/digəridir. Kit tapa bilərsiniz, ancaq bu linki vurun!
İnternetdə bir çox Nixie saatı gördüm və çox gözəl göründüyünü düşündüm, amma hətta borular daxil olmayan saata 100 dollar+ xərcləmək istəmədim! Buna görə də bir az elektronika biliyimlə müxtəlif nixie boruları ətrafında ovladım. və sxemlər. Ümumiyyətlə olduqca oxşar görünüşlü nixie saatlarından bir az fərqli bir şey etmək istədim. Sonda Nixie IN-9 bargraph borulardan istifadə etməyi seçdim. Bunlar uzun nazik borulardır və parlayan plazmanın hündürlüyü borulardan keçən cərəyana bağlıdır. Solda olan boru saatlarla, sağdakı boru isə dəqiqədir. Yalnız iki qurğuşun var və buna görə də bir dövrə qurmağı daha da irəli aparırlar. Bu dizaynda, hər borudakı plazmanın yüksəklikləri cari vaxtı təmsil edən bir saat və bir dəqiqə borusu var. Vaxt Adafruit Trinket mikrokontrolörü və real vaxt saatı (RTC) ilə saxlanılır.
Addım 1: Parçaların yığılması
İki hissə var, birincisi elektronika, ikincisi isə montaj və bitirmə. Lazım olan elektron komponentlər bunlardır: Adafruit Trinket 5V - 7.95 dollar (www.adafruit.com/products/1501) Adafruit RTC - 9 dollar (www.adafruit.com/products/264) 2x Nixie IN -9 bargraph ~ eBay 1x -də boru başına 3 dollar Nixie 140v enerji təchizatı ~ eBay -də 12 dollar 4x 47 uF elektrolit kondansatörləri 4x 3.9 kOhm rezistorlar 2x 1 kOhm potensiometr 2x Transistor MJE340 NPN yüksək gərginlik ~ 1 ədəd hər biri 1x LM7805 5v tənzimləyici ~ $ 1 x 2.1 mm yuva ~ 1 $ x 1 ədəd layihə qutusu 12v DC enerji təchizatı (çoxdan unudulmuş bir gadgetdan köhnə birini tapdım) Lehim, bağlama teli və s. Montaj: Elektronikanı kiçik bir qara plastik layihə qutusuna, sonra boruları antik bir saat hərəkətinə bağlamağa qərar verdim. Saatı və dəqiqələri qeyd etmək üçün borulara bükülmüş mis teldən istifadə etdim. Montaj hissələri: Antik saat hərəkəti - 10 dollar eBay Mis tel - 3 dollar eBay İsti yapışqan silahı
Addım 2: Dövrə
İlk addım Nixie enerji təchizatı qurmaqdır. Bu, kiçik bir PCB də daxil olmaqla eBay -dən gözəl bir kiçik dəst kimi gəldi və yalnız lövhəyə lehimlənməli olan komponentlərə ehtiyac duydu. Bu xüsusi təchizat lövhədə kiçik bir qazan ilə idarə oluna bilən 110-180v arasında dəyişkəndir. Kiçik bir tornavida istifadə edərək çıxışı ~ 140v -ə tənzimləyin. Bütün yola getməzdən əvvəl nixie borularımı sınamaq istədim, bunun üçün bir borudan, tranzistordan və ətrafımda çəkdiyim 10k potensiometrdən istifadə edərək sadə bir sınaq dövrəsi qurdum. Birinci şəkildə göründüyü kimi, 140v təchizatı boru anoduna (sağ ayağa) bağlıdır. Katod (sol ayaq) daha sonra MJE340 tranzistorunun kollektor ayağına qoşulur. Transistor bazasına yerə bölünən 10k qazana 5V -lik bir enerji təchizatı qoşulur. Nəhayət, tranzistor yayıcısı 300 ohm cərəyan məhdudlaşdıran bir rezistor vasitəsilə yerə bağlanır. Transistorlar və elektronika ilə tanış deyilsinizsə, bunun heç bir əhəmiyyəti yoxdur, sadəcə tel bağlayın və qazan düyməsiylə plazma hündürlüyünü dəyişdirin! İşlədikdən sonra saatımızı düzəltməyə baxa bilərik. Tam saat dövrəsini ikinci dövrə diaqramında görmək olar. Bəzi araşdırmalardan sonra Adafruit öyrənmək saytında demək olar ki, etmək istədiyim şeyi edən mükəmməl bir dərs tapdım. Dərsliyi burada tapa bilərsiniz: https://learn.adafruit.com/trinket-powered-analog-m… Bu təlimatda iki analoq amp sayğacını idarə etmək üçün Trinket nəzarətçisi və RTC istifadə olunur. İğnənin əyilməsini idarə etmək üçün nəbz genişliyi modulyasiyasından (PWM) istifadə etmək. Amper sayğacının bobini, PWM -ni effektiv bir DC siqnalına çevirir. Boruları idarə etmək üçün PWM -dən birbaşa istifadə etsək, yüksək tezlikli modulyasiya o deməkdir ki, plazma çubuğu borunun əsasına "bərkidilməyəcək" və sizdə uçan bir çubuq olacaq. Bunun qarşısını almaq üçün, demək olar ki, DC siqnalı almaq üçün uzun müddət sabit olan aşağı keçid filtrindən istifadə edərək PWM -ni orta hesabla aldım. Bu, 0.8 Hz kəsmə tezliyinə malikdir, bu çox yaxşıdır, çünki hər 5 saniyədə bir saat vaxtını yeniləyirik. Əlavə olaraq, bargrafların sonlu ömrü var və dəyişdirilməsi lazım ola bilər və hər boru eyni deyil, borudan sonra 1k qab əlavə etdim. Bu, iki boru üçün plazma hündürlüyünü tənzimləməyə imkan verir. Bibloyu real vaxt saatına (RCT) bağlamaq üçün Trinket-pin 0-ı RTC-SDA-ya, Trinket-pin 2-ni RTC-SCL-ə və Trinket-5v-ni RTC-5v-ə və Trinket GND-ni RTC-yə qoşun. Bu hissədə, Adafruit saat təlimatına baxmaq faydalı ola bilər, https://learn.adafruit.com/trinket-powered-analog-…. Biblo və RTC düzgün bir şəkildə bağlandıqdan sonra, sxem sxemini diqqətlə izləyərək çörək taxtasına nixie borularını, tranzistorları, filtrləri və s.
RTC və Trinket ilə danışmaq üçün əvvəlcə Adafruit Github -dan düzgün kitabxanaları yükləməlisiniz. TinyWireM.h və TInyRTClib.h lazımdır. Əvvəlcə boruları kalibr etmək, bu təlimatın sonunda kalibrləmə eskizini yükləmək istəyirik. Sonda heç bir eskiz işləmirsə, Adafruit saat eskizini sınayın. Adafruit saat eskizini nixie borularla ən təsirli işləməsi üçün düzəltdim, amma Adafruit eskizi yaxşı işləyəcək.
Addım 3: Kalibrləmə
Kalibrləmə eskizini yüklədikdən sonra məzunların işarələnməsi lazımdır.
Kalibrləmə üçün üç rejim var, birincisi hər iki nixie borusunu maksimum çıxışa qoyur. Qazanı hər iki borudakı plazma hündürlüyünün eyni olması və maksimum hündürlüyün bir qədər aşağı olması üçün tənzimləmək üçün istifadə edin. Bu, cavabın bütün saat aralığında xətti olmasını təmin edir.
İkinci parametr dəqiqə borusunu kalibr edir. Hər 5 saniyədə 0, 15, 30, 45 və 60 dəqiqə arasında dəyişir.
Son ayar bunu hər saatlıq artım üçün təkrarlayır. Adafruit saatından fərqli olaraq saat göstəricisi saatda bir dəfə sabit artımlarla hərəkət edir. Analog sayğacdan istifadə edərkən hər saat üçün xətti cavab almaq çətin idi.
Qazanı düzəltdikdən sonra bir neçə dəqiqə ərzində kalibr etmək üçün eskizi yükləyin. İncə mis tel götürün və qısa bir uzunluq kəsin. Bu borunun ətrafına sarın və iki ucunu bir -birinə bükün. Bunu doğru yerə sürüşdürün və isti bir yapışqan tabancasından istifadə edərək kiçik bir yapışqan qoyun. Bunu hər dəqiqə və saat artımı üçün təkrarlayın.
Bu prosesin hər hansı bir şəklini çəkməyi unutmuşam, ancaq telin necə bağlandığını şəkillərdən görə bilərsiniz. Tel bağlamaq üçün daha az yapışqan istifadə etsəm də.
Addım 4: Montaj və bitirmə
Boruların hamısı kalibrləndikdən və işlədikdən sonra dövrəni daimi olaraq düzəltməyin və bir növ bazaya montaj etməyin vaxtıdır. Antik, 60 -cı illərin və müasir texnologiyanın qarışığını bəyəndiyim üçün antik bir saat hərəkəti seçirəm. Çörək taxtasından lövhəyə keçərkən çox diqqətli olun və bütün əlaqələrin qurulmasını təmin etmək üçün vaxt ayırın. Aldığım qutu bir az kiçik idi, amma diqqətli yerləşdirmə və bir az məcbur etməklə hamısını uyğunlaşdırmağı bacardım. Yan tərəfdə enerji təchizatı üçün bir deşik açdım və nixie ucları üçün. Hər hansı bir şortdan qaçmaq üçün nixie tellərini örtdüm. Elektronik qutuya quraşdırıldıqda saatın arxasına yapışdırılır. Boruları quraşdırmaq üçün isti yapışqan istifadə etdim və bükülmüş telin uclarını metala yapışdırdım, düz olduğundan əmin olmaq üçün diqqətli oldum. Çox güman ki, çox yapışqan istifadə etdim, amma çox da nəzərə çarpmır. Gələcəkdə təkmilləşdirilə biləcək bir şey ola bilər. Hamısı quraşdırıldıqda, bu təlimatın sonunda Nixie saat eskizini yükləyin və sevimli yeni saatınıza heyran olun!
Addım 5: Arduino Sketch - Kalibrləmə
#define HOUR_PIN 1 // Trinket GPIO #1 -də PWM vasitəsilə saat görüntüsü
#define MINUTE_PIN 4 // Trinket GPIO #4 -də PWM vasitəsilə dəqiqəlik ekran (Timer 1 zəngləri vasitəsilə)
int saat = 57; int dəqiqə = 57; // minimum pwm təyin edin
void setup () {pinMode (HOUR_PIN, OUTPUT); pinMode (MINUTE_PIN, ÇIXIŞ); PWM4_init (); // PWM çıxışlarını qurun
}
void loop () {// Maksimum borunun hündürlüyünün analogWrite (HOUR_PIN, 255) ilə uyğun olduğundan əmin olmaq üçün nixie qablarını çimdikləmək üçün bunu istifadə edin; analogWrite4 (255); // Dəqiqə artımlarını kalibr etmək üçün bundan istifadə edin
/*
analogWrite4 (57); // dəqiqə 0 gecikmə (5000); analogWrite4 (107); // 15 dəqiqə gecikmə (5000); analogWrite4 (156); // 30 dəqiqə gecikmə (5000); analogWrite4 (206); // dəqiqə 45 gecikmə (5000); analogWrite4 (255); // dəqiqə 60 gecikmə (5000);
*/
// Saat artımlarını kalibr etmək üçün bundan istifadə edin /*
analogWrite (HOUR_PIN, 57); // 57 minimum çıxışdır və 1 am /pm gecikməsinə (4000) uyğundur; // gecikmə 4 saniyə analogWrite (HOUR_PIN, 75); // 75, 2 am /pm gecikməsinə (4000) uyğun gələn çıxışdır; analogWrite (HOUR_PIN, 93); // 93, 3 am /pm gecikməsinə (4000) uyğun gələn çıxışdır; analogWrite (HOUR_PIN, 111); // 111, 4 am /pm gecikməsinə (4000) uyğun gələn çıxışdır; analogWrite (HOUR_PIN, 129); // 129, 5 am /pm gecikməsinə (4000) uyğun gələn çıxışdır; analogWrite (HOUR_PIN, 147); // 147, 6 am /pm gecikməsinə (4000) uyğun gələn çıxışdır; analogWrite (HOUR_PIN, 165); // 165, 7 am /pm gecikməsinə (4000) uyğun gələn çıxışdır; analogWrite (HOUR_PIN, 183); // 183, 8 am /pm gecikməsinə (4000) uyğun gələn çıxışdır; analogWrite (HOUR_PIN, 201); // 201, 9 am /pm gecikməsinə (4000) uyğun gələn çıxışdır; analogWrite (HOUR_PIN, 219); // 219, 10 am /pm gecikməsinə (4000) uyğun gələn çıxışdır; analogWrite (HOUR_PIN, 237); // 237, 11 am /pm gecikməsinə (4000) uyğun gələn çıxışdır; analogWrite (HOUR_PIN, 255); // 255, 12 am/pm -ə uyğun gələn çıxışdır
*/
}
void PWM4_init () {// Taymer 1 TCCR1 = _BV (CS10) istifadə edərək Trinket GPIO #4 (PB4, pin 3) üzərində PWM qurun; // prescaler yoxdur GTCCR = _BV (COM1B1) | _BV (PWM1B); // müqayisədə OC1B sil OCR1B = 127; // vəzifə dövrü 50% OCR1C = 255 olaraq işə salınır; // tezlik}
// Trinket GPIO #4 -də analogWrite -ə imkan verən funksiya analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // rüsum 0 ilə 255 arasında ola bilər (0 ilə 100%arasında)}
Addım 6: Arduino Sketch - Saat
// Adafruit Trinket analog sayğac saatı
// I2C və TinyWireM lib vasitəsi ilə əlaqəli DS1307 RTC istifadə edərək tarix və vaxt funksiyaları
// Bu kitabxanaları Adafruit -in Github deposundan yükləyin və // Arduino Kitabxanalarınızın kataloquna daxil edin #include #include
// Hata ayıklamaq, seriya kodunu qeyd etmək üçün, Pin 3 -ə bağlı RX pinli bir FTDI Dostu istifadə edin // FTDI dostunun // USB portuna 9600 -də // quraşdırılmış bir terminal proqramına (Windows üçün pulsuz PuTTY kimi) ehtiyacınız olacaq. baud. Nələr olduğunu görmək üçün Serial əmrlərini ləğv edin // #HOUR_PIN 1 təyin edin // Trinket GPIO #1 -də PWM vasitəsilə saat görüntüsü #MINUTE_PIN 4 -ü təyin edin // Trinket GPIO #4 -də PWM vasitəsilə dəqiqəlik ekran (Taymer 1 zəngləri ilə) // SendOnlySoftwareSerial Serial (3); // Trinket Pin 3 -də seriya ötürülməsi RTC_DS1307 rtc; // Real vaxt saatı qurun
void setup () {pinMode (HOUR_PIN, OUTPUT); // PWM sayğac pinlərini pinMode (MINUTE_PIN, ÇIXIŞ) kimi təyin edin; PWM4_init (); // Taymer 1 -i Trinket Pin 4 TinyWireM.begin () üzərində PWM işləməsi üçün təyin edin; // Başla I2C rtc.begin (); // DS1307 real vaxt saatına başlayın //Serial.begin(9600); // (! Rtc.isrunning ()) {//Serial.println("RTC işləmir! ") Olduqda Serial Monitoru 9600 baudda başlayın; // aşağıdakı xətt RTC -ni bu eskizin tərtib edildiyi tarix və saata təyin edir rtc.adjust (DateTime (_ DATE_, _TIME_)); }}
void loop () {uint8_t hourvalue, minutevalue; uint8_t saat gərginliyi, minutevoltage;
DateTime indi = rtc.now (); // RTC məlumatını alın saat dəyəri = indi.hour (); // Əgər saatı alın (hourvalue> 12) hourvalue -= 12; // Bu saat 12 saatdır minutevalue = now.minute (); // Dəqiqələri əldə edin
minutevoltage = xəritə (minutevalue, 1, 60, 57, 255); // Dəqiqələri PWM vəzifə dövrünə çevirin
if (hourvalue == 1) {analogWrite (HOUR_PIN, 57); } if (hourvalue == 2) {analogWrite (HOUR_PIN, 75); // hər saat +18} -ə uyğundur (hourvalue == 3) {analogWrite (HOUR_PIN, 91); }
if (hourvalue == 4) {analogWrite (HOUR_PIN, 111); } if (hourvalue == 5) {analogWrite (HOUR_PIN, 126); } if (hourvalue == 6) {analogWrite (HOUR_PIN, 147); } if (hourvalue == 7) {analogWrite (HOUR_PIN, 165); } if (hourvalue == 8) {analogWrite (HOUR_PIN, 183); } if (hourvalue == 9) {analogWrite (HOUR_PIN, 201); } if (hourvalue == 10) {analogWrite (HOUR_PIN, 215); } if (hourvalue == 11) {analogWrite (HOUR_PIN, 237); } if (hourvalue == 12) {analogWrite (HOUR_PIN, 255); }
analogWrite4 (minimum gərginlik); // dəqiqəlik analoq yazma, Xəritəçəkmə işləri ilə eyni qala bilər // prosessoru yuxuya qoymaq üçün koda üstünlük verilə bilər - gecikməni gecikdirəcəyik (5000); // hər 5 saniyədə bir vaxt yoxlayın. Bunu dəyişə bilərsiniz. }
void PWM4_init () {// Taymer 1 TCCR1 = _BV (CS10) istifadə edərək Trinket GPIO #4 (PB4, pin 3) üzərində PWM qurun; // heç bir prescaler yoxdur GTCCR = _BV (COM1B1) | _BV (PWM1B); // müqayisədə OC1B sil OCR1B = 127; // vəzifə dövrü 50% OCR1C = 255 olaraq işə salınır; // tezlik}
// Trinket GPIO #4 -də analogWrite -ə imkan verən funksiya analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // rüsum 0 ilə 255 arasında ola bilər (0 ilə 100%arasında)}
Tövsiyə:
Başqa bir Nixie Saatı: 6 Addım (Şəkillərlə birlikdə)
Başqa bir Nixie Saatı: Həmişə bir nixie saatı istəmişəm, məni heyran edən parlaq nömrələrdə bir şey var. Ebayda çox da bahalı olmayan IN12 -lər tapanda aldım, aldığımda heyrətləndim, amma tezliklə bunu başa düşdüm
Təqaüd Saatı / Sayma / Dn Saatı: 4 Adım (Şəkillərlə)
Təqaüd Saatı / Sayma / Dn Saatı: Çekmecede bu 8x8 LED nöqtə matrisli ekranlardan bir neçəsi vardı və onlarla nə edəcəyimi düşünürdüm. Digər təlimatlardan ilhamlanaraq, gələcək bir tarixə/saata qədər saymaq üçün geri sayma/yuxarı göstərici qurmaq fikrinə sahib oldum və əgər hədəf vaxt
Faux Nixie Boru Saatı: 7 addım (şəkillərlə birlikdə)
Faux Nixie Tube Clock: Mən retro texnologiyanı sevirəm. Köhnə texnologiya ilə oynamaq çox əyləncəlidir, çünki onlar ümumiyyətlə müasir ekvivalentlərdən daha böyük və daha estetikdir. Nixie borular kimi köhnə texnologiyanın yeganə problemi, nadir, bahalı və ümumiyyətlə çətin olmasıdır
Ağ Dovşan Nixie Saatı: 7 addım (şəkillərlə birlikdə)
Ağ Dovşan Nixie Saatı: Hamıya salam Əvvəlki yazılarımdan bildiyiniz kimi, Nixie boruları, onların tarixi, necə işlədikləri və bənzərsiz görünüşü və işığı ilə heyranam. Bu layihə üçün Epilog lazer kəsici və heç bir
Arduino 4 Tube Multiplexed Nixie Saatı: 10 Addım (Şəkillərlə birlikdə)
Arduino 4 Tube Multiplexed Nixie Saatı: Orada çoxlu Nixie saatı var, amma məqsədim sıfırdan bir saat qurmaq idi. İşdə Nixie layihəm. 4 rəqəmli nixie saatı qurmağa qərar verdim. Parçaları saxlamaq istədim və buna görə də çoxaltmağa qərar verdim. Bu, yalnız bir si istifadə etməyə imkan verdi