Mam zestaw przekaźników (5), które chcę uruchomić z mojego Pi. Używam przekaźników TE 5V, zasilanych z zestawów przekaźników dużej mocy Sparkfun, które wykorzystują tranzystor NPN do wyzwolenia przekaźnika.
Jak dotąd mam problem z tym, że nie mogę zmusić przekaźnika do zmiany. Czy styki wyjściowe GPIO nie dostarczają napięcia 5V? Myślałem, że Pi zrobił to w GPIO.
Odpowiedzi:
Dlaczego nie tak po prostu?
Raspberry Pi przełącza między 0 a 3 V3, więcej niż wystarcza do nasycenia Q1, co przejmuje „ciężką” pracę: włączanie / wyłączanie przekaźnika + 5 V. W zależności od używanych przekaźników mogą obowiązywać niewielkie modyfikacje D1 i Q1.
źródło
# Wprowadzenie #
OP chciałby użyć Rpi do bezpiecznego kontrolowania banku 5 modułów przekaźnikowych Beefcake Sparkfun . Miał problem, ponieważ poziom logiki Rpi GPIO wynosi 3,3 V, ale jego przekaźnik używa sterowania logicznego 5 V. Chce wiedzieć, jak zmodyfikować Rpi, aby obejść problem różnicy na poziomie logicznym. Jego wybory obejmują: użycie tranzystora BC5468 do napędzania cewki przekaźnika; uzyskanie przekaźnika izolacji optycznej i sterowanie nim za pomocą ULN2803; za pomocą sterownika źródłowego, takiego jak UDN2981, ...
Po zbadaniu proponuję teraz kilka rozwiązań, wraz z ich zaletami i wadami. OP może wybrać rozwiązanie po uwzględnieniu ryzyka, niezawodności, kosztów itp.
# Spis treści #
Rozwiązanie 1 - Modyfikacja opornika oporowego tranzystora NPN
Rozwiązanie 2 - Użycie UDN2981 w celu podwyższenia sygnału GPIO Rpi o wartości 3,3 V do 5 V.
Rozwiązanie 3 - Użycie 74HC03 i 74HC04 do przesunięcia sygnału GPIO Rpi o wartości 3,3 V do 5 V.
Rozwiązanie 4 - Używanie 74HCT125 do logicznej konwersji poziomów
Rozwiązanie 5 - Używanie TXS0102 do logicznej konwersji poziomu
Soution 6 - Używanie 2N2222 do logicznego konwertowania poziomu
Rozwiązanie 7 - Używanie 2N7000 do logicznej konwersji poziomu
FAQ1 - Jak zasilać Rpi i moduł przekaźnika i wiązać ze sobą masy
FAQ2 - Jak uniknąć problemu ze zmiennym wejściem
FAQ3 - Mój przekaźnik jest zawsze włączony, niezależnie od tego, czy sygnał wejściowy jest wysoki, czy niski, czy to dlatego, że niski sygnał Rpi Low nie jest wystarczająco niski?
FAQ3 - Mój niski sygnał GPIO GPIO nie może wyłączyć przekaźnika, ale wystarczy ustawić GPIO jako wejście. Czy jeśli to zrobię, zranię moje Rpi?
Sugestia dotycząca rozwiązywania problemów ze sprzętem
Sugestia dotycząca rozwiązywania problemów z oprogramowaniem
Referencje
# Rozwiązanie 1. Modyfikacja polaryzacji tranzystora NPN, aby był kompatybilny z 3,3 V #
Istnieją dwa ogólne typy rozwiązań:
(1) zmodyfikuj obwód wejściowy poziomu logicznego modułu 5 V, aby dostosować go do sygnałów 3,3 V,
(2) użyj logicznego konwertera poziomu od 3,3 V do 5 V, aby podnieść sygnały Rpi z 3,3 V do 5 V.
Teraz zaczynam od (1).
Dochodzenie
Moduł przekaźnikowy Beefcake Sparkfun ma tranzystor NPN 2N3904 (Q2) napędzający cewkę (U1). Jest przeznaczony do sygnałów logicznych 5 V Arduino.
Mam podobny moduł tranzystora NPN KY019, który może być napędzany sygnałami Rpi o napięciu 3,3 V. Sprawdziłem więc wymagania dotyczące sygnału wejściowego, aby dowiedzieć się, dlaczego KY019 może odbierać sygnały 3,3 V, ale Beecake nie.
Odkryłem, że KY-019 ma poziom wyzwalania 2,5 V i 0,1 mA . Sygnał ten jest wzmacniany przez tranzystor NPN do 50 mA, wystarczająco wysokiej, aby uruchomić cewkę w celu aktywacji przekaźnika.
Rpi GPIO (z wysokim poziomem powyżej 2,8 V i maksymalnym limitem prądu 16 mA) może wygodnie zasilać 4 mA, nie powinno być problemu z bezpośrednim sterowaniem modułem.
Czas reakcji cewki wynosi 10 ms. Zaprogramowałem pin 17 GPIO Rpi tak, aby przełączał moduł przekaźnika w czasie 40 ms (25 cps) i stwierdził, że przekaźnik szczęśliwie klika zgodnie z oczekiwaniami. (Używałem przewodów łączących o długości 2 metrów do sygnałów GPIO, więc sygnał na końcu wejścia przekaźnika jest nieco głośny.)
Jak zmodyfikować moduł Beefcake, aby był zgodny z logiką 3.3 V.
Tranzystor Beefcake NPN ma rezystor ograniczający prąd R2 o wartości 1K. Rezystor ten ogranicza prąd podstawowy na wysokim poziomie logicznym Arduino 5 V. Prąd podstawowy w granicach, po wzmocnieniu (zwykle hFE> 100), jest wystarczająco duży, aby pobudzić cewkę.
Obliczanie prądu Arduino 5V GPIO w module przekaźnikowym Beefcake:
Prąd Arduino i ~ (4 V [Arduino High] - 1 V [Vce (sat)]) / 1 K [R]) = 3 V / 1 K = 3 mA
Jednak wysoki logiczny sygnał Rpi jest niższy niż Arduino, więc odpowiedni ograniczony prąd jest mniejszy, a po wzmocnieniu nie jest wystarczająco duży, aby napędzać cewkę.
Prąd Rpi i ~ ((3 V [Rpi High] - 1 V) / 1 K = 2 mA
Modyfikacja jest prosta - wystarczy wymienić 1K R2 na mniejszy opornik, powiedzmy 510R.
Prąd Rpi i (po modyfikacji) = (3 V - 1 V) / 501R = 4 mA
Zgaduję, że edukacja opiera się na analizie obwodów i eksperymentach. Myślę, że moje przypuszczenie jest prawidłowe w 90%.
Ocena ryzyka
Chociaż tranzystor NPN 2N3094 o małym sygnale może być wykorzystywany do przełączania małych obciążeń, nie jest on tak niezawodny. Do przełączania przekaźników bezpieczniej jest stosować tranzystory mocy, takie jak SS8050, UDN2981, specjalnie zaprojektowane do obciążeń indukcyjnych.
OP chce bezpiecznej metody, która nie usmażyłaby jego Pi, więc ze względu na niezawodność najlepszym rozwiązaniem jest sterownik źródłowy, taki jak UDN2981.
/ ...
# Rozwiązanie 2 - Użycie UDN2981 do sterowania modułem przekaźnikowym Beefcake #
Komentarze wskazują, że moduł przekaźnikowy Sparkfun Beefcake w OP jest wyzwalaczem wysokiego poziomu, dlatego nie można użyć powszechnie stosowanego sterownika zlewozmywaka ULN2803. Zamiast tego należy zastosować sterownik podobny do ULN2803, ale zamiast źródła prądu pobierany jest prąd
Myślę, że UDN2981 jest odpowiednim sterownikiem dla modułu przekaźnika OP.
Z powodzeniem zweryfikowałem, że UDN2981 steruje modułem przekaźnika wysokiego poziomu podobnym do Beefcaka, a ULN2803 niskim wyzwalaczem. Poniżej znajduje się podsumowanie.
UDN2981 kontroluje moduły przekaźnikowe typu tranzystorowego NPN z wysokim wyzwalaczem
Najpierw ręcznie przetestowałem UDN2981, bez połączenia z Rpi, aby mrugnąć 4 diody LED, aby upewnić się, że obwód działa poprawnie.
Następnie skonfigurowałem 4 moduły przekaźnikowe typu tranzystorowego NPN (KY019) i podłączyłem 4 wejścia modułu przekaźnikowego do 4 wyjść kanału UDN2981.
Następnie podłączyłem 4 piny GPIO 3,3 V GPIO bezpośrednio do 4 kanałów wejściowych UDN2981. Użyłem następującej funkcji python, aby przełączyć 4 moduły przekaźnikowe przy 25 cps.
Wynik był dobry. 4 moduły przekaźnikowe klikają, a diody LED migają przy 25 cps zgodnie z oczekiwaniami. Sygnały wyjściowe Rpi GPIO pozostały w pobliżu 3,3 V, a sygnały wyjściowe UDN około 4,0 V, co oznacza, że żadne wejście nie zostało przeciążone.
UDN2981 sterujący optoizolowane moduły przekaźnikowe z wysokim wyzwalaczem
OP rozważał także zastosowanie optoizolowanych modułów przekaźnikowych, ponieważ są one bezpieczniejsze. Z powodzeniem użyłem tego samego UDN2981 do sterowania 4 wyzwalaczami wysokiego poziomu, optoizolowanymi modułami przekaźnikowymi (MK055).
W rzeczywistości UDN2981 może być używany do sterowania dowolnym rodzajem modułów High Trigger, niezależnie od typu tranzystora NPN lub optoizolowanych typów.
Jednak w przypadku modułów Low Trigger, niezależnie od tego, czy tranzystor PNP, czy optoizolowany, sterownik źródła UDN2981 nie działa, należy użyć ULN2803 lub innego sterownika sink.
ULN2803 kontroluje niskie tranzystorowe wejście tranzystorowe PNP lub optycznie izolowane moduły przekaźnikowe
Udało mi się zweryfikować, że sterownik zlewozmywaka ULN2083 może sterować 4 modułami optoizolowanych przekaźników z niskim wyzwalaczem. Najpierw przetestowałem ręcznie migające 4 diody LED, a następnie użyłem tej samej funkcji python powyżej, aby przetestować 4 moduły. Wyniki były również dobre.
Dyskusja
ULN2803 i UDN2981 Plusy i minusy
Plusy
ULN2803 i UDN2981 mogą być bezpośrednio sterowane sygnałem logicznym TTL lub CMOS przy napięciu zasilania 3,3 V lub 5 V.
Ich znamionowe wyjścia 500mA z diodami zaciskowymi są odpowiednie do przełączania przekaźników i silników krokowych.
Cons
ULN2803, a zwłaszcza UDN2981, nie są tak powszechne.
Mają 8 kanałów i dlatego mają większy pakiet 18-stykowy DIP. W przypadku mniejszej liczby kanałów bardziej powszechne i łatwiejsze w obsłudze są bardziej popularne 74HC03 / 04 lub 74HCT125 z 14-pinowym pakietem DIP.
# Rozwiązanie 3 - Wykorzystanie 74HC03 i 74HC04 do przesunięcia w górę sygnału GPIO 3,3 V GPIO #
Używanie UDN2981 do sterowania modułem przekaźnika jest dużym nadmiernym zabójstwem, ponieważ są one zaprojektowane z wbudowanymi diodami powrotnymi, aby bezpośrednio zasilać przekaźnik.
UDN2981 nie jest powszechny i nie jest przeznaczony dla początkujących. Dla początkujących bardzo popularne i tanie układy scalone bramek logicznych, bramki 74HC03 Quad NAND i inwertery sześciokątne HC04 mogą wykonywać tę samą pracę co UDN2981, przesuwając sygnały logiczne o wartości 3,3 V.
Z powodzeniem zweryfikowałem przesuwanie logiki HC03 i HC04 w górę z 3,3 V do 5 V i stwierdziłem, że działa ona zarówno dla wejścia tranzystorowego, jak i izolowanych optycznie modułów wyzwalających wysokiego poziomu.
# Referencje #
R1. Jak działa przekaźnik elektryczny? - TechyDIY
R2 Obwód przełącznika przekaźnika - samouczki elektroniczne
R3 Instrukcja podłączania przekaźników Beefcake - SparkFun
R4. Bufory cyfrowe i bufory trójstanowe - Poradniki elektroniczne
R5. Rezystory podciągające - poradniki elektroniczne
R6 Samouczek poziomów logicznych - SparkFun
Arduino Voh 4,2 V, vol. 0,9 V.
R7. Specyfikacja napięcia i prądu styków Rpi GPIO
Rpi Voh 2,4 V, objętość 0,7 V.
R8. Tranzystor bipolarny - poradniki elektroniczne
================
# A.3 Logiczny konwerter poziomu za pomocą HCT125 #
Przetestowałem więc inny konwerter up, HCT125. Z przyjemnością stwierdziłem, że działa dobrze. Przetworzony przez HCT125 sygnał 5V0 nie spadł po podłączeniu do modułu przekaźnika sterowanego tranzystorem NPN.
/ ...
Koniec załączników
** * Długa odpowiedź Do usunięcia * **
Ta długa odpowiedź jest zbyt długa i chaotyczna. Próbuję teraz usunąć niepotrzebne akapity i być może je zastąpić, zadając odpowiednie pytanie i odpowiadając na siebie.
Jak sprawdzić moduł fotoprzekaźnika / optycznego izolowanego przekaźnika
2.1 Typ wejścia tranzystora
W przypadku popularnego typu wejścia bipolarnego tranzystora NPN sygnał sterownika źródła (sygnał Rpi GPIO lub sygnał RPi GPIO po konwersji poziomu logicznego 3,3 V na 5 V) trafia do podstawy tranzystora poprzez szeregowy LED i rezystor polaryzujący.
Przykład modułu przekaźnikowego typu tranzystorowego (BJT NPN)
Istnieją inne nie tak popularne obwody przełączające przekaźnika, jak opisano w tym samouczku przełączania przekaźników
2.2 Typ wejścia transoptora
Przekaźnik typu wejściowego transoptora ma jako wejście wejściowy transoptor. Transoptor napędza kolejny tranzystor, który z kolei napędza cewkę przekaźnika.
Dodatek C - Logiczny konwerter poziomu wykorzystujący TXS0102
Teraz wiem, że Rpi GPIO może bezpośrednio sterować modułem przekaźnika, ale są dwa problemy. Po pierwsze, sygnał GPIO z długim przewodem łączącym jest głośny, dlatego nie jest tak niezawodny. Po drugie, dioda 1N4148 koła zamachowego może nie całkowicie całkowicie tłumić wstecznego pola elektromagnetycznego cewki, a jeśli na szczęście 1N4148 się zepsuje lub nie zostanie prawidłowo podłączony (słaby styk, złącze lutowane na sucho itp.), Tylny pole elektromagnetyczne może uszkodzić Rpi.
Postanowiłem więc użyć logicznego konwertera poziomów, aby przesunąć sygnał GPIO Rpi z 3V3 na 5V. Najpierw wypróbowałem konwerter TXS102 i stwierdziłem, że działa dobrze. Oprócz podniesienia siganl GPIO, hałas na wysokim poziomie jest również znacznie zredukowany.
Znalazłem jednak duży problem przy podawaniu przekonwertowanego sygnału 5 V GPIO do modułu przekaźnika. Przekaźnik nadal włączać i wyłączać jak poprzednio, z sygnałem 3v3, ale kiedy używany zakres sprawdzić przebieg, znalazłem bardzo zaskakujące, że sygnał 5V spadła o połowę, do 2.2V .
Podejrzewałem, że powodem było to, że TXS0102 może pochłaniać prąd znacznie lepiej niż prąd źródłowy do modułu przekaźnika. Aby zweryfikować moje przypuszczenie, podałem sygnał 5 V do innego modułu przekaźnika, typu rozwijanego transoptora, model MK01.
Tym razem znalazłem, że sygnał 5 V nie spadł żadnej zauważalnej kwoty.
Szybko doszedłem więc do wniosku, że moduł przekaźnikowy typu tranzystorowego NPN to zły wybór. Odtąd przestałbym testować tego rodzaju przekaźniki i przestawiłbym się na przekaźniki typu transoptora.
Testowałem również inny moduł sterownika transoptora MK101. Ten moduł ma zworkę do wyboru wyższego wyzwalacza lub niskiego wyzwalacza. Odkryłem, że w przypadku niskiego wyzwalacza TSX0102 nie zmienia poziomu konwertowanego sygnału 5V. Ale po wybraniu niskiego wyzwalacza poziom przetworzonego sygnału 5 V spadł do około 2,5 V, chociaż przekaźnik nadal działa.
Dodatek E - Logiczny konwerter poziomu wykorzystujący HC04
HCT125 nie jest tak powszechny. Wypróbowałem więc jeszcze jeden obwód konwertera, używając czterokierunkowej bramki NAND HC03 i inwertera sześciokątnego HC04. Kiedy testowałem wyjście HC04, stwierdziłem, że jest bardzo głośny. Domyślam się, że jednym z powodów było użycie zasilaczy dirrerent, jeden do rpi, drugi do konwertera. Nawet podłączyłem punkty uziemienia zasilaczy, aby stworzyć wspólny punkt, hałas nie zniknął. Następnie użyłem jednego zasilacza zarówno dla rpi, jak i konwertera, a szum zniknął.
Próbowałem sygnał wyjściowy HC04 dla modułu przekaźnika w trybie niskiego wyzwalania (który wymaga prądu opadającego, ale nie w trybie wysokiego wyzwalania (wymagającego prądu źródłowego)). Więc dodam bramę sześciokątną HC04 NIE, która może dostarczać prąd do moduł przekaźnikowy.
Dodatek F - Problem z pływającym wejściem przetwornika poziomu HC04
Ostatnim razem, gdy pierwszy raz wypróbowałem przetwornik poziomu oparty na HC03, na module przekaźnika z transoptorem odkryłem, że jeśli pozostawię wejście pływające, moduł wychwytuje szum, a przekaźnik włącza się i wyłącza szaleńczo. Myślałem, że częstotliwość może wynosić 1 kHz. Nie byłem pewien, czy jest to jakaś oscylacja pozytywnego sprzężenia zwrotnego. Ale kiedy użyłem lunety do sprawdzenia, zaskakująco okazało się, że było to 50 Hz! Myślę, że to jakiś rezonans. Ale nie wiem, jaka jest różnica między rezonansem a oscylacją. Być może powinienem znów zrobić gogle. W każdym razie myślę, że muszę gdzieś dodać rezystor podciągający / opadający.
Poniżej do skrócenia lub usunięcia
# Załączniki #
# A1. Optoizolowana / płytka modułu przekaźnika fotoprzekaźnika i schemat #
Optoizolowany moduł przekaźnika ma fotoprzetwornik, który jest 4 pinowym układem scalonym. Poniższy obrazek pokazuje photoCoupler PC1 (z 4 pinami oznaczonymi 1, 2, 3, 4 w kolorze zielonym) i tranzystorem Q1. Układy scalone nie zawsze są oznaczone. Na tym zdjęciu PC1 to EL354, a Q1 8050.
Łącza do diagramów
35 : https://i.stack.imgur.com/cWkRi.jpg
źródło