Kazalo:

Ura Nixie Bargraph: 6 korakov (s slikami)
Ura Nixie Bargraph: 6 korakov (s slikami)

Video: Ura Nixie Bargraph: 6 korakov (s slikami)

Video: Ura Nixie Bargraph: 6 korakov (s slikami)
Video: Красивая история о настоящей любви! Мелодрама НЕЛЮБОВЬ (Домашний). 2024, Julij
Anonim
Ura Nixie Bargraph
Ura Nixie Bargraph
Ura Nixie Bargraph
Ura Nixie Bargraph

Urejanje 11. 11. 17 S pomočjo Kickstarterja sem zdaj izdal komplet za to uro! Vključuje vozniško ploščo in 2 cevi Nixie IN-9. Vse, kar morate dodati, je vaš Arduino/Raspberry Pi/drugo. Komplet najdete, vendar kliknite na to povezavo!

Tako sem na spletu videl veliko ur Nixie in se mi je zdelo, da izgledajo odlično, vendar nisem hotel porabiti 100 USD+ za uro, ki sploh ne vključuje cevi! Tako sem z malo znanja o elektroniki lovil okoli različnih nixie cevi in vezja. Želel sem narediti nekaj malce drugačnega od velike ponudbe na splošno precej podobnih ur nixie. Na koncu sem se odločil za uporabo barx cevi Nixie IN-9. To so dolge tanke cevi in višina žareče plazme je odvisna od toka skozi cevi. Cev na levi je v korakih po urah, cev na desni pa v minutah. Imajo le dva vodila, zato je izgradnja vezja bolj naravnost. V tej zasnovi je ura in minuta cevi, pri čemer višine plazme v vsaki cevi predstavljajo trenutni čas. Čas se vodi z uporabo mikrokrmilnika Adafruit Trinket in ure v realnem času (RTC).

1. korak: Sestavljanje delov

Sestavljanje delov
Sestavljanje delov

Obstajata dva dela, najprej elektronika in drugič montaža in zaključna obdelava. Potrebne elektronske komponente so: Adafruit Trinket 5V - 7,95 USD (www.adafruit.com/products/1501) Adafruit RTC - 9 USD (www.adafruit.com/products/264) 2x Nixie IN -9 bargraf ~ 3 USD na cev na eBayu 1x Napajanje Nixie 140v ~ 12 USD na eBayu 4x 47 uF elektrolitski kondenzatorji 4x 3,9 kOhm upori 2x 1 kOhm potenciometer 2x tranzistor MJE340 NPN visokonapetostna ~ 1 USD vsak 1x LM7805 5v regulator ~ 1 USD 2,1 mm vtičnica ~ 1 USD 1x projektna škatla s PCB ~ 5 USD 1x 12v DC napajalnik (od starega pozabljenega pripomočka sem našel starega) Spajkanje, priključna žica itd. Montaža: Odločil sem se, da bom elektroniko namestil v majhno črno plastično škatlo, nato pa cevi pritrdil na starinsko premikanje ure. Za označevanje ure in minut sem uporabil bakreno žico, ovito okoli cevi. Montažni deli: Starinsko premikanje ure - 10 USD eBay bakrena žica - 3 USD pištola za vroče lepilo eBay

2. korak: Vezje

Vezje
Vezje
Vezje
Vezje
Vezje
Vezje
Vezje
Vezje

Prvi korak je izdelava napajalnika Nixie. To je prišel kot lep majhen komplet z eBaya, vključno z malo tiskanega vezja in potreboval je le komponente, ki jih je treba spajkati na ploščo. To napajanje je spremenljivo med 110-180V, ki ga je mogoče upravljati z majhnim loncem na plošči. Z majhnim izvijačem nastavite izhod na ~ 140v. Preden sem šel na celotno pot, sem želel preizkusiti svoje nixie cevi, zato sem zgradil preprosto preskusno vezje z eno cevjo, tranzistorjem in 10k potenciometrom, ki sem ga imel naokoli. Kot je razvidno iz prve slike, je napajanje 140v pritrjeno na cevno anodo (desna noga). Nato je katoda (leva noga) priključena na kolektorsko nogo tranzistorja MJE340. Napajanje 5V je priključeno na 10k lonec, ki se deli na ozemljitev v tranzistorsko osnovo. Nazadnje se tranzistorski oddajnik poveže s 300 ohmskim omejevalnim uporom na maso. Če niste seznanjeni s tranzistorji in elektroniko, to sploh ni pomembno, samo priključite in spremenite višino plazme z gumbom za lonec! Ko to deluje, si lahko ogledamo izdelavo ure. Celotno vezje ure je prikazano v drugem diagramu vezja. Po nekaj raziskavah sem našel popolno vadnico na spletnem mestu Adafruit learn, ki dela skoraj točno tisto, kar sem hotel narediti. Vadnico najdete tukaj: https://learn.adafruit.com/trinket-powered-analog-m… Ta vadnica uporablja krmilnik Trinket in RTC za upravljanje dveh analognih merilnikov amp. Uporaba modulacije širine impulza (PWM) za nadzor odklona igle. Tuljava merilnika ojačevalnika povpreči PWM v učinkovit dc signal. Če pa za pogon cevi uporabljamo PWM, potem visokofrekvenčna modulacija pomeni, da plazemska palica ne bo ostala "vpeta" na dno cevi in imeli boste lebdečo palico. Da bi se temu izognil, sem povprečno določil PWM z nizkoprepustnim filtrom z dolgo časovno konstanto, da sem dobil skoraj dc signal. Ta ima izklopno frekvenco 0,8 Hz, kar je v redu, saj čas ure posodabljamo le vsakih 5 sekund. Poleg tega, ker imajo bargrafi končno življenjsko dobo in jih bo morda treba zamenjati, vsaka cev pa ni popolnoma enaka, sem po cevki vključil 1k lonec. To omogoča prilagajanje za nastavitev višine plazme za obe cevi. Za priključitev drobtinice na uro realnega časa (RCT) priključite trinket-pin 0 na RTC-SDA, trinket-pin 2 na RTC-SCL in Trinket-5v na RTC-5v in Trinket GND na ozemljitev RTC. Za ta del je morda v pomoč ogled navodil za uro Adafruit, https://learn.adafruit.com/trinket-powered-analog-…. Ko sta Trinket in RTC pravilno priključena, priključite nixie cevi, tranzistorje, filtre itd.

Če želite, da se RTC in Trinket pogovarjata, morate najprej prenesti ustrezne knjižnice iz Adafruit Github. Potrebujete TinyWireM.h in TInyRTClib.h. Najprej želimo kalibrirati epruvete, na koncu kalibracijske skice naložimo skico. Če nobena od skic na koncu ne deluje, poskusite s skico ure Adafruit. Spremenil sem skico ure Adafruit, da bi najučinkoviteje delovala s cevmi nixie, vendar bo skica Adafruit delovala dobro.

3. korak: Umerjanje

Praznovanje
Praznovanje

Ko naložite skico za umerjanje, je treba diplome označiti.

Obstajajo trije načini za umerjanje, prvi nastavi obe cevi nixie na največjo moč. S tem nastavite lonec tako, da bo višina plazme v obeh epruvetah enaka in da bo nekoliko pod največjo višino. To zagotavlja, da je odziv linearen v celotnem območju ure.

Druga nastavitev umerja minutno cev. Spreminja se med 0, 15, 30, 45 in 60 minut vsakih 5 sekund.

Zadnja nastavitev to ponovi za vsak urni prirastek. Za razliko od ure Adafruit se kazalnik ure premika v določenih korakih enkrat na uro. Pri uporabi analognega števca je bilo za vsako uro težko dobiti linearni odziv.

Ko ste prilagodili lonec, naložite skico za kalibracijo minut. Vzemite tanko bakreno žico in odrežite kratko. To ovijte okrog cevi in oba konca zavijte skupaj. Potisnite ga v pravilen položaj in s pištolo za vroče lepilo postavite majhno kapljico lepila, da ostane na pravem mestu. To ponovite za vsako minutno in urno povečanje.

Pozabil sem posneti vse te postopke, vendar na slikah vidite, kako je žica pritrjena. Čeprav sem le za pritrditev žice uporabil veliko manj lepila.

4. korak: Montaža in zaključna obdelava

Montaža in zaključna obdelava
Montaža in zaključna obdelava
Montaža in zaključna obdelava
Montaža in zaključna obdelava
Montaža in zaključna obdelava
Montaža in zaključna obdelava

Ko so cevi vse umerjene in delujoče, je zdaj čas, da trajno naredite vezje in ga pritrdite na neko obliko podlage. Izbral sem starinsko premikanje ure, saj mi je bila všeč mešanica starine, 60 -ih in sodobne tehnologije. Pri prenosu s plošče na ploščo na trak bodite zelo previdni in si vzemite čas, da zagotovite vse povezave. Škatla, ki sem jo kupil, je bila malo majhna, vendar sem z nekaj previdne namestitve in malo prisile uspela vse spraviti. Na strani sem izvrtal luknjo za napajanje in še eno za kable nixie. Žice nixie sem pokril s toplotno skrčitvijo, da bi se izognil kratkim hlačam. Ko je elektronika nameščena v škatli, jo lepite na zadnjo stran ure. Za pritrditev cevi sem uporabil vroče lepilo in pritrdil konice zvite žice na kovino, pri čemer sem pazil, da so ravne. Verjetno sem uporabil preveč lepila, vendar ni zelo opazno. Morda je to nekaj, kar bi lahko v prihodnosti izboljšali. Ko je vse nameščeno, naložite skico ure Nixie na koncu tega navodila in občudujte svojo čudovito novo uro!

5. korak: Arduino skica - kalibracija

#define HOUR_PIN 1 // Prikaz ur prek PWM na Trinket GPIO #1

#define MINUTE_PIN 4 // Prikaz minut preko PWM na Trinket GPIO #4 (prek klicev Timer 1)

int ure = 57; int minute = 57; // nastavite minimalni pwm

void setup () {pinMode (HOUR_PIN, OUTPUT); pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // nastavimo izhode PWM

}

void loop () {// S tem prilagodite lončke nixie in se prepričajte, da se največja višina cevi ujema analogWrite (HOUR_PIN, 255); analogWrite4 (255); // Uporabite to za umerjanje minutnih korakov

/*

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

*/

// Uporabite to za umerjanje korakov ur /*

analogWrite (HOUR_PIN, 57); // 57 je najmanjša moč in ustreza zamudi 1 am/min (4000); // zakasnitev 4 sekunde analogWrite (HOUR_PIN, 75); // 75 je izhod, ki ustreza 2 am /pm zamudi (4000); analogWrite (HOUR_PIN, 93); // 93 je izhod, ki ustreza zamudi 3 am/min (4000); analogWrite (HOUR_PIN, 111); // 111 je izhod, ki ustreza 4 am /pm zamudi (4000); analogWrite (HOUR_PIN, 129); // 129 je izhod, ki ustreza 5 am /pm zamudi (4000); analogWrite (HOUR_PIN, 147); // 147 je izhod, ki ustreza zamudi 6 am/min (4000); analogWrite (HOUR_PIN, 165); // 165 je izhod, ki ustreza 7 am /pm zamudi (4000); analogWrite (HOUR_PIN, 183); // 183 je izhod, ki ustreza zamudi 8 am/min (4000); analogWrite (HOUR_PIN, 201); // 201 je izhod, ki ustreza zamudi 9 am/min (4000); analogWrite (HOUR_PIN, 219); // 219 je izhod, ki ustreza 10 am /pm zamudi (4000); analogWrite (HOUR_PIN, 237); // 237 je izhod, ki ustreza zamudi 11 ur/minuto (4000); analogWrite (HOUR_PIN, 255); // 255 je izhod, ki ustreza 12 am /pm

*/

}

void PWM4_init () {// Nastavite PWM na Trinket GPIO #4 (PB4, pin 3) s časovnikom 1 TCCR1 = _BV (CS10); // brez predkalerja GTCCR = _BV (COM1B1) | _BV (PWM1B); // počisti OC1B pri primerjavi OCR1B = 127; // obratovalni cikel inicializiramo na 50% OCR1C = 255; // frekvenca}

// Funkcija, ki dovoljuje analogWrite na Trinket GPIO #4 void analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // dajatev je lahko 0 do 255 (0 do 100%)}

6. korak: Arduino skica - ura

// Analogna merilna ura Adafruit Trinket

// Datum in čas delujeta z DS1307 RTC, povezanim prek I2C in TinyWireM lib

// Prenesite te knjižnice iz skladišča Github Adafruit in jih // namestite v svoj imenik Arduino Libraries #include #include

// Za odpravljanje napak, odkomentiranje serijske kode uporabite prijatelja FTDI s priključkom RX, priključenim na pin 3 // Potrebovali boste terminalski program (na primer brezplačno programsko opremo PuTTY za Windows), nastavljen na // USB vrata prijatelja FTDI na 9600 baud. Odkomentirajte serijske ukaze, da vidite, kaj se dogaja // #definirajte HOUR_PIN 1 // Prikaz ur prek PWM na Trinket GPIO #1 #define MINUTE_PIN 4 // Minutarski prikaz prek PWM na Trinket GPIO #4 (prek klicev Timer 1) // SendOnlySoftwareSerial Serial (3); // Serijski prenos na Trinket Pin 3 RTC_DS1307 rtc; // Nastavitev ure v realnem času

void setup () {pinMode (HOUR_PIN, OUTPUT); // definiramo zatiče merilnika PWM kot izhode pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // Časovnik 1 nastavite na delovanje PWM na Trinket Pin 4 TinyWireM.begin (); // Začni I2C rtc.begin (); // Začni uro realnega časa DS1307 //Serial.begin(9600); // Začnite serijski monitor pri 9600 baudih if (! Rtc.isrunning ()) {//Serial.println("RTC NE teče! "); // naslednja vrstica nastavi RTC na datum in čas, ko je bila skica sestavljena rtc.adjust (DateTime (_ DATE_, _TIME_)); }}

void loop () {uint8_t hourvalue, minutevalue; uint8_t urna napetost, minutna napetost;

DateTime zdaj = rtc.now (); // Pridobite info uro RTCvavalue = now.hour (); // dobimo uro if (hourvalue> 12) hourvalue -= 12; // Ta ura je 12 ur minutevalue = now.minute (); // Pridobite minute

minutna napetost = zemljevid (minutna vrednost, 1, 60, 57, 255); // Pretvorite minute v delovni cikel PWM

if (hourvalue == 1) {analogWrite (HOUR_PIN, 57); } if (hourvalue == 2) {analogWrite (HOUR_PIN, 75); // vsaka ura ustreza +18} if (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 (minutna napetost); // minutni analogni zapis lahko ostane enak kot pri preslikavah // koda za preklop procesorja bi lahko bila boljša - zamudili bomo zakasnitev (5000); // preverjanje časa vsakih 5 sekund. To lahko spremenite. }

void PWM4_init () {// Nastavite PWM na Trinket GPIO #4 (PB4, pin 3) s časovnikom 1 TCCR1 = _BV (CS10); // brez predkalerja GTCCR = _BV (COM1B1) | _BV (PWM1B); // počisti OC1B pri primerjavi OCR1B = 127; // obratovalni cikel inicializiramo na 50% OCR1C = 255; // frekvenca}

// Funkcija, ki dovoljuje analogWrite na Trinket GPIO #4 void analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // dajatev je lahko 0 do 255 (0 do 100%)}

Priporočena: