Estetyczny termometr

Estetyczny termometr

Zdecydowana większość projektów termometrów zawiera wyświetlacze siedmiosegmentowe lub alfanumeryczne, które niekoniecznie każdemu przypadają do gustu. Opisywane urządzenie ma graficzny wyświetlacz LCD, który umożliwia wyświetlenie czytelnych cyfr o kroju Arial (lub innym, zdefiniowanym samodzielnie). Mogą być one białe na czarnym tle lub czarne na białym tle. Rekomendacje: termometr może być ozdobą wnętrza lub posłużyć do tuningu samochodu.

Podstawowe parametry:
  • Pomiar i wyświetlanie temperatury.
  • Prezentacja wyniku pomiaru na czytelnym, estetycznym, graficznym wyświetlaczu LCD.
  • Mikrokontroler STM32F051.
  • Wyświetlanie znaków pozytywowych lub negatywowych (wybór zworką).
  • Wyświetlacz o rozdzielczości 128×160 piksele.
  • Zasilanie 5…12 V/100 mA.
  • Dwustronna płytka drukowana o wymiarach 60 mm×36,5 mm.

Opisane urządzenie ma tylko jedną funkcję: pomiar i wyświetlanie aktualnej temperatury. Ponieważ został przystosowany do współpracy z popularnym czujnikiem typu DS18B20, zakres mierzonych temperatur sięga do –55…+125°C , a dokładność wskazań wynosi 0,5°C.
Aby zapewnić jak najlepszą czytelność, na wyświetlaczu znajdują się jednocześnie nie więcej niż trzy znaki oraz ewentualna kropka jako separator dziesiętny. Dlatego temperatura z przedziału od –9,9°C do 99,9°C jest wyświetlana z rozdzielczością 0,1°C, a spoza niego z rozdzielczością 1°C. Na dole wyświetlacza przez cały czas jest wyświetlana jednostka – w tym wypadku stopień Celsjusza.

Schemat ideowy

Schemat ideowy termometru pokazano na rysunku 1. Za akwizycję danych z czujnika oraz obsługę wyświetlacza jest odpowiedzialny 32-bitowy mikrokontroler typu STM32F051 wyposażony w 16 kB pamięci RAM, co – jak się okaże – wcale nie jest na wyrost. Oprócz tego rdzeń może być taktowany z częstotliwością 48 MHz, a szybkość też ma tutaj duże znaczenie, ponieważ pozwala w bardzo krótkim czasie odświeżyć zawartość ekranu.

Rysunek 1. Schemat ideowy termometru

Do interfejsu SPI1 tego mikrokontrolera są przyłączone dwie linie sygnałowe z wyświetlacza: dane (SDI) oraz zegar danych (SCLK). Pozostałe trzy linie są sterowane programowo poprzez GPIO, a nie sprzętowo, ponieważ szybkość ich przełączania nie jest krytyczna.

W celu zaprogramowania pamięci Flash mikrokontrolera przewidziano złącze J4, na które wyprowadzono podstawowe sygnały interfejsu SWD oraz masę. Ponieważ nie służą one do innych celów, zostały podciągnięte rezystorami do dodatniej linii zasilania, aby ustalić ich potencjał.

Czujnik DS18B20, który należy przyłączyć do złącza J2, ma doprowadzone własne zasilanie (praca w trybie 2-Wire). Długość przewodów łączących go z płytką może być znaczna, a wtedy w linii sygnałowej mogą indukować się zakłócenia niebezpieczne dla mikrokontrolera. Diody D1 i D2 ograniczają amplitudę tych przepięć, zaś rezystor R3 ogranicza ich prąd oraz zwiększa czas narastania napięcia. Rezystor R2 jest wymagany do poprawnej pracy linii sygnałowej interfejsu 1-Wire.

Z tyłu płytki znajduje się zworka, którą można wybrać kolor tła dla wyświetlanej zawartości. Jej stan jest odczytywany przez GPIO mikrokontrolera: nałożenie zworki oznacza zwarcie wyprowadzenia do masy (stan niski), a jej brak oznacza stan wysoki, zapewniany przez rezystor podciągający R1.

Do prawidłowej pracy układ wymaga stabilnego napięcia zasilającego o wartości 3,3 V. Jest ono dostarczane przez stabilizator typu LDO, więc minimalne napięcie zasilające układ wynosi 4,5 V. Maksymalne napięcie zasilania jest ograniczone głównie przegrzaniem struktury stabilizatora, więc warto nie przekraczać wartości 12 V – największe dopuszczalne napięcie wejściowego dla tego typu stabilizatora wynosi 15 V.

Montaż i uruchomienie

Układ termometru został zmontowany na dwustronnej płytce drukowanej o wymiarach 60×36,5 mm, której schemat montażowy pokazano na rysunku 2. Wszystkie elementy przewlekane, poza złączem J3, powinny być zamontowane po tej samej stronie, co elementy SMD. Wyświetlacz LCD najczęściej ma złącze męskie wlutowane już w fabryce, dlatego potrzebna jest część żeńska.

Rysunek 2. Schemat montażowy płytki termometru

Po zmontowaniu płytki i włożeniu wyświetlacza w przewidziane dlań złącze, polecam skręcić te dwa elementy za pośrednictwem tulei dystansowych oraz śrub M3. Tworzy to elegancką i zwartą konstrukcję. Gdyby zaszła potrzeba przykręcenia tak powstałego modułu do obudowy, można posłużyć się otworami znajdującymi się w wyświetlaczu – wystarczy użyć dłuższych śrub. Zmontowana płytka widoczna jest (od strony elementów SMD) na fotografii 3.

Fotografia 3. Widok zmontowanej płytki od strony elementów SMD

Uruchomienie układu sprowadza się do zaprogramowania pamięci Flash mikrokontrolera gotowym wsadem. Po dołączeniu czujnika DS18B20 układ jest gotowy do pracy. Zasilanie powinno odbywać się napięciem stałym z przedziału ok. 5…12 V, niekoniecznie stabilizowanym. Pobór prądu wynosi ok. 65 mA. Odświeżanie wyniku następuje cyklicznie co 750 ms. Domyślnie ekran jest czarny, a znaki na nim białe. Nakładając zworkę z tyłu, można uzyskać negatyw, tj. białe tło z czarnymi znakami. Widok takiej opcji można zobaczyć na fotografii 4.

Fotografia 4. Widok ekranu z białym tłem i czarnymi znakami

Dla ciekawskich

Użyty wyświetlacz ma rozdzielczość 128×160 pikseli, a do wysterowania każdego z nich potrzebne są dwa bajty – praca w trybie 16-bitowym. Wprawdzie ich zawartość nie jest zbyt zróżnicowana – 0x00 dla punktu czarnego i 0xFF dla białego – niemniej jednak każdorazowe odświeżenie wyświetlacza wymaga przesłania do niego 40 960 bajtów. Użycie mikrokontrolera, który dysponuje tak znaczną ilością pamięci RAM, byłoby marnotrawstwem. Dlatego zdecydowano się na inne rozwiązanie: w pamięci RAM przechowywana jest tablica 2560 jednobajtowych zmiennych, reprezentująca zawartość ekranu. Odpowiada to jednemu bitowi na jeden piksel wyświetlacza. Podczas wysyłania nowej zawartości na tej podstawie generowane są odpowiednie bajty.

Jednak taka metoda – z jednoczesnym generowaniem i wysyłaniem poprzez SPI – jest bardzo wolna. Ciężar odpowiedzialności za transmisję bajtów warto więc zrzucić na barki DMA, które jest stworzone do tego celu. Jednak jest pewien szkopuł: samo DMA nie wystarczy, ponieważ trzeba mu wcześniej przygotować odpowiednią tablicę gotowych bajtów. Rozwiązanie polega na podzieleniu całego ekranu na 8 części, generowaniu za każdym razem tylko 5120 bajtów i wysłaniu ich przez DMA. Kiedy DMA zgłasza koniec transmisji (flaga TC), przygotowywana jest następna porcja danych. Dzięki temu, przemiatanie zawartości ekranu jest na tyle krótkie, że niemal niezauważalne.

Michał Kurzela, EP

Wykaz elementów:
Rezystory: (SMD 0805)
  • R1, R4…R6: 10 kΩ
  • R2: 3,3 kΩ
  • R3: 100 Ω
Kondensatory:
  • C1: 220 µF/25 V
  • C2, C5, C7, C8, C10, C11: 100 nF (SMD 0805)
  • C3, C4, C6, C9: 10 µF/10 V (SMD 0805)
Półprzewodniki:
  • D1, D2: BAS85 (MiniMELF)
  • US1: LD117AS33TR (SOT223)
  • US2: STM32F051K8T6 (TQFP32)
  • Czujnik DS18B20
Pozostałe:
  • J1: złącza DC 2,1/5,5 mm THT
  • J2: goldpin męski 3 pin 2,54 mm THT
  • J3: goldpin żeński 8 pin 2,54 mm THT (opis w tekście)
  • J4: goldpin męski 4 pin 2,54 mm THT
  • JP1: goldpin męski 2 pin 2,54 mm THT + zworka
  • Wyświetlacz LCD 1,8 TFT SPI 128×160 V1.1 lub podobny
  • 4 tuleje dystansowe M3 11 mm z gwintem wewnętrznym
  • 8 śrub M3/5 mm (opis w tekście)
Artykuł ukazał się w
Elektronika Praktyczna
maj 2019
DO POBRANIA
Materiały dodatkowe
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik październik 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio listopad - grudzień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje październik 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna październik 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich listopad 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów