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, Srpanj
Anonim
Nixie Bargraph sat
Nixie Bargraph sat
Nixie Bargraph sat
Nixie Bargraph sat

Uredite 11. 11. 17 Uz pomoć Kickstartera sada sam objavio 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/ostalo. Komplet se može pronaći, ali klikom na ovu vezu!

Vidio sam na internetu mnogo Nixie satova i mislio sam da izgledaju odlično, međutim nisam želio potrošiti 100 USD+ na sat koji čak ne uključuje ni cijevi! Pa sam s malo znanja o elektronici lovio oko raznih nixie cijevi i sklopove. 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 strane u minutama. Imaju samo dva vodiča i stoga čine izgradnju kruga jednostavnijim. U ovom dizajnu postoji cijev od sata i minute, 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 dijelova
Sklapanje dijelova

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 Napajanje Nixie 140v ~ 12 USD na eBayu 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 1x utičnica od 2,1 mm ~ 1 USD 1x projektna kutija s PCB ~ 5 USD 1x 12v DC napajanje (našao sam stari iz nekog davno zaboravljenog gadgeta) Lemilo, spojna žica 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 cijevima. 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 eBaya, uključujući malo PCB -a i samo su potrebne komponente za lemljenje na ploču. Ovo posebno napajanje je varijabilno između 110-180v, kontrolirano s malim loncem na ploči. Pomoću malog odvijača podesite izlaz na ~ 140v. Prije nego što sam otišao do kraja, htio sam isprobati svoje nixie cijevi, a za to sam napravio jednostavan testni krug koristeći jednu cijev, tranzistor i 10k potenciometar koji sam imao oko sebe. 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 spojen je preko otpornika za ograničenje struje od 300 ohma na masu. Ako niste upoznati s tranzistorima i elektronikom, to zapravo i nije važno, samo ga povežite i promijenite visinu plazme s gumbom za lonac! Kad to uspije, možemo pogledati kako izraditi sat. Puni krug takta 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 učiniti. 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 pulsno -širinske modulacije (PWM) za kontrolu otklona igle. Zavojnica mjerača pojačala u prosjeku čini PWM u učinkovit dc signal. Međutim, ako koristimo PWM izravno za pogon cijevi, tada visokofrekventna modulacija znači da plazma ploča neće ostati "stegnuta" na podnožju cijevi i imat ćete lebdeću šipku. Da bih to izbjegao, prosječno sam PWM koristio niskopropusni filtar s dugotrajnom konstantom kako bih dobio gotovo dc signal. Ova granična frekvencija iznosi 0,8 Hz, to je u redu jer ažuriramo vrijeme na svakih 5 sekundi. Nadalje, budući da grafovi imaju konačan životni vijek i možda će ih trebati zamijeniti, a nisu sve cijevi potpuno iste, uključio sam lonac od 1 k nakon cijevi. To omogućuje podešavanje za podešavanje visine plazme za dvije epruvete. Za povezivanje drangulija sa satom realnog vremena (RCT) spojite 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, filtre itd. Na ploču pažljivo slijedeći dijagram kruga.

Da biste razgovarali o RTC -u i Trinketu, prvo morate preuzeti ispravne knjižnice s Adafruit Githuba. Potrebni su vam TinyWireM.h i TInyRTClib.h. Prvo želimo kalibrirati epruvete, prenijeti skicu kalibracije na kraj ovog uputstva. Ako nijedna skica na kraju ne uspije, pokušajte sa skicom sata Adafruit. Ja sam prilagodio skicu sata Adafruit za najučinkovitiji rad s nixie cijevima, ali skica Adafruit će dobro funkcionirati.

Korak 3: Kalibracija

Kalibriranje
Kalibriranje

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

Postoje tri načina kalibracije, prvi postavlja obje nixie cijevi na maksimalni učinak. Upotrijebite ovo za podešavanje lonca tako da visina plazme u obje epruvete bude ista i da bude malo ispod maksimalne visine. Time se osigurava da je odziv linearan u cijelom rasponu takta.

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

Posljednja postavka ponavlja ovo za svakih sat vremena. Za razliku od sata Adafruit, pokazivač sata se pomiče u fiksnim koracima jedanput na sat. Bilo je teško dobiti linearni odgovor za svaki sat pri korištenju analognog mjerača.

Nakon što ste prilagodili lonac, prenesite skicu da se kalibrira nekoliko minuta. Uzmite tanku bakrenu žicu i odrežite kratku duljinu. Omotajte ovu cijev oko cijevi i zavrnite dva kraja zajedno. Gurnite ga u ispravan 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 slikati ovaj postupak, 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 trajno napravite krug i postavite ga na neki oblik baze. Odabrao sam starinski sat jer mi se svidio spoj antikviteta, 60 -ih i moderne tehnologije. Prilikom prelaska s matične ploče na ploču s trakama budite vrlo oprezni i odvojite vrijeme osiguravajući sve veze. 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 vodiče. Pokrila sam nixie žice toplinskim skupljanjem kako bih izbjegla kratke hlače. Kad je elektronika postavljena 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, umetnite 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 povećanja minuta

/*

analogWrite4 (57); // kašnjenje 0 minuta (5000); analogWrite4 (107); // kašnjenje u minuti 15 (5000); analogWrite4 (156); // kašnjenje u minuti 30 (5000); analogWrite4 (206); // kašnjenje 45 minuta (5000); analogWrite4 (255); // kašnjenje u minuti 60 (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 sati u minuti (4000); analogWrite (HOUR_PIN, 165); // 165 je izlaz koji odgovara kašnjenju od 7 sati u minuti (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 sati u minuti (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 sati u minuti

*/

}

void PWM4_init () {// Postavite PWM na Trinket GPIO #4 (PB4, pin 3) pomoću Timer 1 TCCR1 = _BV (CS10); // bez predskaler GTCCR = _BV (COM1B1) | _BV (PWM1B); // brisanje OC1B pri usporedbi OCR1B = 127; // radni ciklus inicijalizacija na 50% OCR1C = 255; // učestalost}

// Funkcija za dopuštanje 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 spojenog putem I2C i TinyWireM lib

// Preuzmite ove knjižnice iz Adafruitovog spremišta Github i // instalirajte u svoj direktorij Arduino knjižnica #include #include

// Za otklanjanje pogrešaka, uklanjanje komentara iz serijskog koda, upotrijebite FTDI prijatelja s RX pinom spojenim na pin 3 // Trebat će vam terminalni program (poput besplatnog 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 // Minutarski prikaz putem PWM -a na Trinket GPIO #4 (putem poziva Timer 1) // SendOnlySoftwareSerial Serial (3); // Serijski prijenos na Trinket Pin 3 RTC_DS1307 rtc; // Postavljanje sata u stvarnom vremenu

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 (); // Početak 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 redak 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 (); // Dobijte RTC info hourvalue = now.hour (); // Dobivamo sat if (hourvalue> 12) hourvalue -= 12; // Ovaj sat je 12 sati minutevalue = now.minute (); // Dobijte minute

minutni napon = karta (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 - odgodit ć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 Timer 1 TCCR1 = _BV (CS10); // bez predskaler GTCCR = _BV (COM1B1) | _BV (PWM1B); // brisanje OC1B pri usporedbi OCR1B = 127; // radni ciklus inicijalizacija na 50% OCR1C = 255; // učestalost}

// Funkcija za dopuštanje 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čeni: