Witajcie!
Chciałbym przedstawić swoją ostatnią konstrukcję, jaką jest zegar zrealizowany na lampach nixie. Z góry przepraszam za słabą jakość większości zdjęć, jednak ze względu na porę dnia w której z reguły pracowałem (długie zimowe wieczory) i brak dobrego sprzętu fotograficznego jest to szczyt moich możliwości.
Jakiś czas temu (a dokładniej na początku października) ukończyłem swój pierwszy zegar na lampach nixie, który stanął w moim pokoju. Relację z jego konstrukcji opisałem w dwuczęściowym artykule, który możecie zobaczyć pod linkiem: https://majsterkowo.pl/zegar-nixie-synchronizowany-z-ntp-cz-1/.
Zegar ten to chyba największa i najbardziej efektowna osoba mojego pokoju. Większość osób po wejściu robi WOW i pytają skąd takie coś mam i jak to zrobiłem. Ale największe wrażenie zegar zrobił na moich rodzicach, a mama w żartach rzuciła, że Chce taki od Mikołaja.
Cóż, takim osobom się nie odmawia.
Szybko wpadł mi pomysł wykonania kolejnego zegara, który będzie jakoby ulepszoną wersją mojej poprzedniej konstrukcji. Chciałem, by nowa konstrukcja była jak najlepsza, jednocześnie korzystając z doświadczeń przy projektowaniu i montażu pierwowzoru. Ponieważ nie miałem już żadnych lamp nixie, musiałem się w nie zaopatrzeć. Po przejrzeniu portali aukcyjnych zdecydowałem, że najlepszym wyborem będzie zakup (podobno) nowych lamp LC-516, których cena oscyluje w okolicach kilkunastu złotych za sztukę, co nie jest ceną zabójczą. Lampy te mają przede wszystkim inną budowę i wyświetlają cyfrę „na górze” a nie z przodu, jak poprzednie Z537. W związku z tym musiał powstać jakiś inny koncept obudowy – najlepiej nieco mniejszej.
Na wstępie przypominam – W trakcie pracy zegara na płytkach występują napięcia groźne dla życia i zdrowia człowieka! Przy uruchamianiu układu należy zachować szczególną ostrożność. I miałem tego okazję doświadczyć osobiście – nie polecam…
Założenia
Szybko wykonałem prosty projekt 3D w SolidWorks’ie, jak mógłby wyglądać taki zegar.
Jak już wcześniej wspominałem, przede wszystkim zegar musiał zyskać nową, bardziej kompaktową obudowę, dostosowaną do innego typu lamp. Zmniejszenie konstrukcji oraz prądożerność pierwszej wersji zadecydowały o zastąpieniu transformatora zasilaczem wtyczkowym i wykorzystanie przetwornicy impulsowej podwyższającej napięcie. Swoją drogą taką modyfikację wykonałem również w swojej sztuce :).
Kolejna rzecz to zmiana architektury – zamiast wspólnej szyny i trzech przerzutników użyłem po prostu mikrokontrolera o większej liczbie pinów. Wykorzystałem więc inny mikrokontroler, ale również z rodziny AVR – tym razem jest to ATMega16.
Zamiast pobierania danych z NTP zastosowałem klasyczny zegar czasu rzeczywistego podtrzymywany baterią. Za niepotrzebne uznałem wyświetlanie daty czy danych z internetu, więc program jest o wiele prostszy i o wiele prostsze jest ustawianie zegara za pomocą przycisków H i M. Dzięki RTC raz ustawionego zegara nie trzeba ustawiać po każdym zaniku prądu, a przynajmniej do zmiany czasu.
Aby układ zmieścił się małej obudowie, zamiast płytki uniwersalnej postarałem się o zaprojektowaną na komputerze, wytrawioną płytkę drukowaną. A w zasadzie trzy.
Schemat
Schemat został wykonany w programie EAGLE.
Jak wspomniałem, projekt zakładał podział na trzy płytki drukowane: Na jednej z nich (najmniejszej) przetwornica napięcia, na drugiej lampy i rezystory anodowe, na trzeciej (głównej) cała reszta – stabilizator napięcia, mikrokontroler, dekodery, przyciski itd.
Całość jest zasilana z zasilacza wtyczkowego napięciem 12V. Napięcie to jest obniżane do 5V stabilizatorem zbudowanym na 7805 i to napięcie zasila całą część cyfrową. Jednocześnie przetwornica generuje napięcie 170V zasilające lampy.
Mikrokontroler to ATMega16 taktowana kwarcem 16MHz. Posiada on sporo pinów wejścia/wyjścia (aż 32), co pozwoliło zrezygnować z przerzutników. Dekodery BCD sterujące lampami to te same 74141 – po jednej na lampę.
Aby zegar zapamiętywał godzinę po zaniku zasilania, zastosowany został zewnętrzny układ RTC DS1307, podtrzymywany dwiema bateriami AAA. Zegar ten posiada własny kwarc o częstotliwości 32,768 kHz. Układ ten komunikuje się z zegarem poprzez szynę I2C.
Zegar posiada dwa przyciski do ustawiania czasu (choć można wlutować trzeci). Jest też miejsce na głośniczek z tranzystorem włączającym, ale zamiast tego wlutowałem diodę. Otóż pierwotnie planowałem dodać funkcję budzika, jednak zegar będzie stać w pokoju dziennym, gdzie nikt nie śpi i budzik raczej mało byłby tam potrzebny. W związku z tym pozwoliłem sobie na kilka modyfikacji. Jednocześnie udało się uprościć obsługę, na czym mi mocno zależało. Ponieważ zostały mi dwa wolne piny, wyprowadziłem złącze rozszerzające, które w przyszłości pozwoli podłączyć np. czujnik temperatury.
Lampy tym razem to LC-516. Od poprzednio użytych różnią się przede wszystkim kształtem i sposobem wyświetlania cyfr i brakiem „przecinka”. Napięcie do nich generowane jest za pomocą przetwornicy podwyższającej napięcie. Została ona zaprojektowana na podstawie (choć bardziej pasuje tu stwierdzenie „zerżnięta z”) projektu http://mirley.firlej.org/przetwornica_9v_150v. Jest to prosta przetwornica zrealizowana na popularnym układzie 555, z kilkoma zmienionymi wartościami rezystorów i inną cewką w stosunku do oryginału. Napięcie wyjściowym (a zatem jasność świecenia lamp) można regulować potencjometrem na płytce.
Płytki
Płytki zostały wykonane metodą termotransferu i wytrawione w roztworze B327. I powiem tylko, że wyszły świetnie.
Wiercenie otworów było o tyle trudne, że wymagało powiercenia dosyć sporych otworów pod piny w lampach i pod ten środkowy „bolec” w każdej z lamp. Wprawdzie dałoby radę załatwić to za pomocą podstawek, ale po pierwsze zwiększyłoby to gabaryty a po drugie zwiększyłoby to koszty. Po wierceniu przyszedł czas na lutowanie. Na początek oczywiście zwory, których na płytce głównej było sporo. Później zostało przylutowane „minimum potrzebne do sprawdzenia mikrokontrolera”, czyli podstawka, kwarc, zasilanie i gniazdo programatora.
Tak, jak lutowanie płytki głównej okazało się czystą przyjemnością, tak lutowanie lamp nie było takie przyjemne. Bolce ciężko się rozgrzewały, ale po ostrym dogrzaniu łapały cynę i udało się zlutować całość.
Jedyny problem stanowiła ich długość oraz fakt, że nie były takie łatwe do ucięcia. Do akcji wszedł dremel. Z początku chciałem przyciąć tylko te piny, które przeszkadzałyby w montażu płytki głównej, ale w końcu przyciąłem wszystkie. Jedynie po ucięciu trzeba było zalutować pozostałe otwory.
Programowanie
Z początku planowałem jedynie modyfikację programu od starego zegara. Przemyślałem sprawę i uznałem, że o wiele lepiej napisać cały program od podstaw. Ten został (podobnie jak dla pierwowzoru) napisany w „czystym” C.
Choć samo w sobie programowanie nie sprawiało większych problemów, tak wszelkiego rodzaju błędy okazały się być niezwykle upierdliwe. Już na samym początku zmuszenie do działania diody było problemem, nie pomogła podmiana mikrokontrolera, zmiana programu, nic. Rozwiązanie (jak zwykle w tego typu przypadkach) było śmiesznie proste – wyłączyć JTAG poprzez drobną zmianę w fusebitach. Podobnie całe popołudnie spędziłem na uruchomieniu transmisji I2C. Tu winna była słaba znajomość biblioteki. Finalnie kod został dokończony i po usunięciu zbędnych funkcji zajmuje nieco ponad 2 kB co jest drobnostką w porównaniu do 16, jakie daje nam do dyspozycji ATMega16.
Mikrokontroler przeprowadza własną operację liczenia czasu, niezależną od RTC. Za odliczanie sekund odpowiada przerwanie INT1 generowane co równo jedną sekundę. Z RTC układ komunikuje się tylko po uruchomieniu (by wczytać zapamiętany czas), oraz po zmianie czasu. Zegar ustawia się za pomocą dwóch przycisków – jeden zwiększa godziny, drugi minuty. Aktualizacja czasu odbywa się zawsze 5 sekund po ostatnim wciśnięciu przycisku. W ten sposób można było ograniczyć wymianę informacji po I2C do minimum oraz uniezależnić się od stałej kontroli przez RTC tj. mikrokontroler równie dobrze będzie działać bez niego, jedynie nie będzie zapamiętywał czasu.
Obudowa i montaż
Zależało mi, by obudowa była bardziej kompaktowa. I tym razem wykonana została ona ze sklejki 4mm montowanej na klej wikol za pomocą listewek. Najtrudniejsze było wycięcie otworów pod lampy. Ponieważ jeszcze nie miałem gotowych płytek, wykonałem sobie szablon.
Jako że sklejka zaczęła się wyginać (za długo leżała w wilgoci) musiałem jakoś ją usztywnić. Udało się za pomocą listewki z włókna węglowego, które zostało mi po lineFollowerze.
Tył został wykonany z blachy perforowanej. Gdy płytki były już gotowe, wkleiłem gwinty za pomocą poxipolu. Dodatkowego spasowania wymagały goldpiny łączące płytkę główną i płytkę lamp tak, by po złożeniu otwory pasowały do gwintów.
Następnie za pomocą szpachli do drewna zamaskowałem wszelkie ubytki. Zamaskowałem również jeden z otworów na przyciski. Kolejny krok to malowanie drewna bejcą.
Z racji małych rozmiarów całości mimo tego, że wszystko było dobrze zwymiarowane w środku jest dosyć ciasno. Upchanie tego wszystkiego wymagało głowy i odpowiedniej kolejności montażu. Z początku blaszana siateczka miała być wklejona na stałe, ale wtedy nie dałoby się wyjąć elektroniki. Została więc zamocowana za pomocą małych wkrętów. Po montażu elektroniki trzeba było jedynie wszystko „dopicować”, m.in. wkleić koszyk na baterie podtrzymujące zegar czy wywiercić otwór na gniazdo zasilające.
I jeszcze jeden smaczek: wewnątrz obudowy zostawiłem kopertę. W niej znajduje się kartka ze schematem oraz karta pamięci micro SD z kodem źródłowym i programem. Dawniej dołączanie takiego miłego upominku dla serwisanta było dość powszechne, a dziś… no cóż.
Ostatnim etapem było naklejenie nalepek informacyjnych i przyklejenie filcowych nóżek.
Efekt końcowy
Ostateczny wygląd zegara możecie zobaczyć poniżej:
Osobiście jestem bardzo zadowolony z efektu końcowego. Ale co najważniejsze – rodzice są zachwyceni. W przyszłości planuję jedynie drobną modyfikację w postaci dodania „przecinków” oraz ewentualne wyświetlanie temperatury w pokoju.
W Wasze ręce oddaje również paczkę z kodem źródłowym oraz projektami płytek. Tu dziękuję kołu naukowemu ONYKS działającemu na wydziale EiTI PW za pomoc i użyczenie sprzętu do wykonania płytek drukowanych.
Trzymajcie się ciepło i Wesołych świąt!
Hubert.
Elegancko ci to wyszło jednie ja bym spróbował zakryć sklejkę fornirem zegar by wtedy lepiej wyglądał, bardziej profesjonalnie.
Super! Świetne wykonanie. Też chciał bym taki prezent dostać ;) piąteczka
Czadowe. Chwilę studiowałem na polibudzie więc wiem co robisz choć połowy terminów nie rozumiem :) Ale pewnie wystarczy poczytac, dokonać eksperymentow i złożyć samemu takie cudo. Masz może coś na jutjubie by zobaczyć jak działa i prezentuje się to “na żywo?”
Akurat tak się składa że studiuję nieco inny kierunek (automatykę), choć przy okazji studiów nauczyłem się języka C (tzw. ANSI C), co teraz skrzętnie wykorzystuje, może nie do końca w sposób taki, jaki zakładał sylabus :P. Jednakże studiowanie na polibudzie albo nie-studiowanie nie ma znaczenia. Bardziej ma znaczenie chęć samodzielnego rozwijania wiedzy i chęć “stworzenia” czegoś z niczego, a tu, mam wrażenie, polska edukacja kuleje. Jak dorwę statyw i znajdę chwilę na nagranie filmu z działania.
Projekt super, zawsze podobały mi się te lampy. Tylko wykonanie obudowy trochę kuleje, przydało by się ją dopieścić ;)
Świetny projekt! Oby więcej takich ;)
Super wyszło . Jaki jest kosz takiego zegara ??