Pytanie:
Dlaczego tranzystor bipolarny nie działa, a MOSFET działa
GMc
2020-03-11 15:00:09 UTC
view on stackexchange narkive permalink

W odniesieniu do mojego pytania Zasilacz kontrolowany przez Arduino, aby uzyskać więcej informacji i program testowy.

Dlaczego mój obwód z tranzystorem nie działa (patrz poniżej), podczas gdy podobny obwód z tranzystorem MOSFET działa?

Poza tym, dlaczego jest tak, że po odcięciu zasilania w obwodzie opartym na tranzystorze, Arduino umiera natychmiast, podczas gdy w obwodzie opartym na MOSFET, Arduino stopniowo zanika w ciągu 3-4 sekund? Kiedy mówię, że „gaśnie”, diody LED przygasają w ciągu tych 3-4 sekund. To tak, jakby istniała jakaś pojemność, która utrzymuje go do wyczerpania ładunku - ale nie występuje to w obwodzie opartym na tranzystorze.

Ideą tego obwodu jest maksymalizacja żywotności baterii 9 V zasilającej Arduino. Chodzi o to, aby umożliwić zewnętrznemu zdarzeniu fizycznemu (naciśnięcie S1) zasilenie Arduino. Następnie Arduino, za pośrednictwem Pin D2, utrzyma zasilanie po zwolnieniu S1 do czasu, gdy zrobi to, co musi. Wreszcie Arduino obniży Pin D2 do stanu niskiego, aby odciąć zasilanie.

Poniżej znajdują się dwa schematy obwodów.

Po pierwsze obwód oparty na tranzystorze - który nie działa (Arduino umiera natychmiast po zwolnieniu S1 - i umiera natychmiast).

Transistor based Arduino power management

Po drugie, obwód oparty na MOSFET - który osiąga pożądany rezultat, ale Arduino stopniowo „zanika”, gdy D2 spada. To jest w porządku, ale byłoby lepiej, gdyby Arduino wyłączało się znacznie szybciej.

enter image description here

Czy wiesz, że T w MOSFE ** T ** oznacza ** tranzystor **?Jeśli napiszesz „Tranzystor bipolarny” lub „Tranzystor NPN”, tytuł będzie miał więcej sensu.
ŻADNY OBWÓD NIE POWINIEN DZIAŁAĆ.Wygląda na to, że cct MOSFET działa to fuks.Wyłączenie jest prawdopodobnie osiągane przez wyciek przez diodę.||W obu przypadkach napęd podstawa / bramki POWINIEN być wyższy niż Vin, ale w obu przypadkach napięcie podtrzymania diody jest w najlepszym przypadku spadek diody PONIŻEJ Vin.||Pracować.Użyj tranzystora PNP lub mosfetu z kanałem P.Pociągnij podstawę / bramę nisko, aby włączyć.Trzymaj się nisko, aby pozostać włączony.Pozwól rezystorowi wyciągnąć wysoko nasadkę, aby się wyłączyć.Aby uzyskać poprawną polaryzację, możesz potrzebować drugiego tranzystora do sterowania wyłącznikiem głównym.
@bimpelrekkie teraz, kiedy o tym wspomniałeś, wiedziałem o tym.Odpowiednio zaktualizuję tytuł.Dzięki.
Zobacz stronę 11 https://www.qrp-labs.com/images/news/dayton2019/FDIM2019ConfProceedings.pdf, aby zobaczyć wersję tego, która wydaje się faktycznie działać - jednak wymaga dwóch tranzystorów :)
@hobbs masz na myśli, że właściwie * prawie * mam rację?To najbardziej zabawna rzecz, jaką słyszałem przez cały rok!Porozmawiajcie o przywrach !!!!Spróbuję odtworzyć ten obwód.Dzięki za OGROMNĄ wskazówkę!
@RussellMcMahon jest bardzo poprawny, prawidłowa topologia, na którą powinieneś zwrócić uwagę w swoim obwodzie, to coś, co jest powszechnie określane jako „konfiguracja przełącznika strony wysokiej”.Które można domyślnie podciągnąć, wyłączając w ten sposób swoje arduino.A po naciśnięciu włącznik jest związany, chwilowo przez wyłącznik a potem przez kołek D2.Aż do momentu, gdy zostanie zwolniony z powrotem do stanu podniesionego, aby zamknąć wszystko.
P1: WAŻNE: w istniejącym obwodzie, który działa, jakie jest napięcie na Arduino „Vin”, gdy Arduino jest uruchomione.|P2: Czy Vcc = 5 V?(prawdopodobnie tak).
@RussellMcMahon Podłączyłem woltomierz z pinu 3 (prawy skrajny pin patrząc na Q1 od przodu i widzę poprawnie zorientowane numery części) do masy.Pin 3 na Q1 prowadzi do VIN.Kiedy wciskam przycisk, napięcie na chwilę skacze do 9V, po czym po krótkim czasie (~ .5sek) spada do 5V.Myślę, że dzieje się tak, gdy Arduino podnosi D2.Wydaje się, że w tym momencie napięcie zaczyna zanikać.Kiedy D2 spada, prawdopodobnie wynosi 4,5 V i nadal powoli zanika - może 30 sekund, aby osiągnąć <0,5 V.Jeśli wyjmę baterię, szybciej wyblaknie.Spróbuję niektórych sugestii za dzień lub dwa.
@GMc - Ah Vcc = 9V - tak powiedziałeś.:-) -> To dlatego działa po modzie - MOSFET spada przynajmniej Vgsth lub w tym przypadku około 4V + Więc z 9V zostaje 5V.||Jeśli użyjesz moich obwodów, uzyskasz spadek poniżej 0,5 V z tranzystorami bipolarnymi i mniejszy z odpowiednim MOSFET-em.
Osiem odpowiedzi:
Bimpelrekkie
2020-03-11 15:21:29 UTC
view on stackexchange narkive permalink

Nie jestem przekonany, że jest to najbardziej elegancki obwód / metoda osiągnięcia tego, co chcesz (włączanie / wyłączanie Arduino). Więcej na ten temat poniżej.

W każdym razie sądzę, że główna różnica między obwodami polega na tym, że tranzystor NPN potrzebuje (małego) prądu bazowego, aby przewodzić. Ten prąd bazowy może płynąć tylko wtedy, gdy ładowany jest C1 (22 nF). Ponieważ C1 ma bardzo małą wartość, ładowanie zajmuje tylko chwilę, potem nie ma już prądu podstawowego, Q1 wyłącza się, Arduino zatrzymuje się, ponieważ nie ma napięcia zasilania.

MOSFET nie potrzebuje prądu, potrzebuje tylko voltage. Bramka MOSFET jest izolowana, więc prąd nie może płynąć. Jedynym sposobem ładowania C1 jest leakage current D1. Wow, to przerażające, poleganie na prądzie upływu diody! Żaden doświadczony projektant obwodów nie zrobiłby tego z własnej woli.

W sumie twój obwód mnie przeraża, nigdy bym tego nie zrobił. Co bym wtedy zrobił? Po pierwsze, zezwolenie na włączanie / wyłączanie własnego zasilania przez jakiś obwód jest zawsze trochę przerażające i właściwie niepotrzebne. Zrobiłem projekt, w którym Arduino działa na 2 bateriach AA szeregowo i jest stale podłączone do baterii. Te baterie AA wystarczają na ponad rok.

W tym celu usunąłem układ regulatora napięcia na płycie Arduino (pozostawiając go na miejscu i użycie pinu zasilania 3,3 V może również działać), a następnie zaprogramowałem Arduino tak, że przez większość czasu przechodzi w tryb sleep . W trybie uśpienia zużywa bardzo mało energii.

Proponuję znaleźć podobne projekty Arduino zasilane bateryjnie i zobaczyć, jak to robią, a następnie zrobić to samo.

Zobacz mój komentarz do odpowiedzi OP.Jego oryginalny cct działa tylko przez fuksa z MOSFETem i nie może pracować z bipolarnym.Wyłączenie MOSFET-u jest prawdopodobnie spowodowane wstecznym upływem diody !!!
@RussellMcMahon * Wyłączenie MOSFET jest prawdopodobnie spowodowane wstecznym upływem diody !!! * Ahem, zobacz moją odpowiedź: * Jedynym sposobem ładowania C1 jest prąd upływowy D1 *
Zgadzamy się :-).Nie widzę, jak FET kiedykolwiek się włącza.Ma Vgsth 4+ woltów, ale nie ma oczywistego sposobu, aby NIGDY nie był przesunięty do przodu.Podejrzewam, że to, co robi, różni się od CCT.||Nie mam problemu z samoczynnym wyłączaniem się cct i używałem ich w różnym czasie.Jeśli Twoim jedynym celem była ATMega, tryb uśpienia jest wystarczająco skuteczny.Inne obwody mogą być mniej elastyczne.Wiem, że o tym wiesz.Obwód z dwoma tranzystorami jest zwykle najwygodniejszy, więc przełącznik znajduje się po stronie wysokiego napięcia i reaguje na sygnał wysokiego i wysokiego stanu wstrzymania.Drugi tranzystor jest wyzwalany w stan wysoki i ustawia bramkę przełącznika / podstawę w stanie niskim.
@RussellMcMahon NMOS nigdy nie włącza się do końca, kiedy przełącznik jest zamknięty, a następnie dren bramki jest zwarty, więc NMOS staje się „diodą NMOS”, co oznacza, że spadnie nieco bardziej niż jego \ $ V_ {próg} \ $.Możesz również uznać to za wyzwalacz źródła, w którym bramka jest pod napięciem zasilania.Po otwarciu przełącznika 22 nF utrzymuje tę sytuację (Vgd = 0), ale jest natychmiast ładowany przez D1.Mógłbym być zadowolony z obwodu samoczynnie wyłączającego się za pomocą PMOS.W przypadku NMOS musiałbyś zmienić masę, która prosi o kłopoty.
Zgadzam się z Tobą, że nie jest to najbardziej eleganckie rozwiązanie (nie działa tak, jak bym chciał), ale muszę się trochę nauczyć - stąd moje pytanie.Dziękuję za twoje, @russellmcmahon i inne odpowiedzi.Będę dalej eksperymentować i mam nadzieję, że po drodze nie zabiję ani nie okaleczy żadnych niewinnych Arduino!
@GMc Nie chodzi o to, że nie jest to „najbardziej eleganckie” - jest wspaniałe jako pierwsza próba rozwiązania tego samodzielnie, ale jest na tyle błędne, że prawdopodobnie niespodziewanie zakończy się niepowodzeniem.|| Q!Jakiego MOSFET-u używasz - prawdopodobnie nie tego, który pokazujesz, ponieważ nie powinien w ogóle działać.||P @: Po włączeniu jakie jest napięcie na pinie Arduino Vin?- czy naprawdę jesteś z tego zadowolony?
@RussellMcMahon Dzięki za "wzrost morale" :-).Etykieta na opakowaniu brzmi „IRF540N”.Następnie następna linia zawiera „I”, potem jakiś zabawny symbol, a następnie „R” (prawdopodobnie jakieś logo firmy), a następnie „P752P”.Ostatnia linia brzmi „IKWY”.Dodałbym zdjęcie, ale nie wiem, jak to zrobić w komentarzu.
@GMc Jestem (nadal) zaskoczony, że w ogóle działa.Powyższe pytanie Q @ (powinno być Q2 :-)) jest nadal bardzo interesujące.Q1 (mosfet lub bipolar) działa jako „podążający za emiterem”.W przypadku MOSFET-u spadek Vds wynosi około Vgsth - napięcie włączenia.W przypadku IRF540 POWINNO wynosić około 3 lub 4 V!- pozostawiając tylko około 1 lub 2 V dla Arduino!||Zobacz moją odpowiedź na obwód, który powinien działać dobrze.
pjc50
2020-03-11 15:21:40 UTC
view on stackexchange narkive permalink

Tranzystor wymaga, aby baza miała wyższe napięcie niż emiter do włączenia. Jednak gdy moc z przycisku zanika, widać, że jedyne napięcie, które jest podawane na podstawę ... pochodzi z emitera! (przez Arduino i jego diodę, ale nadal: to tylko gwarantuje, że napięcie bazowe jest niższe niż napięcie emitera).

Tranzystory bipolarne wymagają ciągłego przepływu prądu. Gdy tylko zostaną pozbawione prądu płynącego przez bazę, wyłączają się.

W przypadku MOSFET tranzystor jest podtrzymywany przez swoją własną pojemność. Właściwie nie ma innego sposobu, w jaki można go wyciągnąć nisko, niż przez przeciek z powrotem przez diodę. Prąd nie płynie od bramki ani do odpływu, ani do źródła.

Podejście tranzystorowe mogłoby prawdopodobnie zadziałać, zmieniając go na PMOS, który wymaga trzymania nisko, aby włączyć.

Edycja: symulacja Falstada z Arduino zastąpionym przewodem, który pokazuje, że początkowo włącza się (impuls przez C1), a następnie bardzo powoli wyłącza się jako wyciek przez diodę. Falstad nie symuluje upływu kondensatora, co również może mieć znaczenie.

Zobacz mój komentarz do odpowiedzi OP.Jego oryginalny cct działa tylko przez fuksa z MOSFETem i nie może pracować z bipolarnym.Wyłączenie MOSFET-u jest prawdopodobnie spowodowane wstecznym upływem diody !!!
Russell McMahon
2020-03-12 06:56:04 UTC
view on stackexchange narkive permalink

Poniższy obwód zrobi, co chcesz.
Bezpośrednia wymiana na odpowiednie tranzystory MOSFET również zadziała.
Wartości komponentów są prawidłowe, jak pokazano, ale można je zmienić w celu optymalizacji wyników.

Wiele innych małych tranzystorów bipolarnych zrobi to, co chcesz, ale te, które pokazałem (zwłaszcza BC327-40), są lepiej dostosowane do tego zadania niż wiele. Sufiks „-40” oznacza, że ​​ma duże wzmocnienie prądowe, a BC327 / BC337 mają wyższą zdolność przenoszenia prądu i niższy Vsat (minimalny obrót Vce) niż większość innych małych tranzystorów bipolarnych. Pomimo mniej powszechnego przyrostka BC są one szeroko dostępne na całym świecie.

BC327-40 obsługuje 100 mA i ma spadek napięcia o około 0,3 V.
MOSFET o odpowiednio niskim poziomie Rdson spowoduje minimalny spadek napięcia w tej samej roli.

Dodatnie wejście na D2 lub D1 uruchomi lub utrzyma obwód włączony.
Q1 włączający włącza Q2.

W razie potrzeby opóźnienie wyłączenia można dodać, dodając kondensator od podstawy Q1 do masy. MOSFET w tej lokalizacji pozwoli na znacznie wyższą wartość R1, wydłużając opóźnienie wyłączenia dla danego C1.

schematic

symuluj ten obwód - schemat utworzony przy użyciu CircuitLab

Oto wersja MOSFET-u.
R1 & R2 w obwodzie bipolarnym nie są potrzebne.
R4 i C1 ustawiają stałą czasową wyłączenia - około 0,1 sekundy, jak pokazano - więc czas wyłączenia wynosi od 0,1 do kilku dziesiątych sekundy w zależności od FET (niższe Vgsth = dłuższy czas wyłączenia).
Można użyć wielu tranzystorów MOSFET - pozostawiłem standardowe ustawienia domyślne circuitlab na miejscu, ale mają one znacznie większe możliwości prądowe i napięciowe niż potrzeba, większe Rdson niż to konieczne, a Vgsth jest OK dla 5 V i nie wystarczająco niskie dla pracy 3V3.

schematic

zasymuluj ten obwód

Głosowałem za tą odpowiedzią, więc mam nadzieję, że pozostanie na szczycie.Ten obwód również działał bardzo dobrze.Jednak do tej pory testowałem tylko wersję tranzystora BiPolar.
@GMc "Przycisk", do którego odnosisz się gdzie indziej, to S1 i moje wejście "Start".
Dmitry Grigoryev
2020-03-13 00:47:24 UTC
view on stackexchange narkive permalink

Twój pierwszy schemat nie działa, ponieważ próbuje wydostać się z bagna własnymi włosami.

NPN wymaga, aby jego napięcie bazowe było wyższe niż napięcie emitera, aby móc przewodzić.Jednak Arduino jest zasilane przez ten sam emiter NPN, więc oczywiście nie może wytworzyć napięcia pinu wyższego niż VCC, więc NPN zamyka się, a Arduino wyłącza.

Fredled
2020-03-12 00:30:15 UTC
view on stackexchange narkive permalink

Nie rozumiem celu C1.IMO to może spowodować zaniknięcie.MOSFETY mogą pozostać włączone przy bardzo minimalnym prądzie. Podłącz bramę do GND za pomocą rezystora między 22 a 100 kiloomów. Teoretycznie, C1 powinien włączyć arduino po włączeniu Vcc.

Pomysł na kondensator polegał na tym, aby zapewnić odrobinę odbicia przełącznika.Również, jak myślę, sugerujesz zapewnienie małego okna, aby umożliwić Arduino uruchomienie i podniesienie D2.Jutro spróbuję rezystora.
GMc Aby odbić, musisz podłączyć C1 do GND, a nie do Vcc.
Michael Fratus
2020-03-12 11:39:45 UTC
view on stackexchange narkive permalink

Zarówno w obwodach mosfet, jak i bipolarnych, wyjście (źródło w mosfecie i emiter w bipolarnym) zawsze będzie mniejsze niż napięcie sterujące.Ponieważ pin wyjściowy arduino nigdy nie może osiągnąć napięcia zasilania, gdy tylko zwolnisz przełącznik, przełączane napięcie zasilania spada i nadal spada.Użycie PNP pozwala uniknąć tego problemu.

AndyC
2020-03-12 15:53:11 UTC
view on stackexchange narkive permalink

W obwodzie BJT tranzystor przełączający powinien być tranzystorem PNP z drugim tranzystorem NPN, aby dostarczyć do niego prąd.

Mój obwód poniżej jest niezwykle podobny do tego, który opublikował Russel i został przetestowany z Arduino UNO. Włącza 12-woltowy regulator wstępny zasilania.

Przycisk wprowadza prąd do tranzystora NPN, który z kolei wprowadza prąd do tranzystora PNP, który zasila Arduino. W przypadku UNO kondensator jest wymagany, ponieważ uruchomienie UNO i ustawienie wysokiego ON_PIN zajmuje dużo czasu. Kondensator rozładowujący się przez rezystor 5k6 utrzymuje podstawę NPN zasilaną prądem, dopóki ON_PIN nie przejmie.

Obwód po lewej stronie z diodami umożliwia wykrywanie kolejnych naciśnięć przycisków, dzięki czemu można zasygnalizować kodowi inne funkcje lub, tak jak ja, użyć go jako przerwania.

Korzystałem z wariantów tego układu z bateriami do zasilania pilotów IR i WiFi za pomocą innych MCU, np. Adafruit ItsyBitsy. Gdy obwód jest wyłączony, prąd upływowy jest poniżej 1 mikroampera, co oznacza, że ​​baterie trwają kilka miesięcy między ładowaniami. Wartości obwodu należy dostosować do innych napięć zasilania.

Arduino AutoPower circuit

enter image description here

Powyższe jest rozwiązaniem początkowego problemu, ale aby odpowiedzieć na niektóre pytania:

W przypadku obwodu BJT włącza się po naciśnięciu przycisku, ponieważ prąd może płynąć do podstawy tranzystora z zasilacza o wyższym napięciu niż emiter tranzystora. Jednak nie działa, gdy wyjście procesora D2 powinno przejąć, ponieważ aby obrócić tranzystor na podstawie, musi być o około 0,6 V wyższy niż emiter. Pin wyjściowy nigdy nie może dostarczyć więcej niż Vin procesora, ale Vin jest dostarczane przez emiter tranzystora. To błędne koło i prąd nigdy nie może wpłynąć do podstawy tranzystora, ponieważ napięcie bazy nigdy nie jest wystarczająco wysokie. Dodaj spadek o 0,6 V napięcia przewodzenia diody i sytuacja się pogorszy. Dlatego do przełączania używam PNP. Jeśli emiter jest podłączony do zasilania, wystarczy podłączyć podstawę do ziemi przez rezystor, aby go włączyć.

W przypadku tranzystora FET odpowiedź jest podobna, ale, jak powiedzieli inni, prąd potrzebny bramce tranzystora FET jest niewielki, a ładunek na bramce tranzystora FET będzie go utrzymywać, dopóki nie wycieknie. W obwodzie nie ma mechanizmu, który aktywnie rozładowywałby bramkę, gdy wyjście D2 jest obniżone i dlatego nie wyłącza się pod kontrolą D2.

Mówisz: „Prawdopodobnie jest to spowodowane kondensatorem 100 uF”. Kondensator ładuje się niemal natychmiast po naciśnięciu przycisku i rozładowuje z prędkością kontrolowaną przez rezystor 5k6. Z innymi płytkami (ItsyBitsy i Feather) nie potrzebowałem kondensatora, ale z UNO tak. Czas uruchamiania, który widziałem, wynosił około 1,5 sekundy.

Inną cechą mojego obwodu, która mi się podoba, jest to, że chociaż jest uruchamiany tutaj przyciskiem, w rzeczywistości może być wyzwalany przez dowolny czujnik, który może zapewnić wystarczający prąd, aby włączyć podstawę BC547, np. wyłącznik drzwiowy, czujnik temperatury lub światła przekraczający próg itp.

Dzięki za to, przetestowałem to i działa świetnie.Podoba mi się pomysł wprowadzenia przycisku.Chociaż nie odpowiedziałeś na moje konkretne pytanie, wybrałem Twoją odpowiedź jako poprawną ze względu na dodatkową funkcję, działa i tak, że wyskakuje na górę, aby inni mogli z niej skorzystać.Dzięki jeszcze raz.
Aha, i jeszcze jedną wielką cechą jest to, że ten obwód działa najlepiej z przyciskiem.Wydaje się, że Arduino potrzebuje około 3/4 sekundy na „uruchomienie”.Oznacza to, że pomiędzy naciśnięciem przycisku występuje około 3/4 sekundy, a Arduino może doprowadzić linię sterowania zasilaniem (pin 12 powyżej i pin 2 w moim projekcie) WYSOKI, aby utrzymać zasilanie.Powyższy obwód pozwala na chwilowe dotknięcie przycisku (znacznie poniżej 3/4 sekundy) i utrzymuje zasilanie wystarczająco długo, aby Arduino uruchomiło się i włączyło D12 (lub D2 w moim przypadku).Przypuszczalnie jest to spowodowane kondensatorem 100uF.
Cześć, dzięki za miłe komentarze.Masz rację, nie odpowiedziałem dokładnie na pytania, po prostu dostarczyłem puszkowe rozwiązanie twojego pierwotnego problemu.Tak więc, aby wyjaśnić sprawę, zobacz moje zmiany powyżej.
Eduardo1992
2020-03-13 02:23:54 UTC
view on stackexchange narkive permalink

Użyj tranzystora PNP i odwróć logikę.

enter image description here

enter image description here

Kiedy zbudowałem ten obwód (dwa razy), stwierdziłem, że napięcie między Vin a Gnd wynosi tylko około 1-2 V, gdy zamknąłem SW1.Q1 bardzo szybko się rozgrzał i ostatecznie zaczął palić (po około 3-4 sekundach).Trzykrotnie sprawdziłem obwody przed podłączeniem zasilania i wydaje mi się, że poprawnie wykonałem schemat.
@GMc Jest bardzo podobny do mojego i innych obwodów.Zmień R1 na 10k, usuń R2 i dodaj 1k szeregowo z przełącznikiem.Magiczny dym jest wytwarzany w Q1 przez doprowadzenie pełnego Vcc do napięcia uziemienia na jego złączu, gdy przełącznik jest zamknięty.
@GMc.Właśnie zauważyłem, że istnieje bezpośrednia ścieżka (bez rezystora) między Q1 i Q2.Umieść rezystor między nimi, tak aby Q2 nie napędzał Q1 zbyt mocno.


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 4.0, w ramach której jest rozpowszechniana.
Loading...