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ł 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 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 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ół-srawny 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. Wada 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 pominąłem.

bistable-relay-driver-schematic

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ą ;)

ESP8266: Spojrzenie na firmware

Pora na testowanie i zabawę z softem. Istnieje wiele różnych nieformalnych, otwartych projektów, dostarczających niezależne firmware dla modułów WiFi opartych na chipsecie ESP8266. Dlatego postanowiłem bliżej przyjrzeć się kilku wybranym. Pozwoli mi to co nieco zagłebić się w temat i spojrzeć, jak to wygląda od kuchni. A jak wiadomo takie rzeczy najlepiej poznaje się przy […]

ESP8266: Spojrzenie na hardware

Moje pierwsze spotkanie z ESP8266 lekko wprowadziło mnie w tematykę tego miłego modułu, ale nie zajmowałem się tam za bardzo samym sprzętem. Dlatego tym razem zerkam nieśmiało w tym kierunku. Głównie wokół prostych developerskich konstrukcji. Bo modułów istnieje cała gama, większe – mniejsze, dużo – mało wyprowadzeń, tanio – drogo… i jak tu wybrać jakąś […]

Lista małych życzeń

Wczoraj skończyłem 32 lata i tak sobie pomyślałem, że to dobry moment na uporządkowanie i zebranie w jednym miejscu różnych rzeczy jakie planuję i nie planuję zakupić, zdobyć, ukraść lub wejść w ich posiadanie innymi metodami. Kilka miesięcy temu myślałem o kilku rzeczach jakie byłymi potrzebne, które mógłbym sobie kupić lub nawet dostać od znajomych, […]

Własny zamiennik baterii do smartphone

Bateria w nowoczesnym telefonie trzyma krótko, nikogo to za bardzo nie dziwi. Postęp w tej części techniki jest powolny, acz widoczny, chociaż na pewno powolna jest miniaturyzacja i gęstość upakowania „prądu”. Jak to mowa fizyki nie przeskoczysz. Nowoczesne urządzenia przenośne do poprawnej i wygodnej pracy jednak trochę tej energii wymagają. Tudzież wi-fi, gprs, lte, 2 […]

C64 Control Port Devices Tester

Minęło trochę czasu od naprawy Superchargera, a ja do tej pory nie miałem czasu go przetestować. Planowałem do tego celu zbudować prosty układ, bo zapewne będę jeszcze nie raz reanimował zepsute joysticki. No i zbudowałem. Znalazłem kilka starych 9-cio pinowych gniazd D-SUB, prawdopodobnie pochodzące z jakiegoś starego klona popularnych w latach 90-tych gier video (konsol), […]

Supercharger SV-123: naprawa i reverse enginering

Dawno temu przytaszczyłem do stolicy mój stary komodorek w celu uruchomienia, eksperymentów i kilku sprzętowych (głównie) projektów. Z kilku względów dokupiłem magnetofonik i joysticka. Ale QuickJoy Supercharger SV-123 zakupiony na allegro nie do końca był sprawny. Jak dobrze pamiętam miał problemy z przyciskami „fire” (teraz zgaduję). Ale z braku czasu i problemów z rozebraniem, temat […]

Słynne układy: TL431

Istnieje wiele słynnych, a nawet kultowych i przełomowych, a przy tym prostych konstrukcji układów scalonych, które w jakimś stopniu przerosły oczekiwania twórców, stały się popularne i jakoś wywarły wpływ na rozwój elektroniki. A ponadto pomimo upływu wielu lat nadal są często stosowane w wielu profesjonalnych i amatorskich projektach. Obok najbardziej znanego timera 555 i op-ampa […]

AVR w Visual Studio

Visual Studio jest najlepszym środowiskiem IDE pod Windowsem. I nie tylko do windowsowych projektów czy współpracy z kompilatorami dołączonymi w zestawie. Samo IDE może być wykorzystane na różne sposoby, a szczególnie przy użyciu projektu typu Makefile, gdzie można podpiąć dowolne skrypty czy pliki make, używane do budowania projektu. Dosyć często z tej metody korzystałem w […]