(click for English)

Ceas cu tuburi Nixie


A inceput cu un modul cu tuburi Nixie cumparat de la un festival de radioamatori (Friedrichshafen), in 2008. Modulul includea tuburi Nixie si drivere 74141. Fara sursa de inalta tensiune sau documentatie. Modulul includea 10 tuburi, 2 dintre care contineau litere si simboluri (M,m,G,u;Hz,V,A,Ohms), iar 8, cifre.

La momentul respectiv mi s-a parut doar un afisaj deosebit si m-am gandit ca ar fi o provocare interesanta sa incerc sa il folosesc la ceva. Un ceas era alegerea evidenta, de vreme ce nu mi se parea prea greu de implementat. La momentul respectiv nu aveam aproape deloc experienta in electronica in afara notiunilor de baza (de pilda stiam ce face un tranzistor dar nu cum se conecteaza, polarizeaza, etc). Intrucat sunt "de profesie" programator, varianta cea mai simpla (pentru mine) era folosirea unui microcontroller dar nu eram familiarizat nici cu asa ceva. Din fericire, una din cartile care mi-a atras atentia la standul ARRL (tot la Friedrichshafen) a fost "PIC Basics" (de Cliff Powlesland, G8CQZ) si am cumparat-o gandindu-ma ca as putea gasi niste indicii utile privitoare la programarea microcontrollerelor (uC). A fost o alegere buna, intrucat avea si ceva instructiuni simple pentru realizarea montajelor electronice cu uC.

Sunt de parere ca incercarea de a crea ceva "de la zero" este un mod de invatare mai eficient decat copierea a ceva ce deja exista, asa incat am decis sa incerc sa imi "proiectez" propriul circuit.
"Aventura" mi-a fost totusi usurata de faptul ca afisorul continea deja circuitele "driver" conectate la tuburi; dupa ceva cautari pe internet am gasit foaia de catalog pentru 74141 (multumiri lui Dieter - cred ca site-ul sau era unul dintre primele care ofereau asemenea informatii in 2008), si urmand traseele de pe cablaj am putut sa imi dau seama care este configuratia pinilor modulului. Am gasit si foaia de catalog pentru tuburile de pe modul si de acolo am aflat ce tensiune necesita. Am folosit un transformator 220-110v si tensiunea rezultata dupa redresare si filtrare (cca 160v cc) a fost suficienta pentru a aprinde tuburile.


Primul test (la momentul respectiv nu stiam daca modulul era sau nu functional) a fost pur si simplu sa alimentez cu "inalta tensiune" (in acest context 160v este o tensiune inalta, raportat la 5v TTL) si sa vad ce se intampla - toate cifrele s-au aprins. Am inteles ca probabil intrarile de la 74141 trebuiesc trase la masa, asa ca am conectat toate intrarile mai putin una la masa si intr-adevar doar o cifra s-a aprins. Am facut testul cu toate intrarile driverelor in paralel, deci de fapt s-a aprins acceasi cifra in fiecare tub.
Odata lamurit, am inceput sa experimentez cu uC-ul. Am cumparat kit-ul recomandat in carte (Velleman K8048) si deja al doilea exemplu de pe cd-ul kitului a fost suficient pentru a intelege ce am de facut la pasul urmator.

intrucat modulul avea 8 tuburi (cu 8 drivere), le-am conectat in 2 grupuri de cate 4 si le-am comandat de la portul de 8 biti al PIC-ului si au functionat asa cum ma asteptam.

Odata cu kit-ul, am cumparat si cateva circuite TTL pentru experimente, printre care si niste registri 74LS373. Nu am avut mult de experimentat, de fapt odata ce am ajuns aici continuarea a fost banala.
Am folosit 3 bucati 74LS373 ca sa mentina iesirile. Toti pinii PORTB ai PIC-ului au fost conectati la intrarile celor 3 '373 iar 3 pini de la PORTA de la PIC i-am folosit pentru a selecta fiecare '373 in parte. Foaia de catalog a '373-ului (impreuna cu ceva idei din cartea PIC Basics) au fost suficiente ca sa inteleg ce trebuie facut pentru a afisa pe fiecare tub o cifra distincta. De acolo a fost doar o problema de programare. Am adaugat 2 butoane (alti doi pini PORTA) pentru a seta ora si minutul si totul era functional. Ca baza de timp am folosit chiar cristalul de 4MHz care da tactul PIC-ului, si am setat un timer care sa dureze 100ms, ceea ce s-a dovedit surprinzator de precis (intre timp am vazut ca multi prefera sa foloseasca cristale de 32768Hz, probabil ca e mai usor de impartit). Banuiesc ca precizia se datoreaza faptului ca la aceasta frecventa este mai usor de minimizat eroarea cristalului - contorul din PIC numarand la 1MHz, am putut calibra cu precizie durata a.i. abaterea sa fie neglijabila. Inca ceva de remarcat aici - am folosit un timer din PIC si nu o bucla de intarziere cum am vazut ca se mai practica (de fapt exemplul din carte era cu bucla de intarziere). Pe de alta parte nu m-am complicat cu intreruperi, ci doar am asteptat intr-o bucla ca timer-ul sa dea "overflow".
Codul respectiv:
MAIN
; pierdem timpul vreo 10 milisecunde (pe timer1)
		BTFSS	PIR1,0  ; overflow este bitul 0 din PIR1
		GOTO	MAIN    ; daca nu e setat mai asteptam
; daca e setat, resetam timerul
		MOVLW	VALTH	; constantele VALTH si VALTL sunt preincarcate cu valoarea necesara pentru
		MOVWF	TMR1H	; 100ms la quartz de 4MHz
		MOVLW	VALTL
		MOVWF	TMR1L
; si resetam bitul de overflow
		BCF	PIR1,0
Primul prototip, care pana la urma a ajuns in utilizare cotidiana dupa cateva modificari minore.

In cele din urma am avut un ceas frumos cu Nixie-uri, dar cu ditamai transformatorul de la 220 la 110 pentru alimentarea tuburilor, plus o sursa separata pentru partea logica. Toata treaba asta a durat putin peste o saptamana de concediu (dar in care nu am prea facut altceva de dimineata pana seara - intre timp invatand si electronica). Pe de alta parte, asta mi-a (re)trezit interesul pentru electronica, interes care inca nu a disparut.

Design-ul este desigur primitiv si ii lipsesc tot felul de facilitati pe care alte ceasuri le au (cel mai deranjant este faptul ca nu are o baterie pentru a pastra ora, de vreme ce ocazional avem pene de curent). De 3 ani imi tot spun ca voi construi altul mai avansat, dar mereu apar alte activitati prioritare. Apropos, in afara de sursa (care singura mi-a luat cateva luni cu totul), cutia s-a dovedit o alta problema dificila. Pana la urma am ajuns la 2 bucati de placaj negru in care am dat gauri pentru tuburi - la fel de primitiva ca si restul. Cele 2 butoane patrate care avanseaza orele si minutele (ce naiba am avut in cap cand le-am luat patrate? Cred ca nu aveau altfel la Conex atunci) atarna de un cablu cu 3 fire. Dar este primul obiect fizic pe care pot spune ca l-am creat (programele par mai efemere). Si, in cei aproape 5 ani de cand l-am construit si pana acum cand public povestea a functionat fara nici o problema. Este pornit continuu (mai putin cand plecam in concediu) si inca functioneaza, desi tuburile (care erau destul de uzate de la bun inceput) isi cam arata varsta (unele cifre nu mai sunt complete, dar inca lizibile).

Sursa

Am vrut sa alimentez tot ceasul de la un alimentator micut, nu sa intru cu 220 in cutie. Desigur, o varianta (de fapt una din primele la care m-am gandit) ar fi fost sa folosesc doar un transformator care sa imi dea curent alternativ si inca un transformator in cutie pentru a ajunge la o tensiune potrivita pentru Nixie-uri. Totusi nu mi s-a parut o solutie satisfacatoare, vroiam sa imi fac si o sursa serioasa si stabilizata pentru tuburi. Serioasa e mult spus - circuitele pentru surse in comutatie sunt foarte stricte si mai au nevoie si de o gramada de componente pasive pe langa. Asa incat, la fel ca tot restul si sursa este tot primitiva (ba chiar naiva, intr-un fel) dar functionala. Consta dintr-un oscilator care oscileaza atata vreme cat tensiunea de alimentare a tuburilor este sub o anumita valoare (pragul este stabilit cu ajutorul unui semireglabil in serie cu o rezistenta fixa). Partea naiva este oscilatorul, care este un alt microcontroller PIC (cel mai ieftin si mai simplu pe care l-am gasit (gen 10F200, dar nu mai stiu exact modelul). Nu cu vreun 555 sau multivibrator, si desigur fara controlul factorului de umplere. Motivul a fost ca un uC atat de simplu costa cam cat un 555 (intre timp am gasit si 555 mai ieftine dar atunci nu gasisem) si faptul ca nu trebuia sa ma chinui sa gasesc componente pasive de anumite valori pentru a obtine o frecventa sau un factor de umplere anume. La PIC mi-am stabilit din program cum sa oscileze si gata. De fapt initial am vrut sa folosesc un pin de la PIC-ul principal (16F627) ca generator de impulsuri, dar orice greseala in programul de ceas putea bloca PIC-ul si arde MOSFET-ul sau mai rau, sa lase tensiunea sa creasca necontrolat, ceea ce probabil ar fi avut consecinte tragice. Pe cand folosirea unui alt uC (care de fapt e chiar pe o alta placa - modul de alimentare) tine lucrurile separate si aparent in siguranta. Restul sursei este relativ simplu - un MOSFET dintr-o sursa ATX defecta, precum si transformatorul de stand-by din aceeasi sursa. Nu aveam un inductor potrivit, iar transformatorul este suficient de mic incat sa incapa in cutia mea, chiar daca este supradimensionat fata de scopul in care il folosesc.

(Voltmetrul din imagine - folosit aici pentru a verifica tensiunea anodica a tuburilor Nixie - este el insusi dotat cu afisaj cu tuburi Nixie. L-am primit cadou - multumesc Peter - initial pentru a folosi tuburile, dar cand am vazut ca este functional am preferat sa il pastrez si chiar folosesc ca atare)
Galeria veche, cu mai multe imagini
Publicat in 2013 de Mihai Gaitos - contacthawk.ro