Orodha ya maudhui:

Saa ya Nixie Bargraph: Hatua 6 (na Picha)
Saa ya Nixie Bargraph: Hatua 6 (na Picha)

Video: Saa ya Nixie Bargraph: Hatua 6 (na Picha)

Video: Saa ya Nixie Bargraph: Hatua 6 (na Picha)
Video: 12 самых крутых технических гаджетов 2024, Julai
Anonim
Saa ya Nixie Bargraph
Saa ya Nixie Bargraph
Saa ya Nixie Bargraph
Saa ya Nixie Bargraph

Hariri 9/11 / 17Kwa msaada wa Kickstarter sasa nimetoa kit kwa saa hii! Inajumuisha bodi ya dereva na zilizopo 2 za Nixie IN-9. Wote unahitaji kuongeza ni Arduino yako / Raspberry Pi / nyingine. Kit inaweza kupatikana lakini kubonyeza kiungo hiki!

Kwa hivyo nimeona saa nyingi za Nixie mkondoni na nilidhani zinaonekana nzuri, hata hivyo sikutaka kutumia $ 100 + kwa saa ambayo hata haijumuishi zilizopo! na mizunguko. Nilitaka kutengeneza kitu tofauti kidogo na anuwai kubwa ya saa za kawaida za kuangalia nixie. Mwishowe nilichagua kutumia zilizopo za bargraph ya Nixie IN-9. Hizi ni mirija mirefu myembamba na urefu wa plasma inayong'aa inategemea sasa kupitia zilizopo. Bomba upande wa kushoto iko katika nyongeza za saa na bomba upande wa kulia iko kwa dakika. Zina vielekezi viwili tu na kwa hivyo fanya ujenzi wa mzunguko uelekee mbele zaidi. Katika muundo huu, kuna saa na bomba la dakika, na urefu wa plasma katika kila bomba inayowakilisha wakati wa sasa. Wakati unatumiwa kwa kutumia mdhibiti mdogo wa Adafruit Trinket na saa halisi (RTC).

Hatua ya 1: Kukusanya Sehemu

Kukusanya Sehemu
Kukusanya Sehemu

Kuna sehemu mbili, kwanza elektroniki na pili kuweka na kumaliza. Sehemu za elektroniki zinazohitajika ni: Adafruit Trinket 5V - $ 7.95 (www.adafruit.com/products/1501) Adafruit RTC - $ 9 (www.adafruit.com/products/264) 2x Nixie IN-9 bargraph ~ $ 3 per tube on eBay 1x Usambazaji wa umeme wa Nixie 140v ~ $ 12 kwenye eBay 4x 47 capacitors capacitors 4x 3.9 kOhm resistors 2x 1 kOhm potentiometer 2x Transistor MJE340 NPN high voltage ~ $ 1 kila 1x LM7805 5v mdhibiti ~ $ 1 1x 2.1mm soketi ~ $ 1 1x sanduku la mradi na pcb ~ $ 5 1x Usambazaji wa umeme wa 12v DC (nimepata ya zamani kutoka kwa kifaa kilichosahaulika kwa muda mrefu) Solder, waya wa kushikamana, nk Kuweka: Niliamua kuweka vifaa vya elektroniki kwenye sanduku dogo la mradi mweusi wa plastiki, kisha weka mirija kwenye mwendo wa saa ya kale. Kuashiria saa na dakika nilitumia waya wa shaba uliofungwa mirija. Sehemu za kuweka: Mwendo wa saa ya kale - $ 10 eBay waya wa Shaba - $ 3 eBay Moto gundi bunduki

Hatua ya 2: Mzunguko

Mzunguko
Mzunguko
Mzunguko
Mzunguko
Mzunguko
Mzunguko
Mzunguko
Mzunguko

Hatua ya kwanza ni kujenga usambazaji wa umeme wa Nixie. Hii ilikuja kama kit nzuri kutoka kwa eBay, pamoja na PCB kidogo na ilihitaji tu vifaa kuuzwa kwa bodi. Ugavi huu ni tofauti kati ya 110-180v, inayoweza kudhibitiwa na sufuria ndogo kwenye ubao. Kutumia dereva ndogo ya screw kurekebisha pato hadi ~ 140v. Kabla sijaenda kwa njia nzima nilitaka kujaribu mirija yangu ya neli, ili kufanya hivyo niliunda mzunguko rahisi wa majaribio kwa kutumia bomba moja, transistor na potentiometer ya 10k niliyokuwa nimeweka karibu. Kama inavyoonekana katika takwimu ya kwanza, usambazaji wa 140v umeambatanishwa na anode ya bomba (mguu wa kulia). Cathode (mguu wa kushoto) kisha imeunganishwa na mguu wa mtoza wa transistor ya MJE340. Ugavi wa 5v umeunganishwa na sufuria ya 10k inayogawanya ardhini kwenye msingi wa transistor. Mwishowe mtoaji wa transistor ameunganishwa kupitia kontena ya sasa ya 300 ohm inayopunguza ardhi. Ikiwa haufahamiani na transistors na vifaa vya elektroniki haijalishi, ingia waya na ubadilishe urefu wa plasma na kitovu cha sufuria! Mara hiyo inafanya kazi tunaweza kuangalia kutengeneza saa yetu. Mzunguko kamili wa saa unaweza kuonekana kwenye mchoro wa mzunguko wa pili. Baada ya utafiti fulani nilipata mafunzo kamili kwenye wavuti ya kujifunza ya Adafruit kufanya karibu kabisa kile nilitaka kufanya. Mafunzo haya yanaweza kupatikana hapa: Kutumia upanaji wa mpigo wa mpigo (PWM) kudhibiti upungufu wa sindano. Coil ya amp amp mita wastani wa PWM kuwa ishara bora ya dc. Walakini ikiwa tutatumia PWM moja kwa moja kuendesha mirija basi moduli ya masafa ya juu inamaanisha mwambaa wa plasma hautakaa "umefungwa" kwa msingi wa bomba na utakuwa na bar ya kuelea. Ili kuepukana na hili, niliweka wastani wa PWM kutumia kichujio cha kupitisha cha chini na muda mrefu kupata ishara karibu ya dc. Hii ina mzunguko wa kukatwa wa 0.8 Hz, hii ni sawa kwani tunasasisha wakati wa saa tu kila sekunde 5. Kwa kuongezea kwa kuwa bargraphs zina urefu wa maisha na inaweza kuhitaji kuchukua nafasi na sio kila bomba ni sawa nilijumuisha sufuria 1k baada ya bomba. Hii inaruhusu kurekebisha kurekebisha urefu wa plasma kwa zilizopo mbili. Ili kufunga trinket kwa saa halisi (RCT) unganisha Trinket-pin 0 kwa RTC-SDA, Trinket-pin 2 kwa RTC-SCL na Trinket-5v hadi RTC-5v na Trinket GND kwenye ardhi ya RTC. Kwa sehemu hii inaweza kusaidia kutazama maagizo ya saa ya Adafruit, https://learn.adafruit.com/trinket-powered-analog-…. Mara tu Trinket na RTC zimefungwa vizuri, waya juu ya mirija ya nixie, transistors, vichungi nk kwenye ubao wa mkate kwa uangalifu kufuata mchoro wa mzunguko.

Ili kupata RTC na Trinket kuzungumza wewe kwanza unahitaji kupakua maktaba sahihi kutoka Adafruit Github. Unahitaji TinyWireM.h na TInyRTClib.h. Kwanza tunataka kurekebisha mirija, pakia mchoro wa calibrate mwishoni mwa hii inayoweza kufundishwa. Ikiwa hakuna michoro yoyote mwishoni itafanya kazi basi jaribu mchoro wa saa ya Adafruit. Nimebadilisha mchoro wa saa ya Adafruit kufanya kazi kwa ufanisi zaidi na zilizopo za nixie lakini mchoro wa Adafruit utafanya kazi vizuri.

Hatua ya 3: Usawazishaji

Upimaji
Upimaji

Mara tu unapopakia mchoro wa upimaji wahitimu wanaohitaji kuweka alama.

Kuna njia tatu za usawazishaji, kwanza huweka mirija yote ya nixie kwa pato kubwa. Tumia hii kurekebisha sufuria ili urefu wa plasma kwenye mirija yote iwe sawa na iwe chini kidogo ya urefu wa juu. Hii inahakikisha majibu ni sawa kwa saa nzima.

Mpangilio wa pili unalinganisha bomba la dakika. Inabadilika kati ya dakika 0, 15, 30, 45 na 60 kila sekunde 5.

Mpangilio wa mwisho unarudia hii kwa kila nyongeza ya saa. Tofauti na saa ya Adafruit kiashiria cha saa kinasonga kwa nyongeza zilizowekwa mara moja kila saa. Ilikuwa ngumu kupata jibu la mstari kwa kila saa wakati wa kutumia mita ya analog.

Mara tu ukishabadilisha sufuria pakia mchoro ili urekebishe kwa dakika. Chukua waya mwembamba wa shaba na ukate urefu mfupi. Funga duru hii kwa bomba na pindua ncha mbili pamoja. Telezesha hii kwa nafasi sahihi na utumie bunduki ya gundi moto weka nafasi ndogo ya gundi kuweka mahali pazuri. Rudia hii kwa kila dakika na nyongeza ya saa.

Nilisahau kuchukua picha zozote za mchakato huu lakini unaweza kuona kutoka kwenye picha jinsi waya imeambatanishwa. Ingawa nilitumia gundi kidogo sana kushikamana na waya.

Hatua ya 4: Kuweka na kumaliza

Kuweka na Kumaliza
Kuweka na Kumaliza
Kuweka na Kumaliza
Kuweka na Kumaliza
Kuweka na Kumaliza
Kuweka na Kumaliza

Mara tu zilizopo zote zimepimwa na kufanya kazi sasa ni wakati wa kufanya mzunguko na kupanda kwenye aina fulani ya msingi. Ninachagua mwendo wa saa ya kale kwani nilipenda mchanganyiko wa teknolojia ya kale, ya 60 na ya kisasa. Wakati wa kuhamisha kutoka kwenye ubao wa mkate kwenda kuvua bodi kuwa mwangalifu sana na kuchukua muda wako kuhakikisha unganisho lote limefanywa. Sanduku nililonunua lilikuwa dogo kidogo lakini kwa kuwekwa kwa uangalifu na kulazimisha kidogo niliweza kuifanya yote itoshe. Nilichimba shimo pembeni kwa usambazaji wa umeme na lingine kwa risasi ya nixie. Nilifunikwa waya za nixie kwenye joto hupunguza ili kuepusha kaptula yoyote. Wakati umeme umewekwa kwenye sanduku gundi kwa nyuma ya mwendo wa saa. Kupanda mirija nilitumia gundi moto na nikaunganisha alama za waya zilizopotoka kwa chuma, kuwa mwangalifu kuhakikisha kuwa zilikuwa sawa. Labda nilitumia gundi nyingi lakini haionekani sana. Inaweza kuwa kitu ambacho kinaweza kuboreshwa baadaye. Wakati yote yamewekwa juu, pakia mchoro wa saa ya Nixie mwishoni mwa hii inayoweza kufundishwa na kupendeza saa yako mpya nzuri!

Hatua ya 5: Mchoro wa Arduino - Usawazishaji

#fafanua SAA_PIN 1 // Onyesho la Saa kupitia PWM kwenye Trinket GPIO # 1

#fafanua DAKIKA_PIN 4 // Maonyesho ya Dakika kupitia PWM kwenye Trinket GPIO # 4 (kupitia simu ya Timer 1)

masaa ndani = 57; dakika int = 57; // kuweka kiwango cha chini pwm

kuanzisha batili () {pinMode (HOUR_PIN, OUTPUT); pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // kuanzisha matokeo ya PWM

}

kitanzi batili () {// Tumia hii kurekebisha sufuria za nixie ili kuhakikisha urefu wa bomba unaofanana na AnalogWrite (HOUR_PIN, 255); AnalogIandika4 (255); // Tumia hii kusawazisha nyongeza za dakika

/*

AnalogIandika4 (57); // dakika 0 kuchelewa (5000); AnalogIandika4 (107); // dakika 15 kuchelewa (5000); AnalogIandika4 (156); // dakika 30 kuchelewa (5000); AnalogIandika4 (206); // dakika 45 kuchelewa (5000); AnalogIandika4 (255); // dakika 60 kuchelewa (5000);

*/

// Tumia hii kusawazisha nyongeza ya saa / *

AnalogWrite (HOUR_PIN, 57); // 57 ndio pato la chini na inalingana na ucheleweshaji wa 1 am/pm (4000); // kuchelewesha sekunde 4 analogAandika (HOUR_PIN, 75); // 75 ni pato linalofanana na kucheleweshwa kwa 2 am/pm (4000); AnalogWrite (HOUR_PIN, 93); // 93 ni pato linalofanana na kucheleweshwa kwa 3 am/pm (4000); AnalogWrite (HOUR_PIN, 111); // 111 ni pato linalofanana na kuchelewa kwa 4 am/pm (4000); AnalogWrite (HOUR_PIN, 129); // 129 ndio pato linalofanana na kucheleweshwa kwa 5 am/pm (4000); AnalogWrite (HOUR_PIN, 147); // 147 ni pato linalolingana na ucheleweshaji wa 6 am/pm (4000); andika Analog (HOUR_PIN, 165); // 165 ni pato linalofanana na ucheleweshaji wa 7 am / pm (4000); AnalogWrite (HOUR_PIN, 183); // 183 ni pato linalofanana na ucheleweshaji wa 8 am/pm (4000); AnalogWrite (HOUR_PIN, 201); // 201 ni pato linalofanana na kucheleweshwa kwa 9 am/pm (4000); AnalogWrite (HOUR_PIN, 219); // 219 ndio pato linalofanana na kucheleweshwa kwa 10 am/pm (4000); AnalogWrite (HOUR_PIN, 237); // 237 ni pato linalofanana na kucheleweshwa kwa 11 am/pm (4000); AnalogWrite (HOUR_PIN, 255); // 255 ndio pato linalofanana na 12 am/pm

*/

}

batili PWM4_init () {// Sanidi PWM kwenye Trinket GPIO # 4 (PB4, pin 3) ukitumia Timer 1 TCCR1 = _BV (CS10); // hakuna daktari mkuu GTCCR = _BV (COM1B1) | _BV (PWM1B); // wazi OC1B kwa kulinganisha OCR1B = 127; // mzunguko wa wajibu uanzishe kwa 50% OCR1C = 255; // masafa}

// Kazi ya kuruhusu Analogi andika kwenye Trinket GPIO # 4 batili analogWrite4 (uint8_t duty_value) {OCR1B = value_value; // wajibu inaweza kuwa 0 hadi 255 (0 hadi 100%)}

Hatua ya 6: Mchoro wa Arduino - Saa

// Adafruit Trinket saa ya mita ya Analog

// Tarehe na kazi za wakati kutumia DS1307 RTC iliyounganishwa kupitia I2C na TinyWireM lib

// Pakua maktaba hizi kutoka kwa ghala ya Adafruit na Git // kwenye saraka yako ya Maktaba ya Arduino # pamoja na # pamoja

// Kwa utatuzi, nambari ya nambari ya kukomesha, tumia Rafiki wa FTDI na pini yake ya RX iliyounganishwa na Pin 3 // Utahitaji programu ya terminal (kama freeware PuTTY ya Windows) iliyowekwa kwa // USB bandari ya rafiki wa FTDI mnamo 9600 baud. Ondoa maagizo ya serial kuona kilicho juu // # fafanua HOUR_PIN 1 // Onyesho la saa kupitia PWM kwenye Trinket GPIO # 1 #fafanua MINUTE_PIN 4 // Onyesho la Dakika kupitia PWM kwenye Trinket GPIO # 4 (kupitia simu za Timer 1) // SendOnlySoftwareSerial Serial (3); // Uhamisho wa serial kwenye Trinket Pin 3 RTC_DS1307 rtc; // Weka saa halisi

usanidi batili () {pinMode (HOUR_PIN, OUTPUT); // fafanua pini za mita za PWM kama njia ya pato (MINUTE_PIN, OUTPUT); PWM4_init (); // Weka kipima saa 1 kufanya kazi PWM kwenye Trinket Pin 4 TinyWireM.begin (); // Anza I2C rtc. Anza (); // Anza saa ya saa halisi ya DS1307 //Serial.anza (96600); // Anza Monitor Serial kwa 9600 baud ikiwa (! Rtc.isrunning ()) {//Serial.println("RTC HAIENDI! "); // mstari unaofuata unaweka RTC hadi tarehe na wakati mchoro huu ulikusanywa rtc.rekebisha (DateTime (_ DATE_, _TIME_)); }}

kitanzi batili () {uint8_t hourvalue, minutevalue; uint8_t saa ya voltage, dakika ya voltage;

DateTime sasa = rtc.now (); // Pata saa ya habari ya RTC = sasa. Saa (); // Pata saa ikiwa (saa ya saa> 12) - - 12; // Saa hii ni saa ya dakika 12 = sasa. Dakika (); // Pata dakika

dakikavoltage = ramani (dakika, 1, 60, 57, 255); // Badilisha dakika kuwa mzunguko wa ushuru wa PWM

ikiwa (hourvalue == 1) {analogWrite (HOUR_PIN, 57); } ikiwa (saa = = 2) {analogWrite (HOUR_PIN, 75); // kila saa inalingana na +18} ikiwa (saa ya saa == 3) {analogWrite (HOUR_PIN, 91); }

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

AnalogWrite4 (voltage ya dakika); // Analogwrite dakika inaweza kubaki sawa na ramani inafanya kazi // nambari kuweka processor kulala inaweza kuwa bora - tutachelewesha kuchelewa (5000); // muda wa kuangalia kila sekunde 5. Unaweza kubadilisha hii. }

batili PWM4_init () {// Sanidi PWM kwenye Trinket GPIO # 4 (PB4, pin 3) ukitumia Timer 1 TCCR1 = _BV (CS10); // hakuna daktari mkuu GTCCR = _BV (COM1B1) | _BV (PWM1B); // wazi OC1B kwa kulinganisha OCR1B = 127; // mzunguko wa wajibu uanzishe kwa 50% OCR1C = 255; // masafa}

// Kazi ya kuruhusu Analogi andika kwenye Trinket GPIO # 4 batili analogWrite4 (uint8_t duty_value) {OCR1B = value_value; // wajibu inaweza kuwa 0 hadi 255 (0 hadi 100%)}

Ilipendekeza: