Spisu treści:

Kontrolowany Arduino termometr Nixie-tube: 14 kroków
Kontrolowany Arduino termometr Nixie-tube: 14 kroków

Wideo: Kontrolowany Arduino termometr Nixie-tube: 14 kroków

Wideo: Kontrolowany Arduino termometr Nixie-tube: 14 kroków
Wideo: Уроки Arduino. Подключение термометров DS18B20 и NTC термистора 2024, Listopad
Anonim
Termometr Nixie sterowany Arduino
Termometr Nixie sterowany Arduino

Wiele lat temu kupiłem kilka lamp IN-14 Nixie z Ukrainy i od tego czasu je mam. Zawsze chciałem użyć ich w niestandardowym urządzeniu, więc postanowiłem w końcu zająć się tym projektem i zbudować coś, co wykorzystuje ten prawie starożytny sposób wyświetlania cyfr, ale na razie nie chciałem budować zegara lampowego Nixie (myślałem, że to było trochę banalne i na razie mam dość wymyślnych projektów zegarów hipsterskich), więc pomyślałem: dlaczego nie zbudować termometru do mojego pokoju, który można aktywować przez klaskanie? Aktywowałem go klaśnięciem, żeby nie był włączony przez cały czas, ponieważ pomyślałem, że to spora strata energii i nie chciałem też, aby oświetlał pokój, szczególnie w nocy.

Lampy Nixie sterowane są przez układ Arduino, który odpowiada również za odczyt temperatury z dobrze znanego czujnika temperatury DHT-11.

To jest skrócona kopia mojej oryginalnej serii wydanej na mojej stronie internetowej. Spójrz na to, jeśli interesują Cię inne artykuły techniczne i projekty, których jeszcze nie edytowałem dla Instructables.

Krok 1: Lampy Nixie i wysokie napięcie

Lampy Nixie i wysokie napięcie
Lampy Nixie i wysokie napięcie

Lampy Nixie to lampy z zimną katodą wypełnione określonym gazem. Ponadto zawierają one wspólną anodę (lub katodę) i oddzielne katody (lub anody) dla każdej wyświetlanej cyfry lub znaku (patrz rys. 1.1).

W moim przypadku lampy mają wspólną anodę, a cyfry to osobne katody. W przeciwieństwie do innych lamp z tamtych czasów (tranzystory, diody,…) lampy Nixie zwykle nie wymagają podgrzewania do poprawnej pracy (stąd nazwa: lampa z zimną katodą).

Jedyne, czego wymagają, to dość wysokie napięcie, zwykle między 150 a 180 V DC. Jest to zazwyczaj główny problem podczas obsługi tych urządzeń wyświetlających, ponieważ oznacza to, że będziesz potrzebować niestandardowego zasilacza lub obwodu podwyższającego i kontrolerów, które są w stanie włączać i wyłączać katody bez użycia zbyt wielu linii GPIO.

Krok 2: Konwerter podwyższający napięcie 12 V na 170 V DC

Konwerter podwyższający napięcie 12 V na 170 V DC
Konwerter podwyższający napięcie 12 V na 170 V DC

Zacznijmy od wytworzenia napięcia niezbędnego do świecenia lamp. Na szczęście typowa lampa Nixie potrzebuje wysokiego napięcia, ale bardzo niskiego prądu, co sprawia, że zbudowanie takiego przetwornika jest dość łatwe i tanie.

Zachowaj ostrożność podczas korzystania z tego obwodu i ogólnie wysokiego napięcia. Nie są zabawką, a zarażenie się bardzo boli w najlepszym przypadku, aw najgorszym może cię zabić! Zawsze wyłączaj zasilanie przed wymianą/serwisem obwodu i upewnij się, że używasz odpowiedniego futerału, aby nikt nie dotknął go przypadkowo, gdy jest używany!

Do konwertera step-up użyłem dobrze znanego układu scalonego MC34063. Ten mały układ scalony łączy w sobie wszystko, czego potrzebujesz do dowolnego konwertera przełączającego. Jednak zamiast korzystać z wbudowanego tranzystora IC, zdecydowałem się na zewnętrzny tranzystor, który pomógł utrzymać niską temperaturę IC, a także pozwolił mi uzyskać wyższy pobór prądu na wyjściu. Ponadto, ponieważ zaskakująco trudno było znaleźć odpowiednie wartości dla wszystkich tych elementów, aby uzyskać wyjście 170 V, zrezygnowałem po kilku dniach obliczeń i testów (najwyższa, jaką uzyskałem z 12 V, to 100 V) i postanowiłem nie wymyślać od nowa Koło. Zamiast tego kupiłem zestaw z eBay, który w dużej mierze jest zgodny ze schematem z tego arkusza danych z kilkoma poprawkami (patrz rys. 2.1. Dodałem również opisy do obrazka).

Krok 3: Sterowanie lampami za pomocą Arduino

Sterowanie lampami za pomocą Arduino
Sterowanie lampami za pomocą Arduino

Tak więc, jak widzieliście wcześniej, lampy wymagają wysokiego napięcia do włączenia. „Więc jak możesz włączać i wyłączać lampy za pomocą mikrokontrolera, takiego jak Arduino?”, możesz zapytać.

Istnieje kilka alternatywnych dróg, którymi możesz się udać, aby osiągnąć ten cel. Na przykład dedykowane głośniki lampowe Nixie. Nadal można zdobyć nowe stare zapasy i używane układy scalone, ale mogą być trudne do znalezienia i mogą być drogie i nie spodziewam się, że będzie łatwiej je znaleźć w przyszłości, ponieważ nie są już produkowane.

Nie użyję więc takiego sterownika lampowego Nixie. Zamiast tego użyję tranzystorów i dekoderów binarnych na dziesiętne, dzięki czemu nie będę musiał używać 10 linii GPIO na rurkę nixie. W przypadku tych dekoderów będę potrzebować 4 linii GPIO na lampę i jednej linii do wyboru między dwiema lampami.

Dodatkowo, abym nie musiał przełączać się między lampami cały czas z wysoką częstotliwością, użyję przerzutników (które będą wymagały jednej dodatkowej linii GPIO do zerowania), aby zachować ostatnie wejście tak długo, jak będzie to potrzebne (Patrz rys. 3.1, kliknij tutaj, aby zobaczyć pełny obwód sterowania w wysokiej rozdzielczości).

Krok 4: Rozważania projektowe

Projektując ten układ znalazłem dekodery z wbudowanymi przerzutnikami R/S-Flip-Flop, które wciąż są produkowane (np. CD4514BM96). Ale niestety nie udało mi się ich szybko zdobyć, ponieważ czas dostawy wynosił dwa tygodnie i nie chciałem czekać tak długo. Jeśli więc Twoim celem jest wykonanie małej płytki drukowanej (lub chcesz mieć małą liczbę różnych układów scalonych), zdecydowanie powinieneś wybrać taki układ, zamiast używać zewnętrznych przerzutników.

Istnieją również odwrócone warianty tych dekoderów. Na przykład CD4514BM965 jest odwróconym wariantem wspomnianego powyżej układu scalonego, gdzie wybrana liczba będzie niska zamiast wysokiej, co nie jest tym, czego w tym przypadku chcemy. Zwróć więc uwagę na ten szczegół przy zamawianiu części. (Nie martw się: pełna lista części zostanie uwzględniona później w tej instrukcji!)

Możesz użyć dowolnego typu tranzystora do swojej tablicy, o ile parametry są zgodne z napięciem i prądem pobieranym przez lampy. Dostępne są również układy scalone tranzystorowe, ale znowu nie mogłem znaleźć takich, które miałyby napięcie powyżej 100 V lub byłyby szybko dostępne.

Krok 5: Układ tranzystorowy

Układ tranzystorowy
Układ tranzystorowy

W kroku 3 nie pokazywałem macierzy tranzystorów, aby grafika była prosta i zrozumiała. Rysunek 5.1 pokazuje szczegółowo brakującą tablicę tranzystorów.

Jak widać, każde wyjście cyfrowe dekodera jest połączone z podstawą tranzystora npn poprzez rezystor ograniczający prąd. To wszystko, naprawdę proste.

Upewnij się tylko, że tranzystory, których używasz, wytrzymają napięcie 170V i prąd 25mA. Aby dowiedzieć się, jaka musi być wartość twojego podstawowego rezystora, użyj kalkulatora połączonego na końcu tej instrukcji w sekcji „Dalsze odczyty”.

Krok 6: Odczytywanie temperatury

Odczytywanie temperatury
Odczytywanie temperatury
Odczytywanie temperatury
Odczytywanie temperatury

Być może słyszałeś już o połączonym czujniku temperatury i wilgotności DHT-11 (lub DHT-22) (patrz rys. 6.1). Jedyną różnicą między tym czujnikiem a DHT-22 jest dokładność i zakres pomiarowy. 22 ma wyższy zakres i lepszą dokładność, ale do pomiaru temperatury pokojowej DHT-11 jest więcej niż wystarczający i tańszy, mimo że może dostarczać tylko wyniki całkowite.

Czujnik wymaga trzech połączeń: VCC, GND oraz jednej linii do komunikacji szeregowej. Wystarczy podłączyć go do źródła napięcia i podłączyć pojedynczy przewód do komunikacji do pinu GPIO Arduino. Arkusz danych sugeruje dodanie rezystora podciągającego między com-line a VCC, aby linia komunikacyjna była w stanie wysokim, gdy nie jest używana (patrz rys. 6.2).

Na szczęście istnieje już biblioteka dla DHT-11 (i kilka dobrze udokumentowanych bibliotek dla DHT-22), która będzie obsługiwać komunikację między Arduino a czujnikiem temperatury. Tak więc aplikacja testowa dla tej części jest dość krótka:

Krok 7: Ukończ szkic Arduino

Tak więc po odczytaniu czujników, ostatnim krokiem było pobranie informacji z czujników i wyświetlenie temperatury za pomocą rurek Nixie.

Aby włączyć określoną liczbę na lampie, musisz przesłać 4-bitowy kod do dekodera, który włączy właściwy tranzystor. Co więcej, musisz również przesłać jeden bit, który wskazuje, którą z dwóch lamp chcesz teraz ustawić.

Zdecydowałem się dodać zatrzask R/S tuż przed każdym wejściem dekodera. Dla tych z Was, którzy nie wiedzą, jak działa jeden z tych zatrzasków, oto krótkie wyjaśnienie:

Zasadniczo pozwala na przechowywanie jednego bitu informacji. Zatrzask można ustawić i zresetować (stąd nazwa R/S-Latch, znany również jako S/R-Latch lub R/S-Flip-Flop). Aktywując wejście SET zatrzasku, wyjście Q jest ustawiane na 1. Aktywując wejście RESET, Q staje się 0. Jeśli oba wejścia nie są aktywne, poprzedni stan Q zostaje zachowany. Jeśli oba wejścia zostaną aktywowane w tym samym czasie, masz problem, ponieważ zatrzask jest wymuszany w stan niestabilny, co w zasadzie oznacza, że jego zachowanie będzie nieprzewidywalne, więc unikaj tego stanu za wszelką cenę.

Aby więc wyświetlić cyfrę 5 na pierwszej (po lewej) i cyfrę 7 na drugiej tubie Nixie, musisz:

  • ZRESETUJ wszystkie zatrzaski
  • Aktywuj lewą rurkę (Wyślij 0 przez linię EN)
  • Ustaw wejścia dekodera (D, C, B i A): 0101
  • Ustaw D, C, B i A wszystkie na 0, aby zachować ostatni stan (nie trzeba tego robić, jeśli obie lampy powinny wyświetlać ten sam numer)
  • Aktywuj właściwą rurkę
  • Ustaw wejścia dekodera (D, C, B i A): 0111
  • Ustaw D, C, B i A wszystkie na 0, aby zachować ostatni stan

Aby wyłączyć lampy, możesz przesłać nieprawidłową wartość (np. 10 lub 15). Dekoder wyłączy wtedy wszystkie wyjścia i dlatego żaden z dostępnych tranzystorów nie zostanie aktywowany, a przez lampę Nixie nie popłynie żaden prąd.

Możesz pobrać całe oprogramowanie tutaj

Krok 8: Oderowanie PCB

Oderowanie PCB
Oderowanie PCB
Oderowanie PCB
Oderowanie PCB
Oderowanie PCB
Oderowanie PCB

Chciałem połączyć wszystko (oprócz obwodu podwyższającego) na jednej płytce drukowanej, co moim zdaniem wyszło całkiem nieźle (patrz rys. (8.1).

Moim głównym celem było utrzymanie jak najmniejszych rozmiarów płytki PCB, przy jednoczesnym zapewnieniu miejsca, w którym można by go zamontować w obudowie. Chciałem również użyć komponentów SMD, abym mógł ulepszyć moją technikę lutowania, a także pomogłyby utrzymać cienką płytkę drukowaną, aby niestandardowa obudowa nie musiała być duża i nieporęczna (patrz rys. 8.2).

Ze względu na zastosowanie komponentów SMD większość połączeń musiała być wykonana po stronie komponentów. Próbowałem użyć jak najmniejszej liczby przelotek. Dolna warstwa ma tak naprawdę tylko linie GND, VCC i +170V oraz kilka połączeń, które musiały zostać wykonane między różnymi pinami tego samego układu scalonego. Z tego też powodu użyłem dwóch układów scalonych DIP-16 zamiast ich wariantów SMD.

Tutaj możesz pobrać pliki projektowe PCB i schematy EAGLE.

Ponieważ jest to malutka konstrukcja z bardzo małymi tolerancjami i śladami, ważne było znalezienie dobrego producenta płytek PCB, aby były ładne i działały prawidłowo.

Postanowiłem zamówić je w PCBWay i nie mogę być bardziej zadowolony z produktu, który mi przysłali (patrz rys. 8.3).

Możesz otrzymać natychmiastową wycenę swoich prototypów online bez konieczności rejestracji. Jeśli zdecydujesz się na zamówienie: Mają również ten poręczny konwerter online, który przekonwertuje pliki EAGLE do prawidłowego formatu gerber. Mimo że EAGLE też ma konwerter, bardzo lubię konwertery online od producentów, ponieważ w ten sposób można mieć 100% pewności, że nie będzie problemów z kompatybilnością z wersją gerber.

Krok 9: Rozwiązywanie problemów

Rozwiązywanie problemów
Rozwiązywanie problemów

Kiedy pierwszy raz testowałem moją świeżo lutowaną płytkę drukowaną, nic nie działało. Lampy albo nic nie wyświetlały (dekodery osiągnęły wartość > 9) albo losowe liczby albo świeciły się na stałe, albo migały, co wyglądało ładnie, ale w tym przypadku było niepożądane.

Na początku obwiniałem oprogramowanie. Wymyśliłem więc ten tester Nixie dla Arduino (patrz rys. 9.1).

Ten skrypt pozwala na wprowadzenie numeru pinu GPIO (0-8), którego stan chcesz zmienić. Następnie prosi o państwo. Po wprowadzeniu numeru PIN 9 zatrzaski są resetowane.

Kontynuowałem więc testy i sporządziłem tabelę prawdy ze wszystkimi możliwymi wejściami dla A, B, C i D. Zauważyłem, że liczby 4, 5, 6 i 7 nie mogą być wyświetlane z żadną z dwóch lamp. Dodatkowo inaczej reagowałyby na tę samą kombinację sygnałów wejściowych.

Pomyślałem, że musi być też problem z elektrycznością. Nie mogłem znaleźć żadnych problemów technicznych w projekcie, ale potem pomyślałem o czymś, czego nauczyłem się dawno temu (ale od tamtego czasu nigdy tak naprawdę nie miałem z tym problemu): Topnik może przewodzić. Może to nie stanowić problemu w przypadku zwykłych aplikacji cyfrowych i niskonapięciowych, ale wygląda na to, że był to problem. Wyczyściłem więc deskę alkoholem i potem zachowywała się jak należy.

Rodzaj. Kolejna rzecz, którą zauważyłem: część, której użyłem w EAGLE podczas tworzenia układu PCB, była nieprawidłowa (przynajmniej dla moich lamp). Moje lampy wydają się mieć inne wyprowadzenia.

Tylko kilka rzeczy, o których należy pamiętać, gdy obwód nie działa od razu.

Krok 10: Niestandardowy przypadek

Niestandardowy przypadek
Niestandardowy przypadek
Niestandardowy przypadek
Niestandardowy przypadek
Niestandardowy przypadek
Niestandardowy przypadek

Po uporządkowaniu wszystkiego innego chciałem zbudować ładną obudowę, aby pomieścić mój obwód. Na szczęście z mojego projektu zegara słownego zostało dużo drewna, które chciałem wykorzystać do zbudowania siatki od wewnątrz (patrz rys. 10.1).

Obudowę zbudowałem korzystając z następujących pomiarów:

Ilość Wymiary [mm] Opis
6 40x125x5 Dolna, górna, przednia i tylna strona
2 40x70x5 Małe kawałki boczne
2 10x70x10 Elementy konstrukcyjne po wewnętrznej stronie (patrz rys. 8).
2 10x70x5 Elementy konstrukcyjne na pokrywie (patrz rys. 11).

Po pocięciu kawałków ułożyłem je razem, tworząc pudełko pokazane na ryc. 10.2.

Rysunek 10.3 pokazuje obudowę pod innym kątem.

Górna część obudowy jest dokładnie taka sama jak spód, tylko bez ścian i z mniej wysokimi elementami konstrukcyjnymi (patrz rys. 10.4). Działa jak pokrywka i można ją zdjąć, aby serwisować elementy od wewnątrz. Płytka drukowana zostanie zamontowana do pokrywy z dwiema rurkami wystającymi z obudowy.

Po tym, jak byłem zadowolony z tego, jak wszystko do siebie pasuje, po prostu skleiłem wszystkie części i pozostawiłem do wyschnięcia na kilka godzin.

Być może zastanawiasz się, jak przymocowałem płytkę PCB do pokrywy, skoro na górze nie ma widocznych śrub. Po prostu wywierciłem otwór na śrubę w strukturalnej części pokrywy, a następnie wykonałem pogłębienie na łeb śruby (patrz rys. 10.5).

Krok 11: Kończenie kompilacji

Kończenie kompilacji
Kończenie kompilacji
Kończenie kompilacji
Kończenie kompilacji

Po zamontowaniu głównej płytki drukowanej do pokrywy, wszystkie pozostałe elementy należało po prostu umieścić w obudowie, co widać na ryc. 11.1.

Jak widać, starałem się jak najlepiej uporządkować kable i myślę, że wyszło całkiem nieźle. Wszystko ładnie pasuje do obudowy, co widać na ryc. 11.2.

Dodałem też DC-Jack do obudowy (i trochę zwariowałem z gorącym klejem). Ale w ten sposób można zasilać termometr dowolną zwykłą ładowarką do telefonu i odpowiednim kablem. Możesz jednak dodać baterię 5 V, jeśli chcesz.

Krok 12: Części używane w tej kompilacji

Dla elektroniki:

Ilość Produkt Cena Detale
1 DHT-11 4, 19€ Dostałem to z drogiego sklepu. Możesz je dostać za mniej niż 1 $ w Chinach.
2 CD4028BM 0, 81€ Dekoder
2 74HCT00D 0, 48€ NAND
1 74HCT04D 0, 29€ Falownik
1 Pinheader 0, 21€ 2x5 pinów
1 Zacisk śrubowy 0, 35€ 2 połączenia
20 SMBTA42 0, 06€ npn-tranzystor
20 Rezystor SMD 0, 10€ 120K
2 74LS279N 1, 39€ Klapki R/S-Flip
1 PCB 4, 80€ Zamów tutaj
2 W-14 Nixies 2, 00€
1 Konwerter podwyższający 6, 79€

Będziesz także potrzebował jakiegoś mikrokontrolera. Użyłem Arduino Pro Micro.

W przypadku:

Ilość Produkt Cena Detale
nie dotyczy Drewno ~2€ Patrz wyżej
4 Śruby M3x16 0, 05€
4 Nakrętki M3 0, 07€
1 butelka Klej do drewna 1, 29€
1 może farba do drewna 5, 79€

Krok 13: Wniosek

Wniosek
Wniosek
Wniosek
Wniosek

Jestem naprawdę zadowolony z wyniku tej kompilacji. Po raz pierwszy udało mi się precyzyjnie dociąć kawałki drewna i nie zapomniałem też o otworach montażowych pod płytkę PCB. I rzeczywiście wygląda też wspaniale (patrz rys. 13.1).

Poza tym ogólnie interesująca była praca z lampami i wysokimi napięciami i należy wziąć pod uwagę kilka rzeczy.

Podsumowując, powiedziałbym, że to dobrze, że mamy dziś wygodniejsze sposoby wyświetlania liczb, ale z drugiej strony nie ma nic porównywalnego z blaskiem i ogólnym wyglądem lamp Nixie, na które naprawdę lubię patrzeć, zwłaszcza kiedy jest ciemno (patrz rys. 13.2).

Mam nadzieję, że spodobała Ci się ta instrukcja. Jeśli tak, zajrzyj na moją stronę internetową, aby znaleźć więcej interesujących artykułów i projektów!

Krok 14: Atrybucje, źródła i dalsze lektury

Dalsze odczytyMC34063 Szczegóły aplikacji – ti.comMC4x063 Karta katalogowa – ti.comNixie układ scalony sterownika lampy – tubehobby.comDHT-11 Biblioteka Arduino – arduino.ccA Tranzystor jako przełącznik - petervis.comTeoria rezystorów bazowych, wzory i kalkulator online - petervis.com

Źródła obrazu[Rys. 1.1] Rury IN-14 Nixie, coldwarcreations.com[Rys. 2.1] Obwód podwyższający, narysowany samodzielnie, ale zaczerpnięty z serwisu ebay.com [Rys. 6.1] Czujnik temperatury DHT-11 – tinytronics.nl

Zalecana: