W poprzedniej części pokazałem jak początkujący może zdobyć tranzystory za darmo. Tu pokażę jak je wykorzystać w praktyce. Posterujemy tranzystorami MOSFET z poziomu 3.3V i przy okazji zobaczymy, jak duże znaczenie ma napięcie na bramce tranzystora. Zrobimy tu podstawę sprzętową do własnego ściemniacza opartego o ESP8266, czyli sterowanego przez WiFi.
Przypominam poprzednią część: Dobre tranzystory MOSFET na 5V za darmo? Odzysk części ze starej płyty głównej PC
Publikowany był też już podobny projekt, ale tam było sterowanie z poziomu 5V więc obyło się bez kombinacji:
PIC12F683 i SDCC - tutorial - tworzymy prosty ściemniacz (czytamy noty katalogowe)
Kolejne darmowe tranzystory i wylut zwykłą lutownicą kolbową
Tym razem znalazłem stary płaski telewizor, jeszcze z podświetleniem świetlówkowym. Pora na szybkie oględziny modułu podświetlenia, który i tak już do mnie dotarł uszkodzony:
Na spodzie widać cztery obiecujące tranzystory:
KMB054N40, MOSFET z kanałem typu N, Vds=40V (napięcie dren-źródło), Id = 54A
Rezystancja w stanie otwarcia przy Vgs=4.5V (napięcie na bramce) też niezła, tylko do 11mΩ.
Trzeba tylko je wylutować. Da się to zrobić bez hot air. Moja metoda to najpierw topnik, potem spoiwo ołowiowe na luty, by je rozmiękczyć, a potem grzanie na przemian wylewek masy. Tranzystor można zdjąć pęsetą.
Program ściemniacza na ESP8266 (tutaj NodeMCU)
ESP8266 programowałem w PlatformIO w oparciu o ArduinoOTA, tak aby móc wgrywać wsad przez WiFi:
Jak programować płytkę Wemos D1 (ESP8266) w kształcie Arduino? ArduinoOTA w PlatformIO
Do kontroli jasności używa się PWM - Pulse Width Modulation, modulacja szerokości impulsów. Zasadniczo szybko "włączamy i wyłączamy" stan logiczny na pinie, tutaj 0V lub 3.3V. W Arduino służy do tego funkcja analogWrite. Mój program zrobiłem tak, by po prostu w pętli ściemniał od 0 do 100%, jednocześnie odświeżając ArduinoOTA, bym wciąż mógł aktualizować program przez WiFi:
Kod: C / C++
PWM wystawiam na pin GPIO2, czyli D4 na NodeMCU.
Rezultat:
Program działa, a PWM jest i na LED na pokładzie ESP12, i na D4.
Ściemniacz na KMB054N40
Pierwszym schematem jaki przychodzi nam na myśl jest pewnie podłączenie wyjścia ESP na bramkę tranzystora, najlepiej przez jakiś rezystor. Zdecydowałem się od tego zacząć, choć nie mogę powiedzieć, że to jest poprawne podejście. Zobaczymy.
Odzyskany MOSFET jest montowany powierzchniowo, więc nie użyjemy płytki stykowej. Zresztą odradzam "stykówkę" do większych prądów. Zamiast tego zrobimy tzw. "rzeźbę", jak to niektórzy potocznie mówią, na kawałku laminatu. Proces tworzenia takiej płytki zaczynam od oczyszczenia powierzchni laminatu, by można było łatwiej lutować:
Przerwy wykonuję szlifiereczką, potem badam czy jest zwarcie multimetrem:
Przy montażu warto pamiętać, że cały układ musi mieć wspólną masę. Dodatkowo należy respektować maksymalne napięcia wejścia naszego modułu z ESP, 12V może go uszkodzić. Tak jest w przypadku NodeMCU. Aby zasilić je z 12V, potrzebna będzie przetwornica step down, ale to już poza tematem...
Uruchamiamy:
Wygląda na to, że wszystko działa. MOSFET nie grzeje się przesadnie...
Podłączyłem też rezystor od bramki do 3.3V zamiast wyjścia PWM, płynie 2.3A, wciąż bez nadmiernego grzania:
Ściemniacz na 2SK3918
Tylko czy zawsze jest tak kolorowo? Sprawdźmy to. Zamieńmy nasz KMB054N40 na 2SK3918, który posiadam z tematu o starych płytach głównych PC.
Wyprowadzenia się zgadzają. Podmianka wykonana, uruchamiamy i:
Coś zmniejszył się prąd, to już dziwne. Było 2.3A a jest 1.73A, LEDy nie są już aż tak jasne, ale to nie jedyny problem.
Tranzystor grzeje się i po chwili jest już bardzo ciepły:
Dlaczego KMB054N40 dawał radę, a 2SK3918 już sobie nie radzi?
Wszystko sprowadza się do sterowania tranzystorem. To jest tranzystor MOSFET, steruje się nim napięciowo. Napięcie na bramce (względem źródła) określane jest parametrem Vgs. To, jaki prąd zostanie przepuszczony przez dren (rezystancja w stanie otwarcia) zależy właśnie od Vgs. Na pierwszej stronie noty katalogowej jest to wyszczególnione, ale tak naprawdę powinniśmy sprawdzić też wykresy:
Wykresy pokazują prąd drenu w funkcji napięcia na bramce, dodatkowo z osobnymi krzywymi dla różnych temperatur:
Jak widać 2SK3918 nie da rady w naszym układzie, tj. przy Vgs = 3.3V i przy prądzie którego oczekujemy. Nic dziwnego, nie otwiera się w pełni i rezystancja jest za duża, na skutek czego się grzeje. Z KMB054N40 jest nieco lepiej, chociaż i tak Vgs by mogło być tam większe.
Oczywiście, w praktyce zależności jest tutaj więcej, chociażby nawet na umieszczonych wykresach widać, że wpływ ma też sama temperatura złącza (i co gorsza, im większa, tym gorsze przewodzenie), ale to miała być uproszczona prezentacja więc aż tak nie będziemy się zagłębiać.
Teraz trzeba to jakoś naprawić. Musimy dawać na bramkę MOSFETa większe napięcie. Najprościej będzie dodać kolejny stopień sterowania, tym razem tranzystor sterowany prądowo, znajdę jakiś mały sygnałowo NPN. Będzie on zwierać do masy bramkę tranzystora MOSFET, którą dodatkowo podciągnę do 12V.
Trzeba przeszukać znów płytki by sprawdzić co jest dostępne. Na płytce od inwertera widziałem same TL431 w obudowie w TO-92, ale to nawet nie tranzystor, lecz "programowalna dioda Zenera"... poszukałem więc na kolejnej płytce, tym razem moduł zasilacza, no i bingo:
STN2222 to mały tranzystor bipolarny NPN, parametry wyglądają obiecująco:
Zaplanowany układ:
Tylko uwaga - teraz gdy na wyjściu ESP jest 3.3V (logiczna 1), to prąd przepływa przez R1 do bazy tranzystora pomocniczego, powodując jego otwarcie. Otwarty tranzystor pomocniczy wtedy zwiera bramkę MOSFETa do masy, jednocześnie go zamykając. A więc mamy tu odwróconą logikę, ale skoro piszemy sami software do ESP to nie jest problem.
Realizacja:
Pora sprawdzić naszą pracę. Tym razem logika jest odwrócona, więc podłączyłem rezystor do masy. Od razu widać, że płynie większy prąd - prawie tak samo jak przy poprzednim tranzystorze, 2.3A:
Czekamy, czekamy i ... MOSFET dalej jest chłodny. Sukces.
Sterowanie z NodeMCu też sprawdziłem i dalej działa, możemy dalej kontrolować jasność paska LED.
Wygląda na to, że problem rozwiązany. Może nawet obejdzie się bez radiatora - płytka miedziana też nieco ciepła odprowadza.
Oczywiście, nie jest to jedyny sposób na sterowanie tranzystorem MOSFET, dużo zależy od częstotliwości przełączania, ładunku bramki, są też dedykowane sterowniki, ale w przypadku prostego ściemniacza pokazany tutaj układ w pełni daje radę.
Podsumowanie
Ta krótka prezentacja praktyczna pokazała nam, jak ważne jest czytanie not katalogowych elementów, które zamierzamy wykorzystać w naszych projektach. Oba tranzystory są dość podobne, ale jednak diabeł tkwi w szczegółach - jeden jeszcze jakoś dał radę przy sterowaniu z 3.3V (Vgs) przy 2.3A prądu (Id), a drugi już przesadnie się grzał. Na szczęście daliśmy radę to naprawić i to nawet utrzymując motyw przewodni zabawy - czyli dobieranie elementów z elektrośmieci. Skutkiem ubocznym tego podejścia jest odwrócenie logiki sterowania, ale w przypadku programowania takiego ściemniacza od 0 to nie jest problem.
Teraz możemy spokojnie ogarnąć układ, polepszyć płytkę, dodać jakieś przyciski oraz wszystko oprogramować w PlatformIO wraz z odpowiednią stroną internetową do sterowania i być może z automatyzacjami (np. stopniowe zapalanie światła o danej godzinie wedle czasu NTP z sieci).
Na koniec dodam, że w temacie pozwoliłem sobie na pewne drobne uproszczenia, ale nie uważam, że to problem, a wręcz liczę, że taka prezentacja zachęci początkujących do kolejnych eksperymentów z tranzystorami.
Czy spotkaliście się z podobnym problemem we własnych projektach, a jeśli tak, to jak go rozwiązaliście?
Fajne? Ranking DIY Pomogłem? Kup mi kawę.