Talaan ng mga Nilalaman:

Nixie Bargraph Clock: 6 Hakbang (na may Mga Larawan)
Nixie Bargraph Clock: 6 Hakbang (na may Mga Larawan)

Video: Nixie Bargraph Clock: 6 Hakbang (na may Mga Larawan)

Video: Nixie Bargraph Clock: 6 Hakbang (na may Mga Larawan)
Video: Vintage Display Technology Pt.5: A Nixie-Bargraph Meter-Clock 2024, Hulyo
Anonim
Nixie Bargraph Clock
Nixie Bargraph Clock
Nixie Bargraph Clock
Nixie Bargraph Clock

I-edit ang 9/11/17 Sa tulong ng Kickstarter naglabas ako ngayon ng isang kit para sa orasan kit na ito! May kasama itong driver board at 2 Nixie IN-9 tubes. Ang kailangan mo lamang idagdag ay ang iyong sariling Arduino / Raspberry Pi / iba pa. Ang kit ay matatagpuan ngunit ang pag-click sa link na ito!

Kaya't nakita ko ang maraming mga Nixie na orasan sa online at naisip na maganda ang hitsura nila, subalit hindi ko nais na gumastos ng $ 100 + sa isang orasan na hindi kasama ang mga tubo! Kaya't may kaunting kaalaman sa electronics na hinabol ko ang iba't ibang mga tubong nixie at mga circuit. Nais kong gumawa ng isang bagay na medyo kakaiba sa malaking saklaw ng pangkalahatan na medyo kamukhang naghahanap ng mga orasan nixie. Sa huli pinili ko ang paggamit ng Nixie IN-9 bargraph tubes. Ang mga ito ay mahabang manipis na tubo at ang taas ng kumikinang na plasma ay nakasalalay sa kasalukuyang dumadaan sa mga tubo. Ang tubo sa kaliwa ay nasa mga dagdag na oras at ang tubo sa kanan ay nasa minuto. Mayroon lamang silang dalawang mga lead at kaya't gawing mas tuwid ang pagbuo ng isang circuit. Sa disenyo na ito, mayroong isang oras at isang minutong tubo, na may taas ng plasma sa bawat tubo na kumakatawan sa kasalukuyang oras. Ang oras ay pinananatili gamit ang isang Adafruit Trinket microcontroller at real time na orasan (RTC).

Hakbang 1: Pag-iipon ng Mga Bahagi

Pagtitipon ng Mga Bahagi
Pagtitipon ng Mga Bahagi

Mayroong dalawang seksyon, una ang electronics at pangalawa ang pag-mount at pagtatapos. Ang mga kinakailangang elektronikong sangkap ay: Adafruit Trinket 5V - $ 7.95 (www.adafruit.com/productions/1501) Adafruit RTC - $ 9 (www.adafruit.com/products/264) 2x Nixie IN-9 bargraph ~ $ 3 bawat tubo sa eBay 1x Nixie 140v power supply ~ $ 12 sa eBay 4x 47 uF electrolyte capacitors 4x 3.9 kOhm resistors 2x 1 kOhm potentiometer 2x Transistor MJE340 NPN mataas na boltahe ~ $ 1 bawat 1x LM7805 5v regulator ~ $ 1 1x 2.1mm socket ~ $ 1 1x project box na may pcb ~ $ 5 1x 12v DC power supply (Nakakita ako ng isang luma mula sa ilang matagal nang nakalimutang gadget) Solder, hookup wire, atbp Pag-mount: Nagpasiya akong i-mount ang electronics sa isang maliit na kahon ng proyekto ng itim na plastik, pagkatapos ay i-mount ang mga tubo sa isang antigong paggalaw ng orasan. Upang markahan ang oras at minuto gumamit ako ng tanso na tanso na nakabalot sa mga tubo. Mga mounting bahagi: Kilusang antigong orasan - $ 10 eBay Copper wire - $ 3 eBay Mainit na baril ng pandikit

Hakbang 2: Circuit

Circuit
Circuit
Circuit
Circuit
Circuit
Circuit
Circuit
Circuit

Ang unang hakbang ay upang buuin ang suplay ng kuryente Nixie. Ito ay dumating bilang isang magandang maliit na kit mula sa eBay, kasama ang isang maliit na PCB at kailangan lamang ang mga sangkap na solder sa board. Ang partikular na suplay na ito ay variable sa pagitan ng 110-180v, makokontrol na may isang maliit na palayok sa board. Gamit ang isang maliit na driver ng tornilyo ayusin ang output sa ~ 140v. Bago ako nagpunta sa buong paraan nais kong subukan ang aking mga tubong nixie, upang gawin ito ay nagtayo ako ng isang simpleng pagsubok na circuit gamit ang isang tubo, transistor at isang 10k potentiometer na aking inilatag. Tulad ng nakikita sa unang pigura, ang supply ng 140v ay nakakabit sa tubo anode (kanang binti). Ang cathode (kaliwang binti) pagkatapos ay konektado sa collector leg ng MJE340 transistor. Ang isang supply ng 5v ay konektado sa isang 10k palayok na naghahati sa lupa sa base ng transistor. Sa wakas ang transistor emitter ay kumonekta sa pamamagitan ng isang kasalukuyang 300 ohm na naglilimita ng risistor sa lupa. Kung hindi ka pamilyar sa mga transistors at electronics hindi ito mahalaga, wire lang ito at palitan ang taas ng plasma gamit ang pot knob! Kapag gumana na maaari naming tingnan ang paggawa ng aming orasan. Ang buong circuit ng orasan ay makikita sa pangalawang diagram ng circuit. Matapos ang ilang pagsasaliksik natagpuan ko ang isang perpektong tutorial sa Adafruit matuto ng website na ginagawa ang eksaktong eksaktong nais kong gawin. Ang tutorial ay matatagpuan dito: https://learn.adafruit.com/trinket-powered-analog-m… Ang tutorial na ito ay gumagamit ng isang Trinket controller at isang RTC upang makontrol ang dalawang analogue amp meter. Paggamit ng pulse width modulation (PWM) upang makontrol ang pagpapalihis ng karayom. Ang coil ng amp meter ay nag-average ng PWM sa isang mabisang dc signal. Gayunpaman kung direkta naming ginagamit ang PWM upang himukin ang mga tubo kung gayon ang ibig sabihin ng mataas na dalas ng dalas ay ang plasma bar na hindi mananatili na "clamp" sa base ng tubo at magkakaroon ka ng hovering bar. Upang maiwasan ito, na-average ko ang PWM gamit ang isang mababang pass filter na may mahabang oras na pare-pareho upang makakuha ng isang halos dc signal. Ito ay may isang putol na dalas ng 0.8 Hz, ito ay mabuti habang ina-update namin ang oras ng orasan tuwing 5 segundo. Bukod pa rito dahil ang mga bargraph ay may isang may hangganan na haba ng buhay at maaaring kailanganing palitan at hindi bawat tubo ay eksaktong pareho na isinama ko ang isang 1k palayok pagkatapos ng tubo. Pinapayagan nito ang pag-aayos upang ayusin ang taas ng plasma para sa dalawang tubo. Upang mai-wire ang trinket sa real time na orasan (RCT) ikonekta ang Trinket-pin 0 sa RTC-SDA, Trinket-pin 2 sa RTC-SCL at Trinket-5v sa RTC-5v at ang Trinket GND sa RTC ground. Para sa bahaging ito maaari itong maging kapaki-pakinabang upang matingnan ang tagubilin sa orasan ng Adafruit, https://learn.adafruit.com/trinket-powered-analog-…. Kapag ang Trinket at RTC ay naka-wire nang tama, i-wire ang mga tubong nixie, transistor, filter atbp sa isang breadboard nang maingat na sumusunod sa diagram ng circuit.

Upang makuha ang pakikipag-usap sa RTC at Trinket kailangan mo munang i-download ang mga tamang aklatan mula sa Adafruit Github. Kailangan mo ng TinyWireM.h at TInyRTClib.h. Una nais naming i-calibrate ang mga tubo, i-upload ang calibrate sketch sa dulo ng pagtuturo na ito. Kung ang alinman sa mga sketch na hindi nagtatapos ay gumagana pagkatapos ay subukan ang Adafruit na karagatan. Na-tweak ko ang sketch ng Adafruit na orasan upang gumana nang pinakamabisang gamit ang mga tubong nixie ngunit ang sketch ng Adafruit ay gagana nang maayos.

Hakbang 3: Pagkakalibrate

Pagkakalibrate
Pagkakalibrate

Sa sandaling na-upload mo ang sketch ng pagkakalibrate ang mga graduation ay kailangang markahan.

Mayroong tatlong mga mode para sa pagkakalibrate, ang unang nagtatakda ng parehong mga nixie tubes sa maximum na output. Gamitin ito upang ayusin ang palayok upang ang taas ng plasma sa parehong mga tubo ay pareho at ito ay bahagyang mas mababa sa maximum na taas. Tinitiyak nito na ang tugon ay linear sa buong saklaw ng orasan.

Ang pangalawang setting ay nagkakalibrate ng tubo ng minuto. Nagbabago ito sa pagitan ng 0, 15, 30, 45 at 60 minuto bawat 5 segundo.

Ang huling setting ay inuulit ito para sa bawat oras na pagtaas. Hindi tulad ng orasan ng Adafruit na gumagalaw ang tagapagpahiwatig ng oras sa mga naayos na pagtaas nang isang beses bawat oras. Mahirap makakuha ng isang tuwid na tugon para sa bawat oras kapag gumagamit ng isang analog meter.

Kapag naayos mo ang palayok i-upload ang sketch upang i-calibrate ng ilang minuto. Kunin ang manipis na kawad na tanso at gupitin ang isang maliit na haba. Balutin ang bilog na ito ng tubo at iikot ang dalawang dulo nang magkasama. I-slide ito sa tamang posisyon at gamit ang isang mainit na pandikit gun ilagay ang isang maliit na patak ng kola upang mapanatili sa tamang lugar. Ulitin ito para sa bawat pagtaas ng minuto at oras.

Nakalimutan kong kumuha ng anumang mga larawan ng prosesong ito ngunit maaari mong makita mula sa mga larawan kung paano nakakabit ang kawad. Kahit na gumamit ako ng mas kaunting pandikit lamang upang ikabit ang kawad.

Hakbang 4: Pag-mount at Pagtatapos

Pag-mount at Pagtatapos
Pag-mount at Pagtatapos
Pag-mount at Pagtatapos
Pag-mount at Pagtatapos
Pag-mount at Pagtatapos
Pag-mount at Pagtatapos

Kapag ang mga tubo ay naka-calibrate at gumagana ngayon ay oras na upang permanenteng gawin ang circuit at i-mount sa ilang anyo ng base. Pumili ako ng isang antigong paggalaw ng orasan dahil gusto ko ang halo ng antigong, 60 at modernong teknolohiya. Kapag ang paglipat mula sa breadboard sa strip board maging maingat at gugulin ang iyong oras na tinitiyak na ang lahat ng mga koneksyon ay ginawa. Ang kahon na binili ko ay medyo maliit ngunit may ilang maingat na paglalagay at kaunting pagpuwersa na nagawa kong maayos ang lahat. Nag-drill ako ng isang butas sa gilid para sa supply ng kuryente at isa pa para sa nixie lead. Tinakpan ko ang mga nixie wires sa pag-urong ng init upang maiwasan ang anumang shorts. Kapag ang mga electronics ay naka-mount sa kahon idikit ito sa likod ng paggalaw ng orasan. Upang mai-mount ang mga tubo ay gumamit ako ng mainit na pandikit at nakadikit ang mga punto ng baluktot na kawad sa metal, na nag-iingat upang matiyak na sila ay tuwid. Marahil ay gumamit ako ng sobrang pandikit ngunit hindi ito masyadong kapansin-pansin. Maaaring ito ay isang bagay na maaaring mapabuti sa hinaharap. Kapag na-mount up na ang lahat, i-load ang Nixie clock sketch sa dulo ng pagtuturo na ito at hangaan ang iyong kaibig-ibig bagong bagong orasan!

Hakbang 5: Arduino Sketch - Pagkakalibrate

# tukuyin ang HOUR_PIN 1 // Oras na pagpapakita sa pamamagitan ng PWM sa Trinket GPIO # 1

# tukuyin ang MINUTE_PIN 4 // Minute display sa pamamagitan ng PWM sa Trinket GPIO # 4 (sa pamamagitan ng mga tawag sa Timer 1)

int oras = 57; int minuto = 57; // set minimum pwm

void setup () {pinMode (HOUR_PIN, OUTPUT); pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // set up PWM outputs

}

void loop () {// Gamitin ito upang mai-tweak ang mga kaldero ng nixie upang matiyak na ang maximum na taas ng tubo ay tumutugma sa analogWrite (HOUR_PIN, 255); analogWrite4 (255); // Gamitin ito upang i-calibrate ang mga minutong dagdagan

/*

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

*/

// Use this to calibrate the hour increment / *

analogWrite (HOUR_PIN, 57); // 57 ang pinakamababang output at tumutugma sa 1 am/pm na pagkaantala (4000); // antala ng 4 segundo analogWrite (HOUR_PIN, 75); // 75 ay ang output na tumutugma sa 2 am/pm na pagkaantala (4000); analogWrite (HOUR_PIN, 93); // 93 ay ang output na tumutugma sa 3 am/pm na pagkaantala (4000); analogWrite (HOUR_PIN, 111); // 111 ay ang output na tumutugma sa 4 am/pm na pagkaantala (4000); analogWrite (HOUR_PIN, 129); // 129 ay ang output na tumutugma sa 5 am/pm na pagkaantala (4000); analogWrite (HOUR_PIN, 147); // 147 ay ang output na tumutugma sa 6 am/pm na pagkaantala (4000); analogWrite (HOUR_PIN, 165); // 165 ay ang output na tumutugma sa 7 am/pm na pagkaantala (4000); analogWrite (HOUR_PIN, 183); // 183 ay ang output na tumutugma sa 8 am/pm na pagkaantala (4000); analogWrite (HOUR_PIN, 201); // 201 ay ang output na tumutugma sa 9 am/pm na pagkaantala (4000); analogWrite (HOUR_PIN, 219); // 219 ang output na tumutugma sa 10 am/pm na pagkaantala (4000); analogWrite (HOUR_PIN, 237); // 237 ay ang output na tumutugma sa 11 am/pm na pagkaantala (4000); analogWrite (HOUR_PIN, 255); // 255 ang output na tumutugma sa 12 am/pm

*/

}

walang bisa PWM4_init () {// I-set up ang PWM sa Trinket GPIO # 4 (PB4, pin 3) gamit ang Timer 1 TCCR1 = _BV (CS10); // no prescaler GTCCR = _BV (COM1B1) | _BV (PWM1B); // clear OC1B on Compare OCR1B = 127; // duty cycle initialize to 50% OCR1C = 255; // frequency}

// Function upang payagan ang analogWrite sa Trinket GPIO # 4 walang bisa analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // duty ay maaaring 0 hanggang 255 (0 hanggang 100%)}

Hakbang 6: Arduino Sketch - Clock

// Adafruit Trinket analog meter na orasan

// Mga pag-andar ng petsa at oras gamit ang isang DS1307 RTC na konektado sa pamamagitan ng I2C at ng TinyWireM lib

// I-download ang mga libraryong ito mula sa Adafruit's Github repository at // install sa iyong Arduino Library Library #include #include

// Para sa pag-debug, hindi pagkakasunud-sunod na serial code, gumamit ng isang FTDI Friend na may koneksyon na RX na nakakonekta sa Pin 3 // Kakailanganin mo ang isang programa ng terminal (tulad ng freeware PuTTY para sa Windows) na nakatakda sa // USB port ng kaibigan na FTDI sa 9600 baud Alisin ang pagkomento sa mga Serial na utos upang makita kung ano ang nasa // # tukuyin ang HOUR_PIN 1 // Oras ng pagpapakita sa pamamagitan ng PWM sa Trinket GPIO # 1 # tukuyin ang MINUTE_PIN 4 // Minute display sa pamamagitan ng PWM sa Trinket GPIO # 4 (sa pamamagitan ng mga tawag sa Timer 1) // SendOnlySoftwareSerial Serial (3); // Serial transmission sa Trinket Pin 3 RTC_DS1307 rtc; // I-set up ang real time na orasan

void setup () {pinMode (HOUR_PIN, OUTPUT); // tukuyin ang mga pin ng metro na PWM bilang mga output pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // Itakda ang timer 1 upang gumana ang PWM sa Trinket Pin 4 TinyWireM.begin (); // Start I2C rtc.begin (); // Simulan ang DS1307 real time na orasan //Serial.begin(9600); // Start Serial Monitor at 9600 baud if (! Rtc.isrunning ()) {//Serial.println("RTC is NOT running! "); // sumusunod na linya ay nagtatakda ng RTC sa petsa at oras ng sketch na ito ay naipon rtc.adjust (DateTime (_ DATE_, _TIME_)); }}

void loop () {uint8_t hourvalue, minutevalue; uint8_t hourvoltage, minutevoltage;

DateTime ngayon = rtc.now (); // Get the RTC info hourvalue = now.hour (); // Kunin ang oras kung (hourvalue> 12) hourvalue - = 12; // Ang orasan na ito ay 12 oras na minutong = = now.minute (); // Kunin ang mga minuto

minutevoltage = mapa (minutevalue, 1, 60, 57, 255); // I-convert ang minuto sa siklo ng tungkulin na PWM

kung (hourvalue == 1) {analogWrite (HOUR_PIN, 57); } kung (hourvalue == 2) {analogWrite (HOUR_PIN, 75); // bawat oras ay tumutugma sa +18} kung (hourvalue == 3) {analogWrite (HOUR_PIN, 91); }

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

analogWrite4 (minutevoltage); // minutong analogwrite ay maaaring manatiling pareho sa mga gumagana sa pagmamapa // na code upang ilagay ang processor sa pagtulog na maaaring mas gusto - maaantala namin ang pagkaantala (5000); // check time tuwing 5 segundo. Maaari mo itong baguhin. }

walang bisa PWM4_init () {// I-set up ang PWM sa Trinket GPIO # 4 (PB4, pin 3) gamit ang Timer 1 TCCR1 = _BV (CS10); // no prescaler GTCCR = _BV (COM1B1) | _BV (PWM1B); // clear OC1B on Compare OCR1B = 127; // duty cycle initialize to 50% OCR1C = 255; // frequency}

// Function to allow analogWrite on Trinket GPIO # 4 void analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // duty ay maaaring 0 hanggang 255 (0 hanggang 100%)}

Inirerekumendang: