/Projekti/Warm tube clock v1 - Nixie sat

Ovaj sat je dizajniran tako da koristi široko dosupne komponente - osim Nixie cijevi naravno, da je modularan - što znači da na gornjoj pločici možete staviti bilo koju Nixie cijev i tako promjeniti kompletan izgled sata i da ga može sklopiti svaki početnik.
Osim Nixie cijevi, na ovom satu se mogu multipleksirati i drugi displeji, niskonaponski i visokonaponski. Sat se napaja iz izvora od 7,5V do 14V i troši oko 200mA. Pločice su 10cm x 3cm, što znači da su poprilično male. Ovaj sat generiše oko 200V pa je bitno napomenuti da je opasno dirati pločicu i dijelove dok je pod naponom. Nekoliko puta me je "udarila" struja i sat mi je ispao iz ruku (na sreću nije bilo štete ni za mene a ni za sat).

in16b

Gornja pločica ima 4 RGB LED-ice ispod Nixie cijevi koje se mogu isključiti po želji. Sat prikazuje vrijeme, cijeli datum i temperaturu. Pored toga, sat ima i specijalni "mod" koji se zove "candle mode" u kojem se simulira titranje svijeća. Ovo izgleda lijepo u mračnoj prostoriji i sat se čak može staviti na sto umjesto svijeća.

UPDATE 2/6/2011: Nova verzija sata!

Prijavi se na ovu adresu da saznaš čim sat bude dostupan u KIT verziji za samogradnju. Samo pošalji prazan e-mail sa subjektom "warmtube kit" na adresu: kit at elektronika.ba.

U međuvremenu svi projektni fajlovi su dostupni za download klikom na crveno "download" dugme pri dnu stranice.

main2

main4

Opcije sata:

1. prikaz vremena
2. prikaz datuma
3. prikaz temperature
4. podesiva vremena za prikaz gore nabrojanog (naprimjer, moguće je podesiti sat tako da se vrijeme prikazuje 20 sekundi i nakon toga da se prikaže datum pa temperatura. Takođe je moguće podesiti sat da prikazuje naprimjer samo temperaturu)
5. podesiv nivo osvjetljenja Nixie cijevi
6. podesiva boja RGB LED-ica koje blinkaju sa frekvencijom od 1/2 Hz (ili isključeno)
7. opcija miješanja boja na osnovu prikazane temperature gdje se naprimjer za najnižu temperaturu prikaže plava boja, za najvišu crvena a za sve temperature između ova dva ekstrema boja se miješa (ili isključeno)
8. podesiva boja RGB LED-ica prilikom prikaza datuma (ili isključeno)
9. promjenljiv nivo osvjetljenja Nixie cijevi prilikom prikaza datuma za bolje razumjevanje onoga što je trenutno prikazano (DD.MM pa YYYY)
10. čuvar Nixie cijevi - ova opcija omogućuje definisanje vremena kada će se Nixie cijevi isključiti i drugog vremena za njihovo ponovno uključenje (naprimjer moguće je podesiti da se sat isključi u 23:30 i ponovo uključi ujutro u 07:30) što produžuje vijek trajanja sata
11. budilnik sa proizvoljnom melodijom i "snooze" funkcijom
12. podesivo trajanje "snooze"-a sa automatskim aktiviranjem ako sat zvoni duže vrijeme
13. Nixie "cross-fading" sa podesivom brzinom
14. "candle mode" za malo romantike :-)
15. "anti-poisoning" katoda podešen na svakih 15 minuta

in8e

Neke naznake o dizajnu

Nakon što sam vidio par RGB LED projekata sa TLC5940 IC-om na web-u odlučio sam da ga isprobam za multipleksiranje Nixie cijevi i upravljanje RGB LED-ica istovremeno. Izabrao sam SMD verziju: TLC59401 i nakon nekog vremena eksperimentisanja uspio sam ga pokrenuti. Prekidna rutina unutar AVR-a šalje nove podatke u TLC59401 u definisanom intervalu (refresh rate). Ovaj interval (rate) je drugačiji za druge tipove Nixie cijevi. Tako za IN-16 cijevi je potreban manji interval nego što je potreban za IN-8. Prednost korištenja TLC IC-a za multipleksiranje Nixie cijevi je taj što je vrlo lako podesiti intenzitet osvijetljenosti pojedine cijevi i to na nivou hardvera.
Generator visokog napona je identičan onome koji je korišten u Ice Tube clock projektu, ali sa povratnom spregom. AVR ne zna koliki "duty cycle" (faktor ispune PWM signala) treba da podesi na PWM izlaz za željeni napon, tako da on mjeri generisani izlazni napon i povećava faktor ispune dok se željeni napon ne postigne. Zbog ovoga, vrijednost zavojnice na shemi nije fiksno naznačena i može se koristiti bilo koja vrijednost u naznačenom opsegu.

Izvor napajanja (5V)

psu

main3

U kolu za napajanje se nalazi automatski osigurač koji će prekinuti napajanje uređaju u slučaju greške i ponovo uspostaviti napajanje kada se on ohladi. Kolo za napajanje ima tri izlaza: +9V, +5V/1 i +5V. Izlaz +9V je korišten da napaja HV generator i on je ustvari istog iznosa kao i izvor napajanja za sat, izlaz +5V/1 se koristi da napaja svu elektroniku na ploči osim AVR mikrokontrolera. AVR se napaja iz izlaza +5V koji je osiguran sa "backup" baterijom što znači da će AVR nastaviti sa radom čak i kada se sat isključi sa napajanja. Ova dva odvojena 5V izvora su realizovana krištenjem tri 1N5817 brze diode.

HV - visokonaponski generator

booster

in8c

Ovo kolo je jednostavni "boost converter" (step-up konverter) o kojem možemo pročitati ovdje http://en.wikipedia.org/wiki/Boost_converter. Zavojnica korištena u ovom kolu je 1200uH (1000-1200uH) iz Coilcraft-a. Frekvencija PWM signala korištena za preklapanje MOSFET tranzistora je 31,250 kHz sa promjenljivim faktorom ispune za različite iznose generisanog napona. Visoki napon je čuvan u kondenzatoru C13 i mjeren od strane AVR-a kroz djelitelj napona formiran sa otpornicima R3 i R4. Nixie cijevi dobijaju svoj željeni visoki napon (tačnije struju) kroz otpornik za ograničavanje struje R5 i one su zaštićene sa Zener diodom ZD1 od 200V. Visoki napon je dalje filtriran sa kondenzatorom C14 koji u suštini i nije toliko potreban (nisam ga nikad zalemio na ploču). Montiranje Zener diode je opciono ali je preporučljivo. Bilo koji napon generisan iznad napona Zener diode će se potrošiti na otporniku R5 što će ga uveliko zagrijavati. Ako prilikom uključenja sata generator nije u mogućnosti da proizvede željeni napon, RGB LED-ice će blinkati crvenom bojom i sat će prestati da radi sve do ponovnog uključenja. Ako sat proizvede napon veći od traženog, on će nam to dojaviti blinkanjem RGB LED-ica narandžasto a napon će se automatski spustiti ispod željene granice i sat će nastaviti da radi. Da bi izbjegli ovaj problem potrebno je koristiti drugi izvor napajanja ili čak drugu vrijednost zavojnice.

Katode na Nixie cijevima

cathodedriver

Nixie cijevi koje prikazuju cifre imaju 10 ili 11 (a neke čak i 12) katoda za sve cifre od 0-9 i opcionu tačku (ili čak dvije). Da bi sačuvali pin-ove na AVR-u koristi se BCD dekoder. Ovo nije obični BCD dekoder jer on može izdržati pomenute visoke napone. Radi se o IC2 K155ID1 koji je ekvivalent kola 74141 koji ima 10 izlaza za 4 BCD ulaza. Između dvije srednje Nixie cijevi se nalaze dvije "tačke" koje su ustvari male neonske sijalice (male Nixie) koje takođe rade na visokom naponu. Njih pokrećemo sa dva visokonaponska NPN tranzistora T1 i T2 MPSA42.

Zujalica i temperaturni senzor

beeptemp

1002871

Zujalica je ustvari mali zvučnik baš kao na PC matičnim pločama. Piezo zvučnik se takođe može upotrijebiti ali zvuk neće biti tako "mekan" kao sa zvučnikom. Njega pokrećemo sa običnim signalnim NPN tranzistorom BC547 a intenzitet zvuka se podešava otpornikom R10. Zvuk se proizvodi na AVR pin-u PB1 (OC1A) softverski - ne hardverskim PWM-om. Melodija budilnika se podešaa u wt.h "header" fajlu.
Temperaturni senzor je Maxim-IC DS18S20 i on je direktno spojen na odgovarajući pin AVR-a. Biblioteka za 1-wire korištena u ovom projektu nije imuna na prekidne rutine tako da se ponekad može desiti pogrešno očitanje temperature. Ovo se može riješiti pauziranjem prekidnih rutina u određenim trenucima ali to bi moglo dovesti do "titranja" displeja.
I zujalica i temperaturni senzor se napajaju samo iz IC2 7805 stabilizatora tako da ne troše struju iz "backup" baterije prilikom nestanka napajanja.

ISP port i tasteri/prekidač

ispbuttons

in8d

Sat se upravlja sa dva tastera i jednim prekidačem. Prekidač se koristi za uključivanje/isključivanje budilnika a tasteri za ulazak u opcije i sva podešenja.
Sat se može (re)programirati bez vađenja AVR mikrokontrolera preko standardnog ISP porta. Prije programiranja je potrebno prekidač SWALARM prebaciti u položaj "isključeno". Takođe nakon programiranja je poželjno isključiti kablo za programiranje, jer će se u protivnom na displeju (Nixie cijevima) primjetiti takozvani "ghosting" efekat.

ATMEL AVR mikrokontroler

mcu

main1

Mozak sata je mikrokontroler ATmega328P AVR (u dokumentaciji piše da može raditi i pri naponu od samo 1.8V, što je dobro jer on mora nastaviti da radi na 3V bateriji u slučaju nestanka napajanja). Bitna napomena ovdje je eksterni kristal od 32,768 kHz koji je korišten da inkrementira unutrašnji brojač Timer1. Ovaj brojač je podešen sa preskalerom od 128 što znači da će se generisati prekid tačno jednom u sekundi i to se koristi za interni RTC. Iz nekog razloga AVR ne generiše prekid na tačno jednoj sekundi nego nešto malo brže od toga (nije idealno). Stoga, kondenzatore C2 i C3 treba podesiti tako da se dobije što manja greška pri generisanju prekida da bi dobili što tačnije mjerenje vremena. U satu se takođe može koristiti i ATmega168 ako se izvorni kod malo pročisti i svede na minimum (ne korištenjem A/D konverzije odnosno mjerenja povratne informaciju generisanog visokog napona, i komentiranje dijela koda koji se koristi za miješanje boje na osnovu temperature). Druga stvar koju treba primjetiti jeste da se AVR izlaz CLKO koristi za "klokanje" TLC chipa na gornjoj pločici.

Anode na Nixie cijevima & RGB LED-ice

tlc59401

in8g

Anode na Nixie cijevima se napajaju preko optokaplera (optičkih izolatora) OPT1..OPT4 TLP627. Ovi optokapleri mogu izdržati "Vce" napone od preko 200V što je neophodno. U kolu se koriste u spoju zajedničkog kolektora odnosno emiterskog sljedila jer Nixie cijevi troše vrlo vrlo malo struje i ovaj spoj se čini kao idealan. Ovakva upotreba optokaplera se može vidjeti i na drugim Nixie satovima i pokazala se kao odlična. Kada sve Nixie cijevi prikazuju brojeve ovi optokapleri se "prozivaju" (uključuju/isključuju) pri velikim brzinama i tako uključuju samo po jednu Nixie cijev. To se zove multipleksiranje. Njih "proziva" Texas Instruments-ov odlični IC TLC59401 i na svojih preostalih 12 izlaza (ukupno 16) se nalaze 4 RGB LED-ice sa zajedničkom anodom. Prekidna rutina u AVR-u osvježava TLC59401 IC cijelo vrijeme i tako mu šalje nove podatke o intenzitetu pojedine LE diode i svih optokaplera. Za pokretanje TLC59401 IC-a bitno je objasniti njegovih 7 pinova; GSCLK pin - ovaj pin zahtjeva konstantni takt proizvoljne frekvencije; BLANK pin - na svkaih 4096 impulsa GSCLK signala, ovaj pin zahtjeva kratki impuls da bi se resetovao njegov interni brojač; XLAT pin - ovaj pin zahtjeva kratki impuls kad god se novi podaci ubace u TLC IC; MODE pin - ovaj pin govori TLC-u da podaci koji stižu su ili Podatak ili Komanda; SCLK, SIN pinovi su za slanje podataka preko SPI bus-a. Bitna napomena kod TLC59401 jeste da je potrebno zalemiti i njegov hladnjak (GND "pad" ispod kućišta) na masu (GND). U protivnom ovaj IC neće raditi kako treba ili neće raditi nikako!

Nixie cijevi

nixies

in8a

in16c

shields

Na gornjoj pločici (Nixie "shield") se nalaze četiri Nixie cijevi a napravljena su dva različita dizajna za dva tipa Nixie cijevi: IN-16 (manje ali ljepše cijevi) i IN-8 (duplo veće). Između srednje dvije cijevi se nalaze dvije "tačke" koje se kontrolišu neovisno jedna o drugoj. Stoga, kada se prikazuje temperatura samo se gornja "tačka" uključi, a kada se prikazuje datum uključi se samo donja. Ove "tačke" su ustvari minijaturne neonske sijalice odnosno indikatori koji su izvađeni iz prekidača za stubišnu rasvjetu ili iz ispitivača. Srećom svijete istom bojom kao i Nixie cijevi. Katode Nixie cijevi su spojene na izlaze IC kola K155ID1 (74141) a katode "tačaka" su spojene na dva NPN tranzistora MPSA42.



See more images on Flickr

Autor (poslao): Trax

Broj download-a: 40,432

Ocjena: (2.97, glasova 4811)

Glasaj:

Datum: 17-11-2010

English version of this page: Warm Tube Clock v1 - Nixie Clock

786_warmtubeclock.rar

Bookmark and Share Komentari (61)

komentar [51]

Great information! I have two questions: 1. You do not seem to use the GSCLK signal at all in your code to give a reference clock to the TLC59401 PWM control. Correct? 2. You put SMT LEDs under the IN-16 white spacers. Do you need to modify the spacer in any way to let the LED shine through? Thanks for all your efforts with this clock.
IP: 139.142.107.9

komentar [50]

uspješno sam isprogramirao čip i sve lijepo postavio na pločice (osim samih cijevi) i sve skupa ne radi. Greška je vjerojatno što sam sam izrađivao pločice fotopostupkom što vjerojatno nitko nije. Jednostavnije je i manje živaca košta dati nekoj firmi koja se bavi izradom takvih profi pločica.. @trax imaš li par pločica da mi prodaš? da probam sa njima. Jer elemenata imam za nekoliko satova a izrađivanje pločica nema šanse da ponovim.. Javi mi na email ako imaš.. Pozdrav!
IP: 195.29.242.36

komentar [49]

Koristim interni 8MHz oscilator za rad mikrokontrolera, a eksterni 32khz koristim za povecanje internog Timer-a koji mjeri (cuva) vrijeme. To je klasika...
IP: n/a

komentar [48]

Može jedno pojašnjenje? zašto koristiš interni oscilator na 8 MHz (prema screenshotovima u prilogu)? zar se nebi trebao koristiti ovaj kvartz za 32 kHz za klokiranje atmela kao vanjski oscilator? Podešenje fuse bitova je za taj slučaj drugačije...
IP: 93.136.231.157

komentar [47]

Pa prebaci se na AVR Studio i on ce ti napraviti validan Makefile kojeg onda mozes pokretati iz svog AVR Dudeta :)
IP: n/a

komentar [46]

Krivo sam napisao - pokušaj kompajliranja je bio u avd-dude-u, a program je pisan u programmer's notepad-u, zato što je to okruženje u kom inače pišem programe.. ali nema mi druge neko pokušat ovo šta kažeš - prebaciti se na studio!
IP: 195.29.242.36

komentar [45]

AVR Studio je razvojno okruzenje a WinAVR je kompajler. Nisi mogao koristiti jedno umjesto drugog... Ja sam ovo pravio u AVR Studio a kompajler mi je WinAVR bas kao sto je kod tebe, i sve radi bez problema. Znaci, instaliraj AVR Studio i instaliran WinAVR. Otvori projekat u AVR Studio i klikni COMPILE :-)
IP: n/a

komentar [44]

Ovaj tekst je preveden s engleskog: Koristio sam AVRStudio4 s AVRToolChain prevesti koda. I onda koristiti AVRDude s USBtinyISP za program AVR i postaviti osigurači. Koristeći Atmel toolchain rezultiralo manjim binarna datoteka. Čini se da su bolji od optimizacije pomoću WinAVR kao prevodilac.
IP: 198.95.226.224

komentar [43]

Sastavio sam hardver i sad pokušavam kompajlirat kod. Reci može li se ovaj tvoj source kompajlirati s WinAVR-om? jer ja ne uspjevam. Kad napravim makefile, zadam mu target file wt.c , dodam pod list of c-files onewire.c (i wt.c naravno), kad pokrenem gcc on javlja da "no rule to make target 'main.elf'" U čemo sam pogriješio? zašto ne može generirati izlazne datoteke? dal je to zbog korištenja Win AVR-a umijesto avr studija? --tako sam blizu a tako daleko :):) Pozdrav!
IP: 195.29.242.36

komentar [42]

@trax Neke CD72P (japanci), a to sa eBay slabo funkcioniše u Srbiji.
IP: 79.101.208.236


Stranica komentara: <1234567>


dodaj komentar

ime

e-mail (neće biti objavljen)

web

Koliko je = takođe dodaj slovo "a" na kraj rezultata! Npr.: 7a

Ulogiraj se!

To možeš uraditi na forumu: Login stranica. Kada se ulogiraš, vrati se na ovu stranicu i uradi refresh.

prijatelji sajta

sponzorirani linkovi

reklame