Sadržaj:

Nixie Bargraph sat: 6 koraka (sa slikama)
Nixie Bargraph sat: 6 koraka (sa slikama)

Video: Nixie Bargraph sat: 6 koraka (sa slikama)

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

Uredite 11. 11. 17 Uz pomoć Kickstartera objavio sam komplet za ovaj sat! Sadrži ploču s upravljačkim programima i 2 Nixie IN-9 cijevi. Sve što trebate dodati je vaš vlastiti Arduino/Raspberry Pi/drugo. Komplet se može pronaći, ali klikom na ovu vezu!

Tako sam vidio mnogo Nixie satova na mreži i mislio sam da izgledaju odlično, međutim nisam želio potrošiti 100 USD+ na sat koji čak ne uključuje cijevi! Pa sam s malo znanja o elektronici lovio oko različitih nixie cijevi i kola. Htio sam napraviti nešto malo drugačije od velikog asortimana općenito prilično sličnih nixie satova. Na kraju sam odlučio koristiti Nixie IN-9 bargrafske cijevi. To su duge tanke cijevi, a visina užarene plazme ovisi o struji kroz cijevi. Cijev s lijeve strane je u koracima od sata, a cijev s desne u nekoliko minuta. Imaju samo dva odvoda i stoga čine izgradnju kola jednostavnijim. U ovom dizajnu postoji cijev od jednog i jednog minuta, s visinama plazme u svakoj cijevi koje predstavljaju trenutno vrijeme. Vrijeme se mjeri pomoću mikrokontrolera Adafruit Trinket i sata u stvarnom vremenu (RTC).

Korak 1: Sklapanje dijelova

Sklapanje delova
Sklapanje delova

Postoje dva dijela, prvo elektronika, a zatim montaža i završna obrada. Potrebne elektroničke komponente su: 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 po cijevi na eBayu 1x Nixie napajanje 140v ~ 12 USD na eBay -u 4x 47 uF elektrolitski kondenzatori 4x 3,9 kOhm otpornici 2x 1 kOhm potenciometar 2x tranzistor MJE340 NPN visoki napon ~ 1 USD svaki 1x LM7805 5V regulator ~ 1 USD utičnica 2,1 mm ~ 1 USD 1x kutija za projekt sa PCB ~ 5 USD 1x Napajanje od 12V DC (našao sam stari iz nekog davno zaboravljenog spravica) Lemilo, žica za spajanje itd. Montaža: Odlučio sam montirati elektroniku u malu crnu plastičnu kutiju, a zatim montirati cijevi na starinski sat. Za označavanje sata i minuta koristio sam bakrenu žicu omotanu oko cijevi. Dijelovi za montažu: Starinski sat - 10 USD eBay bakrena žica - 3 USD eBay pištolj za ljepilo

Korak 2: Krug

Krug
Krug
Krug
Krug
Krug
Krug
Krug
Krug

Prvi korak je izgradnja Nixie napajanja. Ovo je došao kao lijep mali komplet s eBay -a, uključujući malo PCB -a i samo su mu potrebne komponente za lemljenje na ploču. Ovo posebno napajanje je promjenjivo između 110-180v, kontrolirano s malim loncem na ploči. Pomoću malog odvijača podesite izlaz na ~ 140v. Prije nego što sam prešao cijeli put htio sam isprobati svoje nixie cijevi, da bih to napravio, napravio sam jednostavan testni krug koristeći jednu cijev, tranzistor i 10k potenciometar koji sam imao okolo. Kao što se može vidjeti na prvoj slici, napajanje od 140 V priključeno je na anodu cijevi (desna noga). Zatim se katoda (lijeva noga) povezuje s kolektorskom nogom tranzistora MJE340. Napajanje od 5V spojeno je na 10k lonac koji se dijeli s masom na bazu tranzistora. Konačno, odašiljač tranzistora je spojen preko otpornika za ograničavanje struje od 300 ohma na masu. Ako niste upoznati s tranzistorima i elektronikom, to zapravo nije važno, samo ih povežite i promijenite visinu plazme pomoću tipke za lonac! Kad to uspije, možemo pogledati kako napraviti sat. Potpuno taktno kolo može se vidjeti na drugom dijagramu kola. Nakon nekog istraživanja, pronašao sam savršen vodič na web stranici Adafruit learn koji radi gotovo točno ono što sam želio. Vodič se može pronaći ovdje: https://learn.adafruit.com/trinket-powered-analog-m… Ovaj vodič koristi Trinket kontroler i RTC za upravljanje s dva analogna mjerača pojačala. Korištenje modulacije širine impulsa (PWM) za kontrolu skretanja igle. Zavojnica mjerača pojačala usrednjava PWM u efektivni dc signal. Međutim, ako koristimo PWM izravno za pogon cijevi, tada visokofrekventna modulacija znači da plazma šipka neće ostati "pričvršćena" na podnožje cijevi i imat ćete lebdeću šipku. Da bih to izbjegao, prosječno sam PWM koristio niskopropusni filter s dugotrajnom konstantom kako bih dobio gotovo dc signal. Ova granična frekvencija je 0,8 Hz, to je u redu jer ažuriramo vrijeme na svakih 5 sekundi. Osim toga, budući da bargrafi imaju ograničen vijek trajanja i možda će ih trebati zamijeniti, a nisu sve cijevi potpuno iste, uključio sam lonac od 1 k nakon cijevi. Ovo omogućava podešavanje za podešavanje visine plazme za dvije epruvete. Za povezivanje drangulija sa satom realnog vremena (RCT) povežite Trinket-pin 0 na RTC-SDA, Trinket-pin 2 na RTC-SCL i Trinket-5v na RTC-5v i Trinket GND na RTC masu. Za ovaj dio moglo bi biti korisno pogledati upute za sat Adafruit, https://learn.adafruit.com/trinket-powered-analog-…. Nakon što su Trinket i RTC ispravno ožičeni, spojite nixie cijevi, tranzistore, filtere itd. Na ploču pažljivo slijedeći dijagram kruga.

Da biste razgovarali o RTC -u i Trinketu, prvo morate preuzeti odgovarajuće biblioteke s Adafruit Github -a. Potrebni su vam TinyWireM.h i TInyRTClib.h. Prvo želimo kalibrirati epruvete, postaviti skicu kalibracije na kraj ovog uputstva. Ako nijedna od skica na kraju ne uspije, pokušajte sa skicom sata Adafruit. Ja sam prilagodio skicu sata Adafruit da radi najefikasnije sa nixie cijevima, ali skica Adafruit će raditi dobro.

Korak 3: Kalibracija

Kalibracija
Kalibracija

Nakon što učitate skicu kalibracije, diplome je potrebno označiti.

Postoje tri načina kalibracije, prvi postavlja obje nixie cijevi na maksimalnu snagu. Koristite ovo za podešavanje lonca tako da visina plazme u obje epruvete bude ista i da bude malo ispod maksimalne visine. Ovo osigurava da je odziv linearan u cijelom taktu.

Druga postavka kalibrira cijev za minute. Mijenja se između 0, 15, 30, 45 i 60 minuta svakih 5 sekundi.

Zadnja postavka ponavlja ovo za svakih sat vremena. Za razliku od sata Adafruit, indikator sata se pomiče u fiksnim koracima jednom na sat. Bilo je teško dobiti linearni odgovor za svaki sat kada se koristi analogno brojilo.

Nakon što ste prilagodili lonac, otpremite skicu za kalibraciju na minute. Uzmite tanku bakrenu žicu i odrežite kratku duljinu. Omotajte ovu cijev oko cijevi i uvijte dva kraja zajedno. Gurnite ga u pravilan položaj i pomoću pištolja za vruće ljepilo stavite malu mrvicu ljepila kako biste ga držali na pravom mjestu. Ponovite ovo za svaki minutni prirast.

Zaboravio sam snimiti bilo koju sliku ovog procesa, ali sa slika možete vidjeti kako je žica pričvršćena. Iako sam koristio mnogo manje ljepila samo za pričvršćivanje žice.

Korak 4: Montaža i završna obrada

Montaža i završna obrada
Montaža i završna obrada
Montaža i završna obrada
Montaža i završna obrada
Montaža i završna obrada
Montaža i završna obrada

Nakon što su cijevi sve kalibrirane i rade, sada je vrijeme da se trajno napravi krug i montira na neki oblik baze. Odabrao sam starinski sat jer mi se svidio spoj antikviteta, 60 -ih i moderne tehnologije. Prilikom prebacivanja s matične ploče na ploču sa pločama budite vrlo oprezni i odvojite vrijeme osiguravajući da su sve veze uspostavljene. Kutija koju sam kupio bila je pomalo mala, ali uz pažljivo postavljanje i malo forsiranja uspjela sam sve to uklopiti. Izbušio sam rupu sa strane za napajanje, a drugu za nixie provodnike. Pokrila sam nixie žice termoskupljanjem kako bih izbjegla kratke spojeve. Kada je elektronika montirana u kutiju, zalijepite je na stražnju stranu sata. Za montažu cijevi koristio sam vruće ljepilo i zalijepio vrhove upletene žice na metal, pazeći da budu ravni. Vjerojatno sam upotrijebio previše ljepila, ali nije jako uočljivo. To bi moglo biti nešto što bi se moglo poboljšati u budućnosti. Kad je sve montirano, učitajte skicu Nixie sata na kraj ovog uputstva i divite se vašem divnom novom satu!

Korak 5: Arduino skica - kalibracija

#define HOUR_PIN 1 // Prikaz sata putem PWM -a na Trinket GPIO #1

#define MINUTE_PIN 4 // Prikaz minuta putem PWM -a na Trinket GPIO #4 (putem poziva Tajmera 1)

int sati = 57; int minute = 57; // postavlja minimalni pwm

void setup () {pinMode (HOUR_PIN, OUTPUT); pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // postavljanje PWM izlaza

}

void loop () {// Koristite ovo za podešavanje nixie posuda kako biste bili sigurni da maksimalna visina cijevi odgovara analogWrite (HOUR_PIN, 255); analogWrite4 (255); // Koristite ovo za kalibriranje minuta u koracima

/*

analogWrite4 (57); // kašnjenje 0 minuta (5000); analogWrite4 (107); // kašnjenje 15 minuta (5000); analogWrite4 (156); // kašnjenje u minuti 30 (5000); analogWrite4 (206); // kašnjenje 45 minuta (5000); analogWrite4 (255); // kašnjenje 60 minuta (5000);

*/

// Koristite ovo za kalibriranje koraka po satu /*

analogWrite (HOUR_PIN, 57); // 57 je minimalni izlaz i odgovara kašnjenju od 1 am/min (4000); // odgoda 4 sekunde analogWrite (HOUR_PIN, 75); // 75 je izlaz koji odgovara kašnjenju od 2 am/min (4000); analogWrite (HOUR_PIN, 93); // 93 je izlaz koji odgovara kašnjenju od 3 am/min (4000); analogWrite (HOUR_PIN, 111); // 111 je izlaz koji odgovara kašnjenju od 4 am/min (4000); analogWrite (HOUR_PIN, 129); // 129 je izlaz koji odgovara kašnjenju od 5 am/min (4000); analogWrite (HOUR_PIN, 147); // 147 je izlaz koji odgovara kašnjenju od 6 am/min (4000); analogWrite (HOUR_PIN, 165); // 165 je izlaz koji odgovara kašnjenju od 7 am/min (4000); analogWrite (HOUR_PIN, 183); // 183 je izlaz koji odgovara kašnjenju od 8 am/min (4000); analogWrite (HOUR_PIN, 201); // 201 je izlaz koji odgovara kašnjenju od 9 am/min (4000); analogWrite (HOUR_PIN, 219); // 219 je izlaz koji odgovara kašnjenju od 10 am/min (4000); analogWrite (HOUR_PIN, 237); // 237 je izlaz koji odgovara kašnjenju od 11 sati u minuti (4000); analogWrite (HOUR_PIN, 255); // 255 je izlaz koji odgovara 12 am/pm

*/

}

void PWM4_init () {// Postavite PWM na Trinket GPIO #4 (PB4, pin 3) pomoću Tajmera 1 TCCR1 = _BV (CS10); // nema predbilježivača GTCCR = _BV (COM1B1) | _BV (PWM1B); // briše OC1B pri usporedbi OCR1B = 127; // radni ciklus inicijaliziran na 50% OCR1C = 255; // frekvencija}

// Funkcija koja dozvoljava analogWrite na Trinket GPIO #4 void analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // carina može biti 0 do 255 (0 do 100%)}

Korak 6: Arduino skica - sat

// Analogni mjerač sata Adafruit Trinket

// Datum i vrijeme funkcioniraju pomoću DS1307 RTC -a povezanog putem I2C i TinyWireM lib

// Preuzmite ove biblioteke iz Adafruit -ovog Github spremišta i // instalirajte u svoj direktorij Arduino biblioteka #include #include

// Za otklanjanje grešaka, uklanjanje komentara serijskim kodom, upotrijebite FTDI prijatelja s RX pinom spojenim na pin 3 // Trebat će vam terminalni program (kao što je besplatni PuTTY za Windows) postavljen na // USB priključak FTDI prijatelja na 9600 baud. Odkomentirajte serijske naredbe da vidite što se događa // #definirajte HOUR_PIN 1 // Prikaz sata putem PWM -a na Trinket GPIO #1 #define MINUTE_PIN 4 // Minutni prikaz putem PWM -a na Trinket GPIO #4 (putem poziva Tajmera 1) // SendOnlySoftwareSerial Serial (3); // Serijski prijenos na Trinket Pin 3 RTC_DS1307 rtc; // Postavljanje sata realnog vremena

void setup () {pinMode (HOUR_PIN, OUTPUT); // definiramo pinove PWM mjerača kao izlaze pinMode (MINUTE_PIN, OUTPUT); PWM4_init (); // Postavite tajmer 1 da radi PWM na Trinket Pin 4 TinyWireM.begin (); // Pokretanje I2C rtc.begin (); // Pokretanje sata realnog vremena DS1307 //Serial.begin(9600); // Pokretanje serijskog monitora na 9600 bauda if (! Rtc.isrunning ()) {//Serial.println("RTC NIJE pokrenut! "); // sljedeći red postavlja RTC na datum i vrijeme sastavljanja ove skice rtc.adjust (DateTime (_ DATE_, _TIME_)); }}

void loop () {uint8_t hourvalue, minutevalue; uint8_t satni napon, minutni napon;

DateTime now = rtc.now (); // Dobivanje RTC info hourvalue = now.hour (); // Dobivamo sat if (hourvalue> 12) hourvalue -= 12; // Ovaj sat je 12 sati minutevalue = now.minute (); // Dobijte minute

minutni napon = mapa (minutna vrijednost, 1, 60, 57, 255); // Pretvorite minute u radni ciklus PWM -a

if (hourvalue == 1) {analogWrite (HOUR_PIN, 57); } if (hourvalue == 2) {analogWrite (HOUR_PIN, 75); // svaki sat odgovara +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 (minutni napon); // minutni analogni zapis može ostati isti kao što funkcionira mapiranje // kod za prebacivanje procesora u stanje mirovanja može biti poželjniji - odgodićemo kašnjenje (5000); // provjeravajte vrijeme svakih 5 sekundi. Ovo možete promijeniti. }

void PWM4_init () {// Postavite PWM na Trinket GPIO #4 (PB4, pin 3) pomoću Tajmera 1 TCCR1 = _BV (CS10); // nema predbilježivača GTCCR = _BV (COM1B1) | _BV (PWM1B); // briše OC1B pri usporedbi OCR1B = 127; // radni ciklus inicijaliziran na 50% OCR1C = 255; // frekvencija}

// Funkcija koja dozvoljava analogWrite na Trinket GPIO #4 void analogWrite4 (uint8_t duty_value) {OCR1B = duty_value; // carina može biti 0 do 255 (0 do 100%)}

Preporučuje se: