Sisällysluettelo:

Nixie Bargraph -kello: 6 vaihetta (kuvilla)
Nixie Bargraph -kello: 6 vaihetta (kuvilla)

Video: Nixie Bargraph -kello: 6 vaihetta (kuvilla)

Video: Nixie Bargraph -kello: 6 vaihetta (kuvilla)
Video: Nixie Bargraph VU Meter Testing 2024, Heinäkuu
Anonim
Nixie Bargraph -kello
Nixie Bargraph -kello
Nixie Bargraph -kello
Nixie Bargraph -kello

Muokkaa 9/11/17 Kickstarterin avulla olen nyt julkaissut sarjan tälle kellosarjalle! Se sisältää ohjainkortin ja 2 Nixie IN-9 -putkea. Sinun tarvitsee vain lisätä oma Arduino/Raspberry Pi/muu. Paketti löytyy, mutta klikkaa tästä linkistä!

Joten olen nähnyt paljon Nixie -kelloja verkossa ja luulin niiden näyttävän hyvältä, mutta en halunnut käyttää 100 dollaria+ kelloon, joka ei edes sisällä putkia! ja piirit. Halusin tehdä jotain hieman erilaista kuin laaja valikoima yleensä melko samankaltaisia nixie -kelloja. Lopulta päädyin käyttämään Nixie IN-9 -pylväsputkia. Nämä ovat pitkiä ohuita putkia ja hehkuvan plasman korkeus riippuu putkien läpi kulkevasta virrasta. Vasemmalla oleva putki on tunnin välein ja oikealla oleva putki minuutteina. Niissä on vain kaksi johtoa, mikä tekee piirin rakentamisesta suorempaa. Tässä mallissa on tunnin ja minuutin putki, jossa kunkin putken plasman korkeus edustaa nykyistä aikaa. Aika pidetään Adafruit Trinket -mikro -ohjaimella ja reaaliaikakellolla (RTC).

Vaihe 1: Osien kokoaminen

Osien kokoaminen
Osien kokoaminen

Siinä on kaksi osaa, ensin elektroniikka ja toiseksi asennus ja viimeistely. Tarvittavat elektroniset komponentit ovat: Adafruit Trinket 5V - 7,95 dollaria (www.adafruit.com/products/1501) Adafruit RTC - 9 dollaria (www.adafruit.com/products/264) 2x Nixie IN -9 -pylväskaavio ~ 3 dollaria per putki eBayssa 1x Nixie 140V virtalähde ~ 12 dollaria eBayssä 4x 47 uF elektrolyyttikondensaattorit 4x 3,9 kOhm vastukset 2x 1 kOhm potentiometri 2x transistori MJE340 NPN korkeajännite ~ $ 1 kukin 1x LM7805 5v säädin ~ $ 1 1x 2,1 mm pistorasia ~ $ 1 1x projektirasia, jossa piirilevy ~ 5 $ 1x 12 voltin tasavirtalähde (löysin vanhan jo unohdetusta laitteesta) Juotos, kytkentäjohto jne. Asennus: Päätin asentaa elektroniikan pieneen mustaan muoviprojektirasiaan ja sitten asentaa putket antiikkiseen kelloliikkeeseen. Tunnin ja minuutin merkitsemiseen käytin putkien ympärille käärittyä kuparilankaa. Kiinnitysosat: Antiikki kellon liike - 10 dollaria eBay -kuparilanka - 3 dollaria eBay Hot -liimapistooli

Vaihe 2: Piiri

Piiri
Piiri
Piiri
Piiri
Piiri
Piiri
Piiri
Piiri

Ensimmäinen askel on rakentaa Nixie -virtalähde. Tämä tuli mukavana pienenä pakkauksena eBaysta, mukaan lukien pieni piirilevy ja tarvitsi vain komponentit juotettavaksi levylle. Tämä erityinen syöttö vaihtelee välillä 110-180v, jota voidaan ohjata pienellä potilla levylle. Pienellä ruuvimeisselillä säädä lähtö ~ 140v. Ennen kuin menin koko tielle, halusin testata nixie -putkeni, tätä varten rakensin yksinkertaisen testipiirin yhdellä putkella, transistorilla ja 10k: n potentiometrillä, jonka olin asettanut. Kuten ensimmäisestä kuvasta näkyy, 140 V: n syöttö on kiinnitetty putken anodiin (oikea jalka). Katodi (vasen jalka) kytketään sitten MJE340 -transistorin kollektorijalkaan. 5 V: n syöttö on kytketty 10 k: n pottiin, joka jakautuu maahan transistorin pohjaan. Lopuksi transistorin lähetin kytketään 300 ohmin virranrajoitusvastuksen kautta maahan. Jos et tunne transistoreita ja elektroniikkaa, sillä ei ole väliä, kytke se vain ja muuta plasman korkeutta potin nupilla! Kun se toimii, voimme katsoa kellomme valmistamista. Koko kellopiiri näkyy toisessa piirikaaviossa. Tutkimuksen jälkeen löysin täydellisen opetusohjelman Adafruit Learn -verkkosivustolta, joka teki melkein täsmälleen sen, mitä halusin tehdä. Opetusohjelma löytyy täältä: https://learn.adafruit.com/trinket-powered-analog-m… Tässä opetusohjelmassa käytetään Trinket-ohjainta ja RTC: tä kahden analogisen vahvistinmittarin ohjaamiseen. Pulssinleveysmodulaation (PWM) avulla neulan taipumista hallitaan. Vahvistinmittarin kela keskittää PWM: n tehokkaaseen tasasignaaliin. Kuitenkin, jos käytämme PWM: ää suoraan putkien ajamiseen, suurtaajuinen modulaatio tarkoittaa, että plasmatanko ei pysy "puristettuna" putken pohjaan ja sinulla on leijuva palkki. Tämän välttämiseksi laskin PWM: n keskiarvon alipäästösuodattimella, jolla oli pitkä aikavakio lähes DC -signaalin saamiseksi. Tämän katkaisutaajuus on 0,8 Hz, tämä on hyvä, koska päivitämme kelloaikaa vain 5 sekunnin välein. Lisäksi koska pylväskaavioilla on rajallinen käyttöikä ja ne on ehkä vaihdettava, eikä jokainen putki ole täsmälleen sama, sisällytin 1k potin putken jälkeen. Tämä mahdollistaa säätämisen kahden putken plasmakorkeuden säätämiseksi. Kytke rihkanauha reaaliaikaiseen kelloon (RCT) yhdistämällä nippa-nasta 0 RTC-SDA: han, nippa-nasta 2 RTC-SCL: ään ja Trinket-5v RTC-5v: een ja Trinket GND RTC-maahan. Tässä osassa voi olla hyödyllistä tarkastella Adafruit-kello-ohjetta, https://learn.adafruit.com/trinket-powered-analog-…. Kun Trinket ja RTC on kytketty oikein, kytke nixie -putket, transistorit, suodattimet jne. Leipälevylle huolellisesti piirikaavion mukaisesti.

Jotta RTC ja Trinket puhuvat, sinun on ensin ladattava oikeat kirjastot Adafruit Githubista. Tarvitset TinyWireM.h ja TInyRTClib.h. Ensin haluamme kalibroida putket, lataa kalibrointiluonnos tämän ohjeen lopussa. Jos kumpikaan luonnoksista ei toimi lopussa, kokeile Adafruit -kellon luonnosta. Olen säätänyt Adafruit -kellon luonnosta toimimaan tehokkaimmin nixie -putkien kanssa, mutta Adafruit -luonnos toimii hyvin.

Vaihe 3: Kalibrointi

Kalibrointi
Kalibrointi

Kun olet ladannut kalibrointiluonnoksen, asteikot on merkittävä.

Kalibrointiin on kolme tilaa, joista ensimmäinen asettaa molemmat nixie -putket maksimitehoon. Käytä tätä säätääksesi astiaa niin, että plasman korkeus molemmissa putkissa on sama ja että se on hieman maksimikorkeuden alapuolella. Tämä varmistaa, että vaste on lineaarinen koko kelloalueella.

Toinen asetus kalibroi minuuttiputken. Se vaihtelee välillä 0, 15, 30, 45 ja 60 minuuttia 5 sekunnin välein.

Viimeinen asetus toistaa tämän jokaisen tunnin lisäyksen yhteydessä. Toisin kuin Adafruit -kello, tuntimittari liikkuu kiintein askelin kerran tunnissa. Lineaarista vastausta oli vaikea saada jokaiselle tunnille käytettäessä analogista mittaria.

Kun olet säätänyt potin, lataa luonnos kalibroitavaksi minuuteiksi. Ota ohut kuparilanka ja leikkaa lyhyt pituus. Kierrä tämä putken ympäri ja kierrä molemmat päät yhteen. Liu'uta tämä oikeaan asentoon ja aseta kuuma liimapistoolilla pieni liimapallo pitämään se oikeassa paikassa. Toista tämä jokaisen minuutin ja tunnin välein.

Unohdin ottaa kuvia tästä prosessista, mutta voit nähdä kuvista, kuinka lanka on kiinnitetty. Vaikka käytin paljon vähemmän liimaa vain langan kiinnittämiseen.

Vaihe 4: Asennus ja viimeistely

Asennus ja viimeistely
Asennus ja viimeistely
Asennus ja viimeistely
Asennus ja viimeistely
Asennus ja viimeistely
Asennus ja viimeistely

Kun putket on kalibroitu ja ne toimivat, on nyt aika tehdä piiri pysyvästi ja asentaa jonkinlaiseen alustaan. Valitsen antiikkikelloliikkeen, koska pidin antiikin, 60 -luvun ja modernin tekniikan yhdistelmästä. Kun siirrät leipälevyltä nauhalevylle, ole erittäin varovainen ja vie aikaa varmistaaksesi, että kaikki liitännät on tehty. Ostamani laatikko oli hieman pieni, mutta huolellisella sijoittelulla ja pienellä pakottamisella onnistuin saamaan kaiken sopimaan. Porasin reiän sivulle virtalähteelle ja toisen nixie -johtimille. Peitin nixie -johdot lämpökutistuksessa, jotta vältyttäisiin oikosululta. Kun elektroniikka on asennettu laatikkoon, liimaa se kellon taakse. Putkien kiinnittämiseen käytin kuumaa liimaa ja liimasin kierrettyjen lankojen kohdat metalliin varmistaen, että ne olivat suorat. Käytin luultavasti liikaa, mutta se ei ole kovin havaittavissa. Se voi olla jotain, jota voidaan parantaa tulevaisuudessa. Kun kaikki on asennettu, lataa Nixie -kelloluonnos tämän ohjeen loppuun ja ihaile ihanaa uutta kelloa!

Vaihe 5: Arduino Sketch - kalibrointi

#define HOUR_PIN 1 // Tuntinäyttö PWM: n kautta Trinket GPIO #1: ssä

#define MINUTE_PIN 4 // Minuuttinäyttö PWM: n kautta Trinket GPIO #4: ssä (ajastimen 1 puhelut)

int tuntia = 57; int minuuttia = 57; // aseta pienin pwm

void setup () {pinMode (HOUR_PIN, OUTPUT); pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // aseta PWM -lähdöt

}

void loop () {// Käytä tätä säätääksesi nixie -ruukkuja varmistaaksesi, että putken enimmäiskorkeus vastaa analogWrite (HOUR_PIN, 255); analogWrite4 (255); // Tämän avulla voit kalibroida minuutin lisäykset

/*

analogWrite4 (57); // minuutin 0 viive (5000); analogWrite4 (107); // minuutin 15 viive (5000); analogWrite4 (156); // minuutin 30 viive (5000); analogWrite4 (206); // minuutin 45 viive (5000); analogWrite4 (255); // minuutin 60 viive (5000);

*/

// Käytä tätä kalibroidaksesi tuntien lisäykset /*

analogWrite (HOUR_PIN, 57); // 57 on pienin lähtö ja vastaa 1 am/min viive (4000); // viive 4 sekuntia analogWrite (HOUR_PIN, 75); // 75 on lähtö, joka vastaa 2 am/min viive (4000); analogWrite (HOUR_PIN, 93); // 93 on lähtö, joka vastaa viiden sekunnin viiveaikaa (4000); analogWrite (HOUR_PIN, 111); // 111 on lähtö, joka vastaa 4 am/min viive (4000); analogWrite (HOUR_PIN, 129); // 129 on lähtö, joka vastaa 5 am /pm viive (4000); analogWrite (HOUR_PIN, 147); // 147 on lähtö, joka vastaa 6 am /pm viive (4000); analogWrite (HOUR_PIN, 165); // 165 on lähtö, joka vastaa 7 am /pm viive (4000); analogWrite (HOUR_PIN, 183); // 183 on lähtö, joka vastaa 8 am /pm viive (4000); analogWrite (HOUR_PIN, 201); // 201 on lähtö, joka vastaa kello 9: 00/min (4000); analogWrite (HOUR_PIN, 219); // 219 on lähtö, joka vastaa 10 am/min viive (4000); analogWrite (HOUR_PIN, 237); // 237 on lähtö, joka vastaa kello 11/pm -viive (4000); analogWrite (HOUR_PIN, 255); // 255 on lähtö, joka vastaa kello 12/min

*/

}

void PWM4_init () {// Aseta PWM Trinket GPIO #4: lle (PB4, nasta 3) käyttämällä ajastinta 1 TCCR1 = _BV (CS10); // ei esiasetinta GTCCR = _BV (COM1B1) | _BV (PWM1B); // tyhjennä OC1B vertailussa OCR1B = 127; // käyttöjakso alustetaan 50%: iin OCR1C = 255; // taajuus}

// Toiminto, joka sallii analogWrite -toiminnon Trinket GPIO #4: ssä void analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // tulli voi olla 0–255 (0–100%)}

Vaihe 6: Arduino Sketch - Kello

// Adafruit Trinket analoginen mittarikello

// Päivämäärä- ja aikatoiminnot käyttäen DS1307 RTC: tä, joka on yhdistetty I2C: n ja TinyWireM lib: n kautta

// Lataa nämä kirjastot Adafruitin Github -arkistosta ja // asenna Arduino Libraries -hakemistoosi #include #include

// Käytä virheenkorjausta, kommentoimattoman sarjan koodia, käytä FTDI -ystävää, jonka RX -nasta on kytketty nastaan 3 // Tarvitset pääteohjelman (kuten ilmaisen PuTTY for Windows), joka on asetettu FTDI -ystävän // USB -porttiin osoitteessa 9600 baud. Poista kommentit sarjakomennoista nähdäksesi mitä tapahtuu // #määritä HOUR_PIN 1 // Tuntinäyttö PWM: n kautta Trinket GPIO #1 #define MINUTE_PIN 4 // Minuuttinäyttö PWM: n kautta Trinket GPIO #4: ssä (ajastimen 1 puheluiden kautta) // SendOnlySoftwareSerial Serial (3); // Sarjaliikenne Trinket Pin 3: ssa RTC_DS1307 rtc; // Aseta reaaliaikainen kello

void setup () {pinMode (HOUR_PIN, OUTPUT); // määrittele PWM -mittarin nastat lähtöiksi pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // Aseta ajastin 1 toimimaan PWM -toiminnolla Trinket Pin 4: ssä TinyWireM.begin (); // Aloita I2C rtc.begin (); // Aloita DS1307 reaaliaikainen kello // Sarja.alku (9600); // Aloita sarjamonitori 9600 baudilla, jos (! Rtc.isrunning ()) {//Serial.println("RTC EI ole käynnissä! "); // seuraava rivi asettaa RTC: lle tämän luonnoksen kokoamispäivän ja -ajan rtc.adjust (DateTime (_ DATE_, _TIME_)); }}

void loop () {uint8_t hourvalue, minutevalue; uint8_t tunnin jännite, minuuttijännite;

DateTime now = rtc.now (); // Hae RTC info hourvalue = now.hour (); // Hae tunti, jos (tunnin arvo> 12) tunnin arvo -= 12; // Tämä kello on 12 tunnin minuutti -arvo = nyt.minute (); // Hanki minuutit

minuuttijännite = kartta (minuutin arvo, 1, 60, 57, 255); // Muunna minuutit PWM -käyttöjaksoksi

jos (tunnin arvo == 1) {analogWrite (HOUR_PIN, 57); } jos (tunnin arvo == 2) {analogWrite (HOUR_PIN, 75); // jokainen tunti vastaa +18} if (hourvalue == 3) {analogWrite (HOUR_PIN, 91); }

jos (tunnin arvo == 4) {analogWrite (HOUR_PIN, 111); } jos (tunnin arvo == 5) {analogWrite (HOUR_PIN, 126); } jos (tunnin arvo == 6) {analogWrite (HOUR_PIN, 147); } jos (tunnin arvo == 7) {analogWrite (HOUR_PIN, 165); } jos (tunnin arvo == 8) {analogWrite (HOUR_PIN, 183); } jos (tunnin arvo == 9) {analogWrite (HOUR_PIN, 201); } jos (tunnin arvo == 10) {analogWrite (HOUR_PIN, 215); } jos (tunnin arvo == 11) {analogWrite (HOUR_PIN, 237); } jos (tunnin arvo == 12) {analogWrite (HOUR_PIN, 255); }

analogWrite4 (minuuttijännite); // minuuttianalogikirjoitus voi pysyä samana kuin kartoitus toimii // koodi prosessorin nukuttamiseksi saattaa olla parempi - viivästymme viivettä (5000); // tarkista aika 5 sekunnin välein. Voit muuttaa tätä. }

void PWM4_init () {// Aseta PWM Trinket GPIO #4: lle (PB4, nasta 3) käyttämällä ajastinta 1 TCCR1 = _BV (CS10); // ei esiasetinta GTCCR = _BV (COM1B1) | _BV (PWM1B); // tyhjennä OC1B vertailussa OCR1B = 127; // käyttöjakso alustetaan 50%: iin OCR1C = 255; // taajuus}

// Toiminto, joka sallii analogWrite -toiminnon Trinket GPIO #4: ssä void analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // tulli voi olla 0–255 (0–100%)}

Suositeltava: