Turinys:

„Nixie Bargraph“laikrodis: 6 žingsniai (su nuotraukomis)
„Nixie Bargraph“laikrodis: 6 žingsniai (su nuotraukomis)

Video: „Nixie Bargraph“laikrodis: 6 žingsniai (su nuotraukomis)

Video: „Nixie Bargraph“laikrodis: 6 žingsniai (su nuotraukomis)
Video: أغرب ساعة يد nixie watch.... اشتركوا بقناتنا فضلاً وليس أمراً 2024, Liepa
Anonim
„Nixie Bargraph“laikrodis
„Nixie Bargraph“laikrodis
„Nixie Bargraph“laikrodis
„Nixie Bargraph“laikrodis

Redaguoti 9/11/17 „Kickstarter“pagalba aš išleidau šio laikrodžio komplekto rinkinį! Jame yra vairuotojo lenta ir 2 „Nixie IN-9“vamzdeliai. Jums tereikia pridėti savo „Arduino“/„Raspberry Pi“/kitą. Rinkinį rasite, bet paspauskite šią nuorodą!

Taigi aš mačiau daug „Nixie“laikrodžių internete ir maniau, kad jie puikiai atrodo, tačiau nenorėjau išleisti daugiau nei 100 USD laikrodžiui, kuriame net nėra vamzdžių! Taigi, turėdamas šiek tiek žinių apie elektroniką, medžiojau įvairius „nixie“vamzdžius ir grandines. Norėjau padaryti kažką šiek tiek kitokio nei didelis apskritai gana panašios išvaizdos nixie laikrodžių asortimentas. Galų gale aš nusprendžiau naudoti „Nixie IN-9“juostinius grafikus. Tai ilgi ploni vamzdeliai, o švytinčios plazmos aukštis priklauso nuo srovės per vamzdelius. Vamzdis kairėje yra didinamas valandomis, o dešinėje - minutėmis. Jie turi tik du laidus, todėl grandinės kūrimas yra tiesesnis į priekį. Šioje konstrukcijoje yra valandos ir minutės vamzdelis, o plazmos aukštis kiekviename mėgintuvėlyje atitinka dabartinį laiką. Laikas laikomas naudojant „Adafruit Trinket“mikrovaldiklį ir realaus laiko laikrodį (RTC).

1 žingsnis: dalių surinkimas

Dalių surinkimas
Dalių surinkimas

Yra du skyriai, pirma elektronika ir, antra, montavimas ir apdaila. Reikalingi elektroniniai komponentai: „Adafruit Trinket 5V“- 7,95 USD (www.adafruit.com/products/1501) „Adafruit RTC“- 9 USD (www.adafruit.com/products/264) 2x „Nixie IN -9“grafikas ~ 3 USD už mėgintuvėlį „eBay 1x“„Nixie 140v“maitinimo šaltinis ~ 12 USD „eBay“4x 47 uF elektrolitų kondensatoriai 4x 3,9 kOhm rezistoriai 2x 1 kOhm potenciometras 2x tranzistorius MJE340 NPN aukštos įtampos ~ 1 USD kiekvienas 1x LM7805 5v reguliatorius ~ 1 USD 1x 2,1 mm lizdas ~ 1 USD 1x projekto dėžutė su PCB ~ 5 USD 1x 12 V nuolatinės srovės maitinimo šaltinis (radau seną iš seniai pamirštos programėlės) Lituoklis, sujungimo laidas ir tt Montavimas: nusprendžiau elektroniką sumontuoti mažoje juodoje plastikinėje projektinėje dėžutėje, o tada vamzdžius montuoti ant senovinio laikrodžio judesio. Norėdami pažymėti valandą ir minutes, aš naudoju varinę vielą, apvyniotą aplink vamzdžius. Montavimo dalys: senovinis laikrodžio judesys - 10 USD „eBay“varinė viela - 3 USD „eBay“karšto klijų pistoletas

2 žingsnis: grandinė

Grandinė
Grandinė
Grandinė
Grandinė
Grandinė
Grandinė
Grandinė
Grandinė

Pirmasis žingsnis yra sukurti „Nixie“maitinimo šaltinį. Tai buvo gražus mažas „eBay“rinkinys, įskaitant šiek tiek PCB, ir tiesiog reikėjo, kad komponentai būtų lituojami prie plokštės. Šis konkretus tiekimas yra kintamas tarp 110–180 V, valdomas mažu puodu ant lentos. Naudodami mažą atsuktuvą sureguliuokite išėjimą ~ 140v. Prieš pradėdamas visą kelią, norėjau išbandyti savo „nixie“vamzdelius, norėdamas tai padaryti, sukūriau paprastą bandymo grandinę, naudodamas vieną vamzdelį, tranzistorių ir 10 tūkst. Kaip matyti iš pirmo paveikslo, 140 V maitinimas yra pritvirtintas prie vamzdžio anodo (dešinė koja). Tada katodas (kairė koja) prijungiamas prie MJE340 tranzistoriaus kolektoriaus kojelės. 5 V maitinimas yra prijungtas prie 10 k puodo, padalijamo į žemę į tranzistoriaus bazę. Galiausiai tranzistoriaus spinduolis yra prijungtas prie 300 omų srovės ribojimo rezistoriaus prie žemės. Jei nesate susipažinę su tranzistoriais ir elektronika, tai tikrai nesvarbu, tiesiog prijunkite laidą ir pakeiskite plazmos aukštį puodo rankenėle! Kai tai veiks, galime pažvelgti į savo laikrodžio kūrimą. Visą laikrodžio grandinę galima pamatyti antroje schemoje. Po tam tikrų tyrimų radau puikią mokymo programą „Adafruit Learn“svetainėje, kuri daro beveik tiksliai tai, ką norėjau. Pamoka pateikiama čia: https://learn.adafruit.com/trinket-powered-analog-m… Šioje pamokoje naudojami „Trinket“valdikliai ir RTC, kad būtų galima valdyti du analoginius stiprintuvus. Naudojant impulsų pločio moduliaciją (PWM) adatos deformacijai kontroliuoti. Stiprintuvo matuoklio ritė perkelia PWM į efektyvų nuolatinės srovės signalą. Tačiau jei mes naudojame PWM tiesiogiai vamzdžiams varyti, aukšto dažnio moduliacija reiškia, kad plazminis strypas neliks „prispaustas“prie vamzdžio pagrindo ir turėsite sklandančią juostą. Norėdami to išvengti, vidutiniškai įvertinau PWM, naudodami žemo dažnio filtrą su ilga laiko konstanta, kad gaučiau beveik nuolatinės srovės signalą. Jo išjungimo dažnis yra 0,8 Hz, tai gerai, nes laikrodžio laiką atnaujiname tik kas 5 sekundes. Be to, kadangi juostos grafikai turi ribotą tarnavimo laiką ir gali tekti juos pakeisti, o ne kiekvienas vamzdelis yra visiškai tas pats, po vamzdžio pridėjau 1k puodą. Tai leidžia koreguoti dviejų vamzdžių plazmos aukštį. Norėdami prijungti niekučius prie realaus laiko laikrodžio (RCT), prijunkite „Trinket-pin“0 prie RTC-SDA, „Trinket-pin“2 prie RTC-SCL ir „Trinket-5v“prie RTC-5v, o „Trinket GND“-prie RTC įžeminimo. Šioje dalyje gali būti naudinga peržiūrėti „Adafruit“laikrodžio instrukciją, https://learn.adafruit.com/trinket-powered-analog-…. Kai „Trinket“ir RTC bus tinkamai prijungti, prijunkite „nixie“vamzdelius, tranzistorius, filtrus ir kt.

Kad RTC ir „Trinket“kalbėtų, pirmiausia turite atsisiųsti tinkamas bibliotekas iš „Adafruit Github“. Jums reikia „TinyWireM.h“ir „TInyRTClib.h“. Pirmiausia norime kalibruoti mėgintuvėlius, šios instrukcijos pabaigoje įkelkite kalibravimo eskizą. Jei nė vienas eskizas pabaigoje neveikia, išbandykite „Adafruit“laikrodžio eskizą. Aš pakeičiau „Adafruit“laikrodžio eskizą, kad jis efektyviausiai veiktų su „nixie“vamzdeliais, tačiau „Adafruit“eskizas veiks gerai.

3 žingsnis: kalibravimas

Kalibravimas
Kalibravimas

Įkėlę kalibravimo eskizą, turite pažymėti gradacijas.

Yra trys kalibravimo režimai, pirmasis nustato abu „nixie“vamzdelius maksimaliai. Naudokite tai, kad puodą sureguliuotumėte taip, kad abiejų mėgintuvėlių plazmos aukštis būtų vienodas ir kad jis būtų šiek tiek žemiau maksimalaus aukščio. Tai užtikrina, kad atsakas yra tiesinis visame laikrodžio diapazone.

Antrasis nustatymas kalibruoja minučių mėgintuvėlį. Jis keičiasi nuo 0, 15, 30, 45 ir 60 minučių kas 5 sekundes.

Paskutinis nustatymas tai kartoja kas valandą. Skirtingai nuo „Adafruit“laikrodžio, valandos indikatorius juda fiksuotais žingsniais kartą per valandą. Naudojant analoginį matuoklį, buvo sunku gauti tiesinį atsakymą už kiekvieną valandą.

Kai pakoreguosite puodą, įkelkite eskizą, kad jis būtų kalibruojamas minutėms. Paimkite ploną varinę vielą ir supjaustykite trumpą ilgį. Apvyniokite šį apvalų vamzdelį ir susukite abu galus. Pastumkite jį į teisingą padėtį ir karštu klijų pistoletu padėkite nedidelį klijų gabalėlį, kad jis būtų tinkamoje vietoje. Pakartokite tai kas minutę ir valandą.

Pamiršau nufotografuoti šį procesą, bet iš nuotraukų galite pamatyti, kaip pritvirtinta viela. Nors vielai pritvirtinti naudojau daug mažiau klijų.

4 žingsnis: montavimas ir apdaila

Montavimas ir apdaila
Montavimas ir apdaila
Montavimas ir apdaila
Montavimas ir apdaila
Montavimas ir apdaila
Montavimas ir apdaila

Kai visi vamzdžiai yra sukalibruoti ir veikia, atėjo laikas visam laikui sukurti grandinę ir pritvirtinti prie tam tikros formos pagrindo. Aš pasirenku senovinį laikrodžio judesį, nes man patiko senovinių, 60 -ųjų ir šiuolaikinių technologijų derinys. Perkeliant iš duonos lentos į juostos lentą, būkite labai atsargūs ir neskubėkite, kad visi ryšiai būtų atlikti. Dėžutė, kurią nusipirkau, buvo šiek tiek maža, tačiau kruopščiai įdėjus ir šiek tiek priverčiant, man pavyko viską sutalpinti. Aš išgręžiau skylę šone maitinimo šaltiniui, o kitą - nixie laidams. Aš uždengiau „nixie“laidus karščio susitraukimu, kad išvengčiau šortų. Kai elektronika yra sumontuota dėžutėje, priklijuokite ją prie laikrodžio judesio galo. Vamzdžių montavimui aš naudoju karštus klijus ir priklijavau susuktos vielos taškus prie metalo, atsargiai, kad jie būtų tiesūs. Tikriausiai naudojau per daug klijų, bet tai nėra labai pastebima. Ateityje tai gali būti patobulinta. Kai visa tai bus sumontuota, šios instrukcijos pabaigoje įkelkite „Nixie“laikrodžio eskizą ir grožėkitės savo nuostabiu nauju laikrodžiu!

5 žingsnis: „Arduino“eskizas - kalibravimas

#define HOUR_PIN 1 // Valandos rodymas naudojant PWM „Trinket GPIO #1“

#define MINUTE_PIN 4 // Minutės rodymas per PWM „Trinket GPIO #4“(naudojant 1 laikmačio skambučius)

int valandos = 57; int minutės = 57; // nustatyti minimalų pwm

void setup () {pinMode (HOUR_PIN, OUTPUT); pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // nustatyti PWM išėjimus

}

void loop () {// Naudokite tai norėdami pataisyti „nixie“puodus, kad įsitikintumėte, jog maksimalus vamzdžio aukštis atitinka analogWrite (HOUR_PIN, 255); analogWrite4 (255); // Naudokite tai, kad kalibruotumėte minutės žingsnius

/*

analogWrite4 (57); // minutės 0 uždelsimas (5000); analogWrite4 (107); // 15 minučių uždelsimas (5000); analogWrite4 (156); // minutės 30 uždelsimas (5000); analogWrite4 (206); // minutės 45 uždelsimas (5000); analogWrite4 (255); // minutės 60 uždelsimas (5000);

*/

// Naudokite tai, norėdami kalibruoti valandos prieaugį /*

analogWrite (HOUR_PIN, 57); // 57 yra minimali išvestis ir atitinka 1 val./min. Delsą (4000); // uždelsti 4 sekundes analogWrite (HOUR_PIN, 75); // 75 yra išėjimas, atitinkantis 2 val./Min. Vėlavimą (4000); analogWrite (HOUR_PIN, 93); // 93 yra išvestis, atitinkanti 3 val./Min. Vėlavimą (4000); analogWrite (HOUR_PIN, 111); // 111 yra išėjimas, atitinkantis 4 val./Min. Vėlavimą (4000); analogWrite (HOUR_PIN, 129); // 129 yra išėjimas, atitinkantis 5 val./Min. Vėlavimą (4000); analogWrite (HOUR_PIN, 147); // 147 yra išėjimas, atitinkantis 6 val./Min. Vėlavimą (4000); analogWrite (HOUR_PIN, 165); // 165 yra išėjimas, atitinkantis 7 val./Min. Vėlavimą (4000); analogWrite (HOUR_PIN, 183); // 183 yra išėjimas, atitinkantis 8 val./Min. Vėlavimą (4000); analogWrite (HOUR_PIN, 201); // 201 yra išėjimas, atitinkantis 9 val./Min. Vėlavimą (4000); analogWrite (HOUR_PIN, 219); // 219 yra išėjimas, atitinkantis vėlavimą 10 val/min (4000); analogWrite (HOUR_PIN, 237); // 237 yra išėjimas, atitinkantis 11 val./Minutės vėlavimą (4000); analogWrite (HOUR_PIN, 255); // 255 yra išėjimas, atitinkantis 12 val

*/

}

void PWM4_init () {// Nustatykite PWM „Trinket GPIO #4“(PB4, 3 kaištis) naudodami 1 laikmatį TCCR1 = _BV (CS10); // nėra prescaler GTCCR = _BV (COM1B1) | _BV (PWM1B); // išvalyti OC1B palyginus OCR1B = 127; // darbo ciklo inicijavimas iki 50% OCR1C = 255; // dažnis}

// Funkcija, leidžianti „AnalogWrite“naudoti „Trinket GPIO“#4 void analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // muitas gali būti nuo 0 iki 255 (nuo 0 iki 100%)}

6 žingsnis: „Arduino“eskizas - laikrodis

// „Adafruit Trinket“analoginis matuoklio laikrodis

// Datos ir laiko funkcijos naudojant DS1307 RTC, prijungtą per I2C ir „TinyWireM lib“

// Atsisiųskite šias bibliotekas iš „Adafruit“„Github“saugyklos ir // įdiekite į „Arduino“bibliotekų katalogą #include #include

// Norėdami derinti, nekomentuokite serijos kodo, naudokite FTDI draugą, kurio RX kaištis prijungtas prie 3 kaiščio // Jums reikės terminalo programos (pvz., Nemokamos „PuTTY“, skirtos „Windows“), nustatytos į FTDI draugo USB prievadą, esantį 9600 baudas. Atsisakykite serijinių komandų, kad pamatytumėte, kas vyksta // #apibrėžti HOUR_PIN 1 // Valandos rodymas naudojant PWM „Trinket GPIO #1“#define MINUTE_PIN 4 // Minutės rodymas naudojant PWM „Trinket GPIO #4“(naudojant 1 laikmačio skambučius) // SendOnlySoftwareSerial Serial (3); // Serial transfer on Trinket Pin 3 RTC_DS1307 rtc; // Nustatykite realaus laiko laikrodį

void setup () {pinMode (HOUR_PIN, OUTPUT); // apibrėžti PWM skaitiklio kaiščius kaip išėjimus pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // Nustatykite 1 laikmatį, kad jis veiktų PWM „Trinket Pin 4“TinyWireM.begin (); // Pradėti I2C rtc.begin (); // Pradėti DS1307 realaus laiko laikrodį // Serial.begin(9600); // Pradėkite serijinį monitorių esant 9600 baudų, jei (! Rtc.isrunning ()) {//Serial.println("RTC neveikia! "); // kita eilutė nustato RTC datą ir laiką, kai šis eskizas buvo sudarytas rtc.adjust (DateTime (_ DATE_, _TIME_)); }}

void loop () {uint8_t hourvalue, minutevalue; uint8_t valandos įtampa, minutinė įtampa;

DateTime dabar = rtc.now (); // Gaukite RTC info hourvalue = now.hour (); // Gaukite valandą, jei (valandos vertė> 12) valandos vertė -= 12; // Šis laikrodis yra 12 valandų minutevalue = now.minute (); // Gaukite protokolą

minutės įtampa = žemėlapis (minutinė vertė, 1, 60, 57, 255); // Konvertuoti minutes į PWM darbo ciklą

if (valandos vertė == 1) {analogWrite (HOUR_PIN, 57); } if (valandos vertė == 2) {analogWrite (HOUR_PIN, 75); // kiekviena valanda atitinka +18} if (hourvalue == 3) {analogWrite (HOUR_PIN, 91); }

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

analogWrite4 (minutinė įtampa); // minutės analoginis rašymas gali likti toks pat, kaip kartografavimo darbai // gali būti pageidautinas kodas, skirtas užmigdyti procesorių - atidėsime atidėjimą (5000); // tikrinkite laiką kas 5 sekundes. Tai galite pakeisti. }

void PWM4_init () {// Nustatykite PWM „Trinket GPIO #4“(PB4, 3 kaištis) naudodami 1 laikmatį TCCR1 = _BV (CS10); // nėra prescaler GTCCR = _BV (COM1B1) | _BV (PWM1B); // išvalyti OC1B palyginus OCR1B = 127; // darbo ciklo inicijavimas iki 50% OCR1C = 255; // dažnis}

// Funkcija, leidžianti „AnalogWrite“naudoti „Trinket GPIO“#4 void analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // muitas gali būti nuo 0 iki 255 (nuo 0 iki 100%)}

Rekomenduojamas: