- pomiar względnego ciśnienia powietrza w zakresie 0…150 psi lub 0…10,34 bar,
- załączanie przekaźnika, gdy zmierzone ciśnienie spadnie poniżej ustalonej wartości,
- regulacja progu załączenia i wyłączenia (histerezy),
- przełączanie jednostek: [bar] lub [psi],
- wyświetlacz LCD,
- nie wymaga kalibracji,
- zasilanie napięciem 12 V.
Zaprezentowany układ to barostat, w którym jedno z wejść jest otwarte i wystawione na działanie ciśnienia atmosferycznego. Barostat jest mało rozpowszechnionym pojęciem w języku polskim, stąd konieczność doprecyzowania. Natomiast presostat to urządzenie wyczulone na różnicę ciśnień dwóch ośrodków (gazów lub cieczy), doprowadzonych do jego wejść.
Elektroniczna wersja wskazówkowego manometru została wyposażona w dwa styki służące, np. do załączania pompy – gdy ciśnienie w monitorowanym zbiorniku stanie się za niskie, lub do wyłączania jej – kiedy osiągnie określoną wartość. Zastąpienie wskazówki, tarczy przez cyfrowy czujnik i wyświetlacz, pozwala ograniczyć błąd pomiaru oraz poprawić rozdzielczość. Może być to przydatne w instalacjach wymagających utrzymania ciśnienia powietrza w wąskim przedziale, np. do zasilania aerografów.
Budowa
Schemat ideowy ilustruje rysunek 1.
Głównym elementem urządzenia jest cyfrowy czujnik ciśnienia firmy Honeywell, oznaczony symbolem HSCDANN150PG2A5. Może on zmierzyć ciśnienie względne suchego powietrza w zakresie 0…150 psi, co odpowiada zakresowi około 0…10,34 bar. Powietrze, którego ciśnienie ma zostać zmierzone, doprowadza się do króćca PORT1, o wymiarach określonych na rysunku 2. PORT2 to otwór, którym czujnik pobiera powietrze o ciśnieniu atmosferycznym.
Czujnik komunikuje się z urządzeniem nadrzędnym za pomocą magistrali I2C, której linie zostały podciągnięte do napięcia 5 V przy użyciu rezystorów R11 i R12. Producent zadbał o prawidłowe skalibrowanie czujnika, więc niepotrzebne są dodatkowe regulacje. Powinien pracować w temperaturze 0…50°C, aby wbudowana kompensacja temperaturowa działała prawidłowo i zapewniła dokładność wskazań.
Układem nadrzędnym, kontrolującym pracę czujnika, jest popularny mikrokontroler ATmega8A w obudowie TQFP32. Taktowany jest sygnałem zegarowym, wytwarzanym przez wbudowany oscylator RC, ponieważ nie realizuje zadań wymagających dokładnego odliczania czasu. Programowanie pamięci Flash oraz bitów zabezpieczających, możliwe jest przez złącze J3.
Do wyświetlania aktualnych wskazań oraz nastaw, służy typowy wyświetlacz LCD, o organizacji 2×16 znaków, ze sterownikiem zgodnym z HD44780. Pracuje w trybie 4-bitowym, a nieużywane linie danych są ściągnięte do potencjału masy poprzez rezystory 10 kΩ. Podświetlenie zasilane jest bezpośrednio z zasilacza, a nie z linii 5 V, aby nie obciążać stabilizatora.
Zastosowany stabilizator liniowy typu 7805, uzyskuje wystarczająco stabilne napięcie do zasilania czujnika, mikrokontrolera i wyświetlacza. Ze względu na konieczność poprawnego sterowania przekaźnikiem, minimalne napięcie zasilające układ wynosi 10 V. Stosowanie stabilizatora LDO, nie jest koniecznie. Również pobór prądu z linii 5 V jest niewielki, więc użycie przetwornicy impulsowej do obniżenia napięcia mijałoby się z celem. Dioda D1 zabezpiecza układ przed zniszczeniem w razie pomyłki w biegunowości podłączonego do złącza J1 zasilania.
Załączaniem pompy (lub innego urządzenia, np. kontrolki sygnalizującej uzyskanie prawidłowego ciśnienia) zarządza przekaźnik elektromagnetyczny PK1. Do załączania cewki, służy niewielki tranzystor MOSFET typu BSS123. Rezystor R1 dba o to, aby tranzystor pozostał wyłączony również w czasie, kiedy mikrokontroler nie funkcjonuje, na przykład gdy znajduje się w stanie zerowania, spowodowanego zbyt niskim napięciem zasilania.
Montaż i uruchomienie
Układ został zmontowany na dwustronnej płytce drukowanej o wymiarach 90×60 mm, a wzór ścieżek oraz schemat montażowy ilustrują rysunek 3 i rysunek 4. W odległości 3 mm od krawędzi płytki znalazły się otwory montażowe.
Montaż zaczynamy od elementów lutowanych powierzchniowo, które znajdują się na wierzchniej stronie płytki (lokalizacja widoczna na rysunku 3). Następnie przechodzimy do elementów w obudowach przewlekanych, które są na spodniej stronie płytki – potencjometru P1, złącz, kondensatora C1, układów US3 i US1, a na końcu przekaźnika PK1 (widoczne na rysunku 4). Na końcu wlutowujemy złącze do wyświetlacza LCD (na stronie wierzchniej) oraz przyciski.
Zmontowany układ można zobaczyć na fotografii 1 i fotografii 2.
Po zamontowaniu wyświetlacza LCD w odpowiednim złączu, można dołączyć zasilanie. Napięcie musi mieścić się w granicach akceptowanych przez przekaźnik PK1, czyli w zakresie 10…16 V, po uwzględnieniu spadku napięcia na diodzie D1. Pobór prądu przez prototyp, po załączeniu przekaźnika i przy zasilaniu napięciem 12 V, wynosi 55 mA.
Do prawidłowego działania układ wymaga zaprogramowania pamięci Flash mikrokontrolera oraz zmiany fabrycznych bitów zabezpieczających na: Low Fuse = 0x24, High Fuse = 0xD9. Szczegóły konfiguracji pokazuje rysunek 5, czyli zrzut ekranu z konfiguracji bitów zabezpieczających programu AVR Burn-O-Mat.
Zaznaczona kratka, to bit zaprogramowany o wartości „0”. Dzięki temu, uruchomiony zostanie wewnętrzny oscylator RC o częstotliwości 8 MHz, z możliwie długim czasem rozruchu, oraz detektor zaniku napięcia zasilającego (Brown out detector), ustawiony na wartość około 4 V. Krótkotrwałe zaniki zasilania, spowodowane np. rozruchem pompy, nie będą groziły całkowitym zawieszeniem się programu.
Eksploatacja
Prawidłowo zmontowany i zaprogramowany układ, po włączeniu zasilania oraz ustawieniu kontrastu wyświetlacza potencjometrem P1, powinien wyświetlić na ekranie treść taką jak na fotografii 3.
Lewy górny róg to aktualna wartość ciśnienia (odświeżana co 500 ms) wraz z jednostką. Dolny lewy róg to zadana wartość ciśnienia. Prawy dolny róg został przeznaczony na wyświetlanie histerezy, a nad nią jest informacja o stanie przekaźnika (załączony/wyłączony).
Wciskanie przycisku S5, powoduje przełączanie jednostek między barami (bar), a funtami na cal kwadratowy. Układ zapamiętuje próg ciśnienia oraz histerezę oddzielnie dla obu tych jednostek. Zmiana żądanego progu ciśnienia, następuje po jednoczesnym wciśnięciu przycisku S3 oraz S1 lub S2, zależy czy chcemy tę wartość zwiększać, czy zmniejszać. Dłuższe przytrzymanie powoduje szybszą reakcję układu.
Histerezę można regulować w analogiczny sposób, lecz konieczne jest wciśnięcie przycisku S4 oraz S2 lub S1. Opatrzona jest symbolami „+/–”, ponieważ jest to odchylenie w górę i w dól od wartości zadanej. Przykładowo, po zadaniu ciśnienia 5,00 bar i przy histerezie ±0,1 bar, przekaźnik będzie się włączał poniżej 4,9 bar, a wyłączał powyżej 5,1 bar. Maksymalne ciśnienie wynosi 150 psi lub 10,34 bar, a maksymalna histereza, odpowiednio 7,5 psi lub 0,5 bar. Po zwolnieniu wszystkich przycisków, ustawione wartości są zapamiętywane w nieulotnej pamięci EEPROM.
Podczas przełączania przez przekaźnik obciążeń indukcyjnych, zwłaszcza o dużej indukcyjności, na wyświetlaczu mogą pojawić się różne symbole. Są to błędy w komunikacji na linii mikrokontroler – wyświetlacz, które wywołują iskrzące styki. Receptą może być dodanie prostego układu gaszącego RC, równolegle do wykorzystywanej pary styków. Wartości tych elementów nie są ściśle określone – proponuję, na przykład, rezystor 47 Ω/1 W oraz kondensator 100 nF X2.
Dla dociekliwych
Zastosowany typ czujnika, nie ma rozbudowanego zestawu komend sterujących. Można jedynie odczytać aktualny, szesnastobitowy wynik pomiaru oaz bity statusu. Czujnik sam odświeża te rejestry, nie trzeba wysyłać komendy nakazującej konwersję wyniku, jak ma to miejsce np. w popularnym czujniku temperatury DS18B20.
Warto wiedzieć, że zgodnie z deklaracją producenta, minimalne ciśnienie (czyli 0 psi) odpowiada 10% maksymalnej wartości wyjściowej, a maksymalne ciśnienie (150 psi) to 90% tej wartości. Dwanaście bitów, może przechować wartości z zakresu 0...16383, ale nie jest on w pełni wykorzystany. Rzeczywisty zakres wartości wyjściowych wynosi 1638...14746.
Wartość dolna może ulegać niewielkim fluktuacjom, związanym z niedokładnym skompensowaniem czujnika. Samoczynne zerowanie się układu nie jest jednak pożądane. W sytuacji, gdy zostanie on włączony, a w zbiorniku będzie jeszcze jakieś ciśnienie, to właśnie ta wartość zostanie przyjęta za nowe zero. Ręczne zerowanie też może nie być wystarczające, a na pewno może skomplikować obsługę – wyzerowanie podczas utrzymywania jakiegoś ciśnienia może być potem trudne do naprawienia.
Dlatego przyjęto stałą wartość „zerową”, która wynosi 1635. Jest ona odejmowana od wyniku pobranego z czujnika, jeżeli odczyt przekracza wartość zerową. Rozwiązanie powstało na bazie moich doświadczeń z czujnikami w innych projektach. Jedyną niedoskonałością może być przesunięcie zera o wartość rzędu 0,01 bar, podobnie jak miało to miejsce podczas wykonywania fotografii 3. Zważywszy na dokładność czujnika, który nie jest przyrządem doskonałym, to i tak niewielka wartość.
Michał Kurzela, EP
- R1…R9, R11…R14: 10 kΩ SMD0805
- R10: 1 kΩ SMD0805
- P1: 10 kΩ montażowy leżący
- C4: 220 μF/25 V raster 3,5 mm
- C2, C3, C5…C7, C9: 100 nF SMD0805
- C4, C8, C10: 10 μF/16 V SMD0805
- D1, D2: SS14
- LCD1: 2×16 znaków, zgodny z HD44780
- T1: BSS123
- US1: 7805 TO220
- US2: ATmega8A TQFP32
- US3: HSCDANN150PG2A5
- J1: ARK2/500
- J2: ARK3/500
- J3: goldpin 5 pin męski 2,54 mm THT
- PK1: RM50 12 V SPDT lub podobny
- S1…S5: microswitch 6×6 17 mm THT
- Listwa goldpin 16 pin 2,54 mm THT męska i żeńska do wyświetlacza