Sterowanie przekaźnikiem bistabilnym (mostek H)

W kilku poprzednich numerach EdW (06-08/2016) pojawił się cykl artykułów na temat przekaźników bistabilnych oraz związane z nimi zadanie w Szkole Konstruktorów. Nie planowałem zabawy z tymi elementami, a tym bardziej udziału w Szkole, ale stało się inaczej (zachęcony wstępem w numerze sierpniowym, przekonałem się do działania). Dziwne, że przekaźniki bistabilne są dosyć mało popularne, pomimo pewnych zalet w stosunku do zwykłych monostabilnych przekaźników elektromagnetycznych. Główną ich cechą jest pamiętanie stanu, wystarczy krótki impuls napięciowy na cewkę, aby styki przekaźnika zmieniły swoje położenie i w nim pozostały, aż do kolejnego wyzwolenia.

Sterowanie impulsowe takich przekaźników jest bardzo ciekawe i zarazem trochę komplikujące układ wykonawczy. Ale dotyczy to tylko wersji tych przekaźników z pojedynczą cewką, gdzie należy zmienić polaryzację napięcia, aby przełączyć styki do stanu pierwotnego (przeciwnego). Bo w przypadku elementów z dwoma cewkami, to nie ma nawet o czym gadać – jeden tranzystor więcej i gotowe.

Jest wiele opcji sterowania, mniej lub bardziej interesujących, wykorzystujących różne triki. Kilka z nich przedstawiono w EdW, niektóre dla mało-żernych cewek, inne dla nieco większych. Ale dla mnie idealnym i słusznym układem sterowania jest mostek H, często wykorzystywany do sterowania silnikami DC. I na takich układach skupiłem swoją uwagę.

Jako przykładowy układ sterowania z mikrokontrolera, proponowany jest prosty układ mostkowy w poniższej konfiguracji:

mcu-bistable-relay

Sposób sterowania tranzystorów wydał mi się ciekawy, więc pokusiłem się o własną, podobną implementację, na dwóch parach komplementarnych tranzystorów bipolarnych:

my-h-brige

W sumie ktoś może zapytać, czy jest sens budować taki mostek, można przecież wykorzystać gotowe sterowniki i układy scalone zawierające podobne rozwiązania. Jak chociażby L293D, L298, czy SN754410… To prawda, ale cena takiego gotowego układu to jednak kilka złoty, a cena kilku tranzystorów i diod to kilka groszy. No i prócz waloru edukacyjnego, przede wszystkim chciałem wykorzystać jak najprostszy układ zbudowany z dostępnych pod ręką elementów, bez jakichkolwiek dodatkowych zakupów.

Jednym z warunków decydujących o wyborze konstrukcji i użytych elementów jest wymagana wartość prądu jaka będzie mostkiem przełączana. Mój przekaźnik bistabilny RMB851 polskiej produkcji, firmy Relpol, o rezystancji cewki wynoszącej około 28om, przy napięciu zasilania 5V będzie „ciągnął” około 180mA.

rmb851

Prąd ten nie jest duży. Może w porównaniu do zwykłych przekaźników jego wartość jest kilka razy większa, ale to tylko w impulsie przełączania, w spoczynku nic nie pobiera. I to wydaję się być fajnym rozwiązaniem dla różnych oszczędnych układów.

Przy wyższych prądach lepiej sprawdziłyby się tranzystory MOSFET, ale w tym przypadku zwykłe bipolarki w zupełności wystarczą. Nie mogę wykorzystać najpopularniejszych mało-sygnałowych tranzystorków serii BC547/548, bo ich maksymalny prąd kolektora to tylko 100mA. Ale podobne uniwersalne niskonapięciowe tranzystory ogólnego przeznaczenia produkcji „amerykańskiej” (2N2222/2907) i „japońskiej” (S8050/8550) nadają się idealnie. A takich w swoich zasobach mam pod dostatkiem.

Zdecydowałem się na wykorzystanie tranzystora 2N2222 i jego komplementarnego odpowiednika 2N2907. Ich prądy kolektora mogą sięgać do 600-800mA, wystarczająco jak na mój mały przekaźnik.

W sieci znalazłem porównanie kilku wersji mostka H zbudowanego na tranzystorach bipolarnych przez Davida Cook’a. Na jego stronie Robot Room w artykule „Bipolar Transistor HBridge Motor Driver” zaciekawił mnie poniższy wykres prezentujący drop-down na tranzystorach przy natężeniu prądu od 180mA w górę.

robotroom-hbrige-voltage

Postanowiłem sprawdzić, czy rzeczywiście w moim przypadku będzie podobnie. W sumie 70% nominalnego napięcia z 5V to 3,5V, czyli tyle ile wynosi minimalne potrzebne napięcie cewki potrzebne do przełączenia przekaźnika. To już granica. A potencjalny spadek napięcia na zasilaniu (przy obciążeniu) lub jakieś fluktuacje zasilania mogą uniemożliwić poprawne działanie układu.

Zbudowałem testowy układ na płytce stykowej, jako obciążenie posłużył jakiś stary (z demobilu) na wpół-sprawny 7-segemntowy wyświetlacz LED, którego mogłem katować do woli. Za pomocą 1k rezystora ustaliłem punkt pracy tranzystora, a raczej polaryzację bazy w okolicach 4-5mA. Bez problemu tranzystory wchodziły w pełne przewodzenie, a przy obciążeniu 200mA, napięcie nasycenia na złączach CE wynosiło około 0,2-0,3V, co daje około 0,6V na parę.

my-h-brige-breadboard

Niezły wynik, nawet jeśli wzrosłoby do 1V to i tak zapewniłoby dostateczny potencjał napięcia na obciążeniu. Przy 2k omowym rezystorze, dwa razy mniejszy prąd bazy, napięcie Usat na złączu kolektor-emiter znacznie wzrosło, dla niektórych egzemplarzy do ponad 0,5V. Taka wartość może być trochę za wysoka, więc pozostałem przy 1k.

Dane te potwierdzają charakterystyki zawarte w katalogach. Przy prądzie kolektora na poziomie 200mA bez problemu wzmocnienie prądowe powinno wynosić znacznie powyżej 100.

pn2222a-hfe

A pozostałe parametry, jak napięcie saturacji w stanie nasycenia powinny pokrywać się z danymi jakie osiągnąłem w testowym układzie.

pn2222a-usat

Ciężko znaleźć dobry datasheet zawierający niezbędne wykresy charakterystyk do tak popularnych tranzystorów, produkowanych przez większość producentów półprzewodników, do tego pod różnymi oznaczeniami. Niestety, sam nie mogę zidentyfikować producenta swoich egzemplarzy. Ale dobrą dokumentację znalazłem w katalogach On Semiconductor. Choć tutaj występuje kilka różnych wersji: MPS2222A, P2N2222A, PN2222A, 2N2222A i adekwatnie dla 2N2907.

Dodatkowa uwaga odnośnie wyprowadzeń, bo też się na to naciąłem. W niektórych wersjach z literką P na przodzie – P2N w obudowie TO-92 zamieniono kolejność wyprowadzeń:

2n-pn-p2n-to92

Nie mogłem się nadziwić i znaleźć przyczyny, czemu mój 2N2907 ma napięcie saturacji wynoszące aż 5V, przy 50mA prądzie bazy. A tu niespodzianka, pomyliłem emiter z kolektorem, mimo iż wiedziałem i dokładnie sprawdzałem wyprowadzenia przy montażu.

Bez problemu układ również powinien działać z tranzystorami S8050 i S8550, charakterystyki w tych punktach pracy są do siebie zbliżone, a na pewno przewyższają minimalne wartości, jakie w tym układzie są wymagane.

s8050-hfe-usat

Wracając do mojego układu mostka, na którym dotychczas przeprowadzałem eksperymenty, ma on niewątpliwe jedną wielką zaletę. Jest odporny na przypadkowe wysterowanie dwóch sygnałów jednocześnie. Wtedy jedynie dolne tranzystory będą przewodzić, nie wystąpi żadne zwarcie szyn zasilających oraz zmiana stanów przekaźnika. Wadą jest niestety pobór prądu, niezalenie od pracy mostka, w stanie spoczynku jak i pracy, wybrane 2 tranzystory będą zawsze przewodzić, co pociąga za sobą przepływ 2 x prądu bazy przez złącze BE, czyli 8-10mA.

Idealnie byłoby gdybym sterował każdym tranzystorem osobno, jak przy typowej współpracy mostka z silnikiem elektrycznym. Wtedy pełna kontrola nad tranzystorami spoczywa w moich rękach, ale to wymagałoby aż 4 wyjść sterujących, na co nie mogę sobie pozwolić w tak prostym układzie. Więc trzeba kombinować dalej.

Dodatkowym problemem jest to, że układ taki będzie mógł współpracować tylko z przekaźnikiem zasilanym takim samym napięciem co mikrokontroler. Przy wyższym napięciu przekaźnika, nie będzie możliwe poprawne zatkanie tranzystorów PNP, które ciągle będą przepuszczać prąd na kolektorze.

Akurat ten problem da się łatwo wyeliminować wykorzystując wyjścia z otwartym kolektorem lub drenem. Każdy obecnie mikrokontroler umożliwia skonfigurowanie dowolnego GPIO w trybie wyjścia do pracy w takiej konfiguracji.

my-h-brige-open-collector

Nie jest to idealne rozwiązanie, trochę prądu teraz dodatkowo będzie się marnowało w gałęzi z rezystorem podciągającym. Nie jest to jakiś wielki problem, ale wpadłem na pomysł, aby jeden z tranzystorów w gałęzi sterować z wyjścia przeciwległej pary. A dodatkowo sterując dolnymi tranzystorami NPN, mogę zapomnieć o otwartym kolektorze i bezpośrednio sterować pracą tych tranzystorów. Poziom wysoki nawet przy dużo niższym napięciu zasilania procka wystarczy, aby wprowadzić tranzystory w stan pełnego przewodzenia.

Ostatecznie zdecydowałem się właśnie na taki układ. Być może warto byłoby dorzucić kilka rezystorów podciągających, aby w stanie spoczynku bazy tranzystorów PNP były spolaryzowane napięciem dodatniej szyny zasilającej. Ale przy testach nie było to konieczne, więc w finalnej wersji je także pominąłem.

bistable-relay-driver-schematic

W stanie spoczynku żadne tranzystory nie przewodzą, na wejściach I1 i I2 panuje stan niski, na wyjściach O1 i O2 występuje stan wysokiej impedancji i przekaźnik nie działa. Podanie stanu wysokiego na wejście I1 spolaryzuje bazę tranzystora T1, który przejdzie w stan nasycenia zwierając jedno z wyjść (O1) z masą. Potencjał masy w punkcie O1 spolaryzuje złącze baza-emiter przeciwległego tranzystora T4, który przechodząc w stan nasycenia poda na drugie wyjście (O2) potencjał dodatni napięcia zasilającego. Pojawienie się napięcia na wyjściu układu, pozwoli włączyć przekaźnik. Analogicznie będzie wyglądać sytuacja przy wysterowaniu drugim sygnałem.

Mała uwaga! Należy brać pod uwagę fakt, że układ nie ma żadnego zabezpieczenia i nie należy w tym samym momencie wysterować obu wejść, gdyż doprowadzi to do zwarcia szyn zasilających.

W układzie zastosowałem tranzystory 2N222 i 2N2907, rezystory 1k i diody 1N4148 gaszące przepięcia powstające w cewce przekaźnika. Przy nieco większych, indukcyjnych obciążeniach, pewnie lepszym wyborem byłaby jakaś szybka dioda Schottky’ego, na przykład popularna 1N5817. Przy wykorzystaniu MOSFET-ów można byłoby pominąć diody zabezpieczające, bo posiadają one wewnętrzne diody.

Jak uda mi się polutować układ na płytce drukowanej to dorzucę kilka zdjęć.

Całość zbudowałem na płytce uniwersalnej typu perfboard, dla której rozmieszczenie ścieżek projektowałem standardowo po części na kartce i przy użyciu DIY Layout Creator. Poniżej widok z rozmieszczeniem elementów i ścieżki.

Samą płytkę uniwersalną trochę zmodyfikowałem, wprowadzając nieco większe przerwy między ścieżkami bloku sterowania i obwodami przełączanymi. Przekaźnik może operować na znacznych napięciach i prądach, więc warto zadbać o to, aby dobrze odizolować te bloki i pojedyncze ścieżki. Ma to wielkie znaczenie przy przełączaniu na przykład obwodów napięcia sieci energetycznej 230V.

Podobnie przy lutowaniu, obwody te dodatkowo wzmocniłem kawałkiem drutu (miedzianego/srebrzanki), aby dostosować ich grubość (przekrój) do spodziewanego napięcia i prądu jaki będzie w nich płynął.

Pobór prądu w czasie przełączania może być znaczny, więc jeśli źródło zasilania nie będzie posiadało wystraczającej wydajności, dobrym pomysłem jest dorzucenie kondensatora elektrolitycznego o znacznej pojemności w pobliżu przekaźnika. Powinno to zniwelować ewentualny spadek napięcia i wspomóc dostarczenie wymaganej porcji energii do prawidłowej pracy cewki przekaźnika.

Przy okazji, może nie wszyscy zdają sobie sprawę, ale najbardziej popularne tranzystory ogólnego przeznaczenia jak BC548, 2N222, czy S8050 wraz ze znaczną częścią ich rodziny powstały w latach ’60 ubiegłego wieku. Ciągle są w produkcji i nadal bardzo chętnie używane nie tylko przez amatorów. Ich cena jest bardzo mała, przy większych zakupach, można zejść do kilku groszy, centów per sztuka. Można uznać, że są to kolejne kultowe elementy elektroniczne, które pomimo upływu wieku, dobrze się trzymają i nie starzeją ;)

15 przemyśleń nt. „Sterowanie przekaźnikiem bistabilnym (mostek H)”

  1. Wadą jest niestety pobór prądu, niezalenie od pracy mostka, w stanie spoczynku jak i pracy, wybrane 2 tranzystory będą zawsze przewodzić, co pociąga za sobą przepływ 2 x prądu bazy przez złącze BE, czyli 8-10mA.

    Nie rozumiem dlaczego dwa tranzystory zawsze będą przewodzić? 10mA to duża strata prądu jeżeli układ ma być zasilany z baterii. Możesz to wyjaśnić?

    1. Sprawa dotyczy mojego pierwszego układu (schemat 1-2), gdzie oba tranzystory (danej pary) są sterowane tym samym sygnałem. Wtedy, gdy jeden przewodzi, drugi jest zatkany, przy 1-nce będzie to NPN, a przy 0 PNP. Pary są dwie w mostku, dlatego zawsze dwa tranzystory, niezależnie od sygnałów sterujących będą w stanie przewodzenia (w spoczynku będą to oba PNP).

  2. Nie jest to idealne rozwiązanie, trochę prądu teraz dodatkowo będzie się marnowało w gałęzi z rezystorem podciągającym.

    Czy ja dobrze myślę, że strata prądu w gałęzi z rezystorem pociągającym będzie zależała od tego jaki użyjemy rezystor? Przy rezystorze 10 kOm i napięciu zasilania 5V strata prądu będzie wynosić 0.5 mA (J = 5V / 10 kOm = 0.0005 A).

    W Twoim ostatecznym schemacie nie widzę rezystora pociągającego tzn. że i strat prądu nie będzie?

    1. Tak, wartość prądu w tej gałęzi będzie zależeć od wartości rezystora podciągającego.

      W moim ostatecznym rozwiązaniu, zrezygnowałem z sterowania przez wyjścia typu open-collector (nie było to potrzebne), a przeciwsobne tranzystory steruję z wyjścia przeciwległej pary. W stanie spoczynku żadne tranzystory nie przewodzą, wiec nie będzie strat prądu. Tranzystory NPN na bazie mają napięcie bliskie zeru (linie sterujące na 0), a PNP nie są w ogóle wtedy „podłączone”, gdyż wyjście układu znajduje się w stanie wysokiej impedancji. Brak rezystorów podciągających na PNP mogłyby prowadzić do jakiś stanów nie ustalonych, ale wydaje mi się to mało prawdopodobne, nie zawyżyłem również żadnych takich problemów w działającym modelu.

  3. Nie mogę zrozumieć jak płynie prąd w ostatecznej wersji mostka. Zaznaczyłam w nim wejście 1 i 2 https://postimg.org/image/dz8gebb6h/

    Wydaje mi się, że sterujesz nim podając stan wysoki na bazę dolnych tranzystorów npn. Tylko czy podanie stanu wysokiego na wejście 1 automatycznie uruchamia górny tranzystor pnp? Czy w tym samym czasie na wejście 2 musi być podana masa? Górne tranzystory otwierają się po skosie w stosunku do dolnych?

    1. Tak, sterowanie odbywa się sygnałem wysokim, w spoczynku na wejściach jest zero. Tranzystory otwierają się po skosie, podając na wyjście układu odpowiednie potencjały zasilania.

      Poprawiłem schemat dodając kilka oznaczeń elementów oraz wejść i wyjść w układzie. A także, krótki opis działania układu. Mam nadzieję, że to rozwieje wszelkie wątpliwości.

        1. Dzięki, poprawiałem wcześniej opis, ale chyba nie zapisałem zmian ;)

          Układ ma być sterowany głównie z mikrokontrolera (ewentualnie innych cyfrowych układów), więc w tym wypadku nie ma potrzeby sprzętowego zabezpieczenia. Oczywiście można nieco rozbudować układ o jakieś zabezpieczenie, gdy nie ma możliwości dostosowania, modyfikacji istniejącego sterownika do współpracy z tym układem wykonawczym.

    1. W układzie użyłem przekaźnika RMB851 (dodałem info w notatce). Kupiłem go na allegro, bo nigdzie w swojej okolicy (Warszawa) nie mogłem znaleźć i dostać podobnego od ręki ;)

  4. Twój przekaźnik jest 5V? Widzę, że są jeszcze wersję z cewką 3V. Teraz mam problem z wyborem. Myślisz, że 3V przekaźnik będzie lepszym wyborem do sterowania z arduino pro mini 3.3V? Czy lepiej kupić przekaźnik 5V i spróbować go zasilić z 3.3V?

    RMB851-2021-35-1003 3V
    RMB851-2021-35-1005 5V

    1. Używam wersji 5V. Możesz użyć tego, co Ci odpowiada, tyle że im mniejsze napięcie nominalne, tym większa rezystancja cewki i większy prąd potrzebny do załączenia przekaźnika. Wedle danych producenta, minimalne napięcie zadziałania to 70% zasilania, wiec dla wersji 5V jest to 3,5V, ale jak wspomniałem w notatce, dla pewności i stabilności lepiej nie schodzić do tej granicy.

      Jeśli nie czytałeś, to polecam lekturę artykułów o przekaźnikach bistabilnych z EdW.

  5. Właśnie dowiedziałem się, że Relpol zakończył produkcję wszystkich przekaźników bistabilnych. Przedstawiciel powiedział, że były z nimi jakieś problemy techniczne. W związku z tym będę musiał kupić przekaźnik bistabilny innego producenta. Szkoda, że przekaźniki bistabilne Relpol nie będą już produkowane.

  6. Witam, szybkie pytanie. Czy za pomoca Pana układu (czy też gotowego mostka H) bedzie możliwe również sterowanie przekaźnikiem za pomoca przycisku ‚dzwonkowego’? Podajac stan wysoki (5V) na wejście I1?
    Pozdrawiam

    1. Tak, będzie możliwe, wystarczy krótkim impulsem wysterować jeden z tranzystorów… Można też iść dalej i jeśli są przełączniki to na nich oprzeć bezpośrednie sterowanie przekaźnika. Wszakże w bistabilnych wystarczy podać tylko odpowiednio krótki impuls na cewkę, aby zmienić stan przekaźnika.

      Chyba nawet był jakiś przykładowy schemat ze sterowaniem przełącznikowym w artykułach opisujących przekaźniki bistabilne w EdW.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *