Słowem wstępu

W 2005 roku, na początku listopada, za symboliczną opłatą równą pięciu polskich złotych, wszedłem w posiadanie radzieckiego kalkulator ELWRO. Sam kalkulator, pomimo jego wyraźnie wyczuwalnego postkomunistycznego klimatu, posiadał w sobie mały skarb. Tym skarbem była przepiekna lampa VFD typ IW-18. Zachęcony lekturą uwczesnych artykułów w czasopismach elektronicznych na temat ich wykorzystania do własnych zastosowań projektowych, postanowiłem i ja spróbować stworzyć projekt, którego centralną częścią będzie właśnie lampa VFD. Tak też i zrodził się pomysł na zaprojektowanie oraz wykonanie VFD.Clock'a - zegarka na lampie VFD.

Jak na tamte czasy oraz umiejętności w zakresie projektowania, wykonania oraz programowania mikrokontrolerów, projekt oscylował pomiędzy światem marzeń a rzeczywistością. Brak odpowiednich podzespołów oraz sprzętu, bezlitośnie pogrzebały moje nadzieje. Aż do momentu, kiedy to za pomocą magicznego świata internetu, pojawiły się na mojej drodze osoby, skłonne do pomocy, porady i poświęcenia. Dzięki nim znalazły się podzespoły, z których wykonałem swój pierwszy programator ISP, a także, znalazł się pierwszy mikrokontroler AVR, dzięki któremu wykonanie założonego projektu stało się realne. W taki sposób zacząłem pracować nad swoim pierwszym w życiu projektem opartym na MCU.

Projekt oficjalnie zakończył się udziałem w ogólnokrajowym konkursie na stronie internetowej forum miesięcznika Elektronika Praktyczna, a następnie publikacją projektu w samym czasopiśmie w numerze 11/2006.

O lampie IW-18

Wspomniany na wstepie - kalkulator ELWRO, skąd został pobrany wyświetlacz, pięknie się prezentuje na fotografiach 1 i 2 a sama lampa jeszcze piękniej na fotografii 3.

Fotografia 1 i 2 - Kalkulator ELWRO

Fotografia 3 - lampa IW-18

Lampa składa się z dziewięciu pól odczytowych. Pod siatką pierwszą (S1) znajdują się tylko dwa segmenty, w kształcie kropki oraz minusa. W podstawowej konstrukcji zegara siatka ta nie będzie wykorzystywana. Pod kolejnymi siatkami (S2...S9) znajduje się osiem segmentów, ułożone w kształcie cyfry 8, w tym kropka. To właśnie te pola odczytowe posłużą nam do właściwego wyświetlania czasu.

Rozmieszczenie anod pod tymi siatkami ilustruje rysunek 1.

Rysunek 1 - Układ segmentów

Przy rozpracowywaniu wyprowadzeń lampy, bardzo kłopotliwą sprawą było określenie, którą z jej wyprowadzeń uznać jako pierwszą. Ja jako pierwsze wyprowadzenie uznałem jedną z końcówek żarnika, do której przylutowany jest długi, gruby drut idący za wyświetlaczem. Kolejne wyprowadzenia oznaczyłem kolejnymi liczbami, kierując się według ruchu wskazówek zegara.

Dzięki "drobnej" pomocy naszej kochanej koleżanki Nataszy, w sposób błyskawiczny zostały rozpracowane poszczególne podłączenia wyprowadzeń lampy z jej segmentami oraz siatkami. Rysunek 2 przedstawia wynik końcowy powyższych poczynań.

Rysunek 2 - Sposób rozmieszczenia wyprowadzeń

Jak to działa?

W układzie możemy wyróżnić dwa główne bloki: źródło siły, czyli zasilacz oraz pozostałe organy, ogólnie ujmując sterujące całą zadymą.

Schemat ideowy zasilacza przedstawia rysunek 3.

Rysunek 3 - Schemat Ideowy Zasilacza

Nasz układ zasilający daje na wyjściu dwa wartości napięć:

  • 5V - do zasilania układów scalonych, mikroprocesora oraz żarnika lampy,
  • 15/30/45V - (napięcie zależne od użytkownika) jest to napięcie zasilające anody oraz siatki lampy.

Transformator sieciowy obniża napięcie do 12V. Ważne jest aby było to napięcie zmienne a nie stałe, gdyż układ nie będzie wtedy poprawnie pracował.

Dlatego należy uważać i nie korzystać z zasilaczy, które zawierają nie tylko transformator sieciowy, ale także układ prostowniczy oraz filtrujący. Po prostu należy zwrócić uwagę na nalepce zasilacza jaki rodzaj napięcia jest doprowadzany do wyjścia.

Podzespoły D1, C1, C2, oraz stabilizator U1 tworzą prosty, bardzo popularny układ prostującą-filtrująco-stabilizujący, który daje na wyjściu napięcie stałe o wartości 5V. Dioda D2 wraz z rezystorem ograniczającym prąd, jest kontrolką sygnalizującą podłączenie napięcia do układu.

Kondensatory C3, C4, C5 wraz z diodami D3, D4, D5 tworzą tzw. powielacz Cockrofta-Waltona. Posiada on trzy stopnie powielenia napięcia z transformatora sieciowego:

  • Pierwszy - podbijający prąd zmienny 12V do prądu stałego ok.15V,
  • Drugi - powielający napięcie wyjściowe ze stopnia pierwszego dwukrotnie do ok.30V,
  • Trzeci - powielający napięcie wyjściowe ze stopnia pierwszego trzykrotnie do ok.45V.

Napięcie te, są doprowadzone do złącza Zx, dzięki któremu możemy ustawić wartość napięcia wyjściowego.

Zasada jest taka, że im większe napięcie zasilające anody lampy tym jaśniej one świecą.

Mamy tutaj kilka sposobów na ustawienie wartości napięcia zasilającego segmenty lampy, po pierwsze, możemy wlutować w odpowiednie miejsce na płytce drukowanej zworkę, tym samym ustalając na stałe napięcie wyjściowe, lub po drugie, możemy do złącza Zx podłączyć przełącznik trójstanowy, wybierając wtedy jasność świecenia segmentów lampy o każdej porze dnia i nocy.

Ja w swoim układzie wykorzystałem drugi sposób z tego względu, iż przy dość jasnym świeceniu lampy ustawionej w porze dziennej tak aby czas był czytelny, w nocy taka jasność przeszkadza a nawet uniemożliwia zaśnięcie z powodu "rażącego" nocą świecenia segmentów. Ustawiając przełącznikiem niższą wartość napięcia zmniejszamy siłę z jaką segmenty świecą, przez co nie są one tak rażące i nie przeszkadzają już nocą w zasłużonym odpoczynku.

I tak dochodzimy do układu głównego czyli układu sterującego całym tym zamieszaniem.
Jego schemat ideowy przedstawiony jest na rysunku 4

Rysunek 4 - Schemat Ideowy Sterownika

Możemy wyróżnić w nim kilka mniejszych części, które składają się w jedną sensowną całość:

  • Serce zegara czyli mikrokontroler typu ATmega8515,
  • Lampa VFD typu IW-18 wraz z układami sterującymi,
  • Zegar Czasu Rzeczywistego typu PCF8583 sterowany magistralą I2C,
  • Klawiatura.

Mikrokontroler

Najważniejszy układ w całym projekcie. To właśnie zawarty w nim program, jest odpowiedzialny za współdziałanie z układem PCF8583, sterowanie lampą VFD oraz komunikację z otoczeniem dzięki odbieranym sygnałom z klawiatury.
Złącze Z1, podłączone do portów PB5...7, służy do zaprogramowania mikrokontrolera programatorem ISP.
Pozostałe wyjścia portu B (PB0..3) są odpowiedzialne za odbieranie sygnałów z klawiatury.
Port PB4 jest niewykorzystywany w układzie.
Porty PD6 oraz PD7 są przeznaczone do komunikowania się mikrokontrolera z układem PCF8583, poprzez magistralę I2C.
Pozostałe porty PD0...5 wraz z portem E są podłączone do złącz Z2 oraz Z3. Porty te są niezależne od programu tzn. nie są przez niego w standardowej wersji wykorzystywane i mogą nam posłużyć do różnych innych celów.

Porty A oraz C zostały przeznaczone do sterowania wyświetlaczem VFD. Port A steruje anodami (segmentami) zaś port C - siatkami lampy.
Mikrokontroler taktowany jest kwarcem X1 8MHz, który wraz z kondensatorami C1, C2 tworzy typowy oscylator.

Lampa VFD

Nasza lampa IW-18 jest sterowana poprzez dwa układy U2, U3 oraz dwa mostki rezystorowe RP1 oraz RP2.
Układy U2 oraz U3 typu ULN2804 są to tranzystory NPN w układzie Darlingtona ze wspólnym emiterem, w liczbie ośmiu sztuk w kości.
Odpowiedni spadek napięcia na żarniku lampy uzyskujemy poprzez podłączenie do niej szeregowo diody D1.
Zainteresowanych sposobem działania lampy VFD odsyłam do Internetu oraz na koniec artykułu, gdzie podałem kilka przydatnych odsyłaczy do artykułów edukacyjnych.

Zegar Czasu Rzeczywistego - RTC (Real Time Clock)

Jest to układ typu PCF8583, który wraz z odpowiednimi podzespołami odpowiedzialny jest za precyzyjny upływ czasu.
Komunikacja tego układu między mikrokontrolerem jest prowadzona poprzez magistralę I2C.
Układ jest taktowany kwarcem 32 768Hz.
Trymer C4 służy do ustawienia poprawnej szybkości pracy układu. Ustawiamy go w taki sposób aby na wyjściu /INT (pin 7) występowały impulsy o częstotliwości dokładnie 1Hz.
Bateria BT1 o wartości 3V, podtrzymuje pracę RTC, podczas zaniku napięcia z zasilacza głównego.
Diody D2 oraz D3 zapewniają prawidłowe zasilanie układu z dwóch różnych źródeł, działając w taki sposób, że gdy zabraknie napięcia wyższego, do akcji wchodzi napięcie niższe.
Linie magistrali SDA oraz SCL wymagają podciągnięcia do plusa zasilania rezystorami o wartości 10k, co skrzętnie wykonują R5 i R6.

Klawiatura

Klawiaturę tworzą cztery przyciski tzw. micro-switch'e: P1, P2, P3 oraz P4.
Na początku programu, podczas inicjacji włączone jest wewnętrzne podciąganie wejść przycisków do dodatniego bieguna zasilania.
Przyciśnięcie przycisku zwiera odpowiednie wejścia mikrokontrolera do masy, powodując pojawienie się nań ujemnego impulsu. Mikrokontroler po przyjęciu takiego impulsu interpretuje go a następnie wykonuje odpowiednie operacje, zależne od przyciśniętego przycisku.

Oprogramowanie

Kod zegarka w funkcji czasu ulegał wielokrotnym zmianą i modyfikacją. W celu zachowania historii dalszych zmian, objąłem projekt kontrolą wersji git, a sam projekt umieściłem na stronach GitHub. Oprogramowanie udostępnione jest na licencji GNU/GPLv3 so, feel free to modify and share :). Link do projektu znajdziecie pod koniec tej sekcji.

Program został napisany w całości językiem C. Posiada on dwa główne tryby pracy:

  • Tryb Demo, który jest pewnego rodzaju sprawdzeniem poprawności działania układu oraz podłączeń lampy. W trybie tym, poprzez lampę przewija się napis przypominający nazwę projektu, jego wykonawcę oraz po co został stworzony (tak gdyby ktoś zapomniał i chciał sobie przypomnieć :-).
  • Tryb Time, jest to główny tryb pracy całego układu, który wyświetla czas na wyświetlaczu VFD w formacie: HH-MM-SS.

Czas ustawiamy w następujący sposób:
Przyciskiem P1 zwiększamy wartość godzin (0-23),
Przyciskiem P2 zwiększamy wartość minut (0-59),
Naciskając przycisk P3 zerujemy sekundy gdy ich wartość jest mniejsza od 29, natomiast gdy wartość ta jest większa, przy zerowaniu sekund zwiększana jest o jeden wartość minut.
Przyciskiem P4 przechodzimy z trybu Time do trybu Mode i na odwrót.

Kod programu jest bardzo bogato rozwinięty w komentarze, dlatego przytaczanie go tutaj w fragmentach nie będzie miało sensu.

Download (starsza wersja) GitHub (najnowsza wersja)

Montaż i Uruchomienie

Uwaga! Zamieszczone schematy montażowe zawierają jeden poważny błąd. Brak zwarcia wyjścia A0 (pin nr.3) układu U4 (PCF8583) do masy. Może to (a nawet powinno) powodować problemy z komunikacją I2C pomiędzy uC a RTC, a co za tym idzie - błędnym wyświetlaniem czasu lub jego całkowitym brakiem. Aby naprawić ten błąd, należy zewrzeć pin 3 z najbliższym punktem masy (proponuję połączyć go z pinem nr.4, tego samego układu)

Zegarek został zmontowany na jednostronnym laminacie o wymiarach: 102x65mm.
Schemat montażowy zegara przedstawia rysunek 5.

Rysunek 5 - Schemat Montażowy Zegara (Kliknij aby powiększyć)

Montaż jest tradycyjny. Zaczynamy od wlutowania trzech zworek oraz podstawek pod układy scalone. Następnie przechodzimy na elementy o coraz to wyższych gabarytach zaczynając od rezystorów na kondensatorach elektrolitycznych kończąc, zwracając szczególną uwagę na ich biegunowość. Do układu 7805 najpierw przykręcamy radiator a dopiero potem lutujemy go na płytce.

Po zakończeniu lutowania, wkładamy do podstawek układy scalone, wkładamy baterię 3V, podłączamy lampę oraz napięcie 12V do układu.

Następnie po umieszczeniu na swoim miejscu wszystkich podzespołów, programujemy mikrokontroler poprzez złącze ISP.
Po przeprowadzonej poprawnie sekwencji programowania, układ powinien działać od razu prawidłowo.

Schemat montażowy w formacie pcb:

pcb.rar

Galeria

TBD

Spis Elementów:

Elementy oznaczone znakiem ' wchodzą w skład zasilacza.

Artykuły edukacyjne

  • Elektronika dla Wszystkich 2/05 Wyświetlacze VFD - Piotr Górecki
  • Elektronika dla Wszystkich 2/05 Nie bój się VFD, czyli praktyka w czystej postaci - Natasza Biecek (http://bienata.pl/docs/000_Nie_boj_sie_VFD_1.pdf)
  • Elektronika dla Wszystkich 5/05 Nie bój się VFD - post scriptum - Natasza Biecek

Zmiany w stosunku do wersji oryginalnej

  • Refaktoryzacja kodu HTML,
  • Konwersja do formatu png i usunięcie tła z rysunków 1, 2, 3, 4,
  • Utworzenie miniatur png dla plików video i dodanie ich do galerii,
  • Na płytce PCB poprawiono błąd w połączeniu PCF8083TODO,
  • Konwersja archiwum z *.rar do *.zip,
  • Usunięto powiązania ze starą wersją strony www.elportal.pl

Dedykacja

Dla NB i AP.