Elektroda.pl
Elektroda.pl
X

Search our partners

Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Sterowanie Mosfetem - PWM - stały prąd - w teorii OK, ale nie działa

marti_ns 10 Jan 2015 10:18 3828 34
lampy.pl
  • #1
    marti_ns
    Level 16  
    Witam
    w tym temacie szukałem mosfet'a który możne być sterowany z Arduino (atmega), w układzie sterownika do taśm LED. Wykorzystany układ TLC5940 do rozszerzenia ilości kanałów i tranzystory IRLZ44N (logic level), aby można było na wyciu uciągnąć max ok 4A.

    W sterowniku wykorzystuję bibliotekę TLC5940 -> Basic animations -> AnimatorCreator

    Skrypt zmienia obraz (mapa bitowa X*16 Pixeli) na wartość wypełnienia PWM, gdzie X to długośc sekwencji a 16 to ilość kanałów - doświadczalnie ustaliłem że max długość dla Atmega 328P to 1200 z uwag na pojemność pamięci.

    wszystko działa ładnie na pojedynczych diodach podłączonych do TLC5940
    Sterowanie Mosfetem - PWM - stały prąd - w teorii OK, ale nie działa
    Jest rezystor 10K pull-up przy BLANK (wyłącza wyjścia przy resecie), jest rezystor 2K pull-down przy IREF który ogranicza prąd na wyjscia TLC5940 do ok 20mA ( I=39.06/R). Pięknie to wszystko działa, ale na pojedynczych diodach.

    Tutaj są wszystkie moje filmy pokazujące jak to działa.

    Problem zaczyna się gdy podłącze IRLZ44N, wówczas diody nie gasną.

    Nie wiem czy winna jest biblioteka, czy skrypt AnimatorCreator ale nie działa to jak powinno, a teoria mówi ze musi to działać.

    Tutaj z tego co rozumiem angielski, jest podobny problem, bramka jest ładowana przez rezystor pull-up (mosfet właczony) , a sygnał PWM powoduje rozładowanie (wyłaczenie) tranzystora. To by się zgadzało bo z tego co zauważyłem na kanałach gdzie stosowałem mosfet, diody przygasały wraz ze zwiększeniem PWM. Dostałem od autora skryptu, zmieniony program który odwraca wartości i znów na pojedynczych diodach wszystko ładnie, ale na odwrót ale na mosfetach znów nie gaśnie.

    Texas Instruments proponuje inne podłączenie Link

    I teraz już porostu jestem głupi w teorii powinno to działać, po sieci krąży wiele opisów w oparciu o ten sam schemat, więc dlaczego mam problemy przy sterowaniu mosfetem.

    Ja chce podłączyć do każdego kanału do 3-4 metrów taśmy, takiej co ma np 15W/metr. z tego co umiem liczyć 15W/12V=1.25 A * 3 metry = 3,75A.
    Bez Mosfeta tego nie osiągnę.

    w testach korzystałem z żarówek P21W i mofety wytrzymały.

    Proszę Was koledzy pomóżcie. Dlaczego to nie działa jak powinno działać?

    Zakładając że winna jest biblioteka BasicAnimations

    Code: c
    Log in, to see the code


    plik ani_arduino.h
    Code: c
    Log in, to see the code


    to mam dwa wyjścia albo poszukać czegoś innego, albo pisać ręcznie podając kolejne wartości wypełnienia. Ale dlaczego podłączenie Mosfeta psuje cały efekt?

    Ktoś pomoże?
    Do you have a problem with Arduino? Ask question. Visit our forum Arduino.
  • lampy.pl
  • #3
    marti_ns
    Level 16  
    niestety nie mam oscyloskopu :(
  • #4
    W.P.
    Computer PSUs specialist
    Przyglądam się mozaice druku na jednym ze zdjęć z odsyłacza:

    https://www.elektroda.pl/rtvforum/viewtopic.php?p=14313394#14313394

    Dlaczego środkowe nóżki tranzystorów są na tym samym potencjale? Przecież to dreny a nie źródła.

    Chyba trzeba przeprojektować płytkę i problem zniknie. :)

    Przepraszam. To łączówki. Chyba dalej oscyloskop. Może są jakieś szpilki.
  • #6
    marti_ns
    Level 16  
    W.P. wrote:
    Przyglądam się mozaice druku na jednym ze zdjęć z odsyłacza:

    https://www.elektroda.pl/rtvforum/viewtopic.php?p=14313394#14313394

    Dlaczego środkowe nóżki tranzystorów są na tym samym potencjale? Przecież to dreny a nie źródła.

    Chyba trzeba przeprojektować płytkę i problem zniknie. :)

    Przepraszam. To łączówki. Chyba dalej oscyloskop. Może są jakieś szpilki.


    dokładnie na złaczach zrobiłem tak ze jest - + - żeby uniknąć plątaniny kabli wtedy jeden + jest na dwa kanały.

    projektując ten układ bazowałem na projekcie Anatola Ogórka
    Link.

    On pomógł mi w paru kwestiach i teraz gdy wrzuciłem jego wsad do mojego układu to wszystko działa prawidłowo.

    Tak jak przypuszczałem Mosfet odwraca logikę układu, bo z tego co pamiętam domyślnie dostaje 5V na bramkę, dopiero zwiększenie stanu na wyjściu z TLC zmniejsza to napięcie, więc przyciemnia diody.

    zastanawia mnie tylko czy gdybym zastosował inwerter logiczny Link to wówczas układ z mosfetami działał by jak zwykły TLC z pojedynczymi diodami. jełśi tak to było by to rozwiązanie mojego problemu. jednak Inwerter musiałby wytrzymywać do 4A i być na 12V bo musiałby być dołożony za mosfetem o ile dobrze rozumiem, a to znacząco podniosło by koszty.

    czyli chyba się wyjaśniło, nie mogę korzystać z biblioteki AnimatroCreator. musze coś innego wymysłic

    na tym filmie wszystko widać Link
  • lampy.pl
  • #7
    jdubowski
    Tube devices specialist
    marti_ns wrote:
    W.P. wrote:
    Przyglądam się mozaice druku na jednym ze zdjęć z odsyłacza:

    https://www.elektroda.pl/rtvforum/viewtopic.php?p=14313394#14313394

    Dlaczego środkowe nóżki tranzystorów są na tym samym potencjale? Przecież to dreny a nie źródła.

    Chyba trzeba przeprojektować płytkę i problem zniknie. :)

    Przepraszam. To łączówki. Chyba dalej oscyloskop. Może są jakieś szpilki.


    dokładnie na złaczach zrobiłem tak ze jest - + - żeby uniknąć plątaniny kabli wtedy jeden + jest na dwa kanały


    Kolejna prośba o schemat, nadto realizacja kluczy jako wtórniki źródłowe nie jest właściwa.
  • #8
    marti_ns
    Level 16  
    bardzo przepraszam z tego wszystkiego zapomniałem wrzucić. jest tam razem z filmami na gdrive, ale wrzucam załącznik.

    Jak pisałem wyżej. układ działa, tylko logika jest odwrócona dlatego programy głupieją.

    czy pomogą koledzy to wyprostować?
  • #9
    W.P.
    Computer PSUs specialist
    marti_ns wrote:
    Pięknie to wszystko działa, ale na pojedynczych diodach.
    Czy diody były podłączone anodą do wyjścia TLC5940 a katodą (plus rezystor) do masy? Słowem - czy miały świecić przy "1"?
    Co prawda sam w to nie wierzę ale gdyby założyć, że logiczne 0 to nie 0V a trochę więcej (0,5 może 1V) to na pojedynczej diodzie będzie dobrze - zaświeci przy "1" na wyjściu i zgaśnie przy "0".
    Jednak tranzystor może już być w stanie aktywnym i niewielkim prądem zapalić diody w obwodzie drenu.

    Podaj wartość napięcia na wyjściu TLC dla stanów logicznych "0" i "1".
  • #10
    Krzysio74
    Level 16  
    Problemem jest to, że TLC5940 ma na wyjściach "źródła" prądowe, które ciągną prąd do siebie.
    łatwiejszym byłoby użycie tranzystora typu P. A u Ciebie teraz konwerter na tranzystorze pnp , tranzystor wpięty bazą przez R do wyjscia PWM, emiter do +5V, a kolektor do R przy MOSfecie.

    A tak podczas sterowania, w 1. fazie jest ustawione źródła, w 2. fazie jest odpięte.
    I tak w 1. fazie cały prąd idzie przez drabinkę czyli potencjał na bramce twojego T wykonawczego jest bliski zeru.
    W 2. fazie, potencjał jest podniesiony. Ten sam rezystor w drabince tworząc dzielnik z rezystorami powoduje załączenie pełne lub niepełne mosfeta.

    Może, żeby zgasły należałoby max prąd ustawić na jakąś wyższą wartość niż 5mA.
  • #12
    marti_ns
    Level 16  
    W.P. wrote:
    Jeśli chcesz odwrócić logikę na wyjściu to wystarczą inwertery pomiędzy wyjściami z TLC a stopniem końcowym na MOS-ach.


    Ale wtedy Mosfety mogą się nie otworzyć bo one są zasilane z Pull-up 5V

    W.P. wrote:
    Podaj wartość napięcia na wyjściu TLC dla stanów logicznych "0" i "1".


    Przy "0" 3.65V dla samej LED i 6.9 dla żarówki po Mosfet, dla "1" 3.11V LED i 11.5V dla żarówki.

    LED podpięty bezpośrednio do TLC a żarówka P21W podpięta przez IRLZ44N.

    Ogólnie tak jak już wcześniej pisałem układ dział poprawnie, jednak o ile LED podłączony bezpośrednio do TLC5940 przy wypełnieniu PWM = 0 nie świeci, to żarówka lub LED podłączony przez Mosfet przy takim samym wypełnieniu świeci maksymalną jasnością. Natomiast LED przy TLC jeśli PWM=4095 siwci na maxa to żarówka po mosfecie przy takim wypełnieniu gaśnie.
  • #13
    W.P.
    Computer PSUs specialist
    Chyba Kolega Krzysio74 rzucił właściwe światło na sprawę.
    Krzysio74 wrote:
    Problemem jest to, że TLC5940 ma na wyjściach "źródła" prądowe
    . Trzeba przyjrzeć się stopniowi końcowemu TLC5940. Poszukam pdf-a.
  • #16
    Krzysio74
    Level 16  
    to z slva280, to jest pomocne, kiedy masz wyższe napięcie zasilania niż dopuszczalne dla scalaka. Ty chcesz mieć prąd, tym rozwiązaniem tego nie osiągniesz.
    Prawdopodobnie rzeczywiście wystarczyłyby inwertery cyfrowe, pullup jest wtedy potrzebny scalakowi (PWM), a MOSFETy są sterowane prosto z wyjścia push-pull inwertera.

    Co do źródeł prądowych, to one nie są podstawą działania, one korygują prąd w gałęzi istotny przy bezpośrednim podłączeniu LED w kilku gałęziach.
    Ważne jest to, że wypełnienie jest aktywne w stanie niskim, a aby wysterować żarówkę po mosfecie musisz podać na niego stan "wysoki". Więc zastosujesz negator na linii, albo programowo to załatasz, ale jednym programem nie posterujesz dwóch odmiennych konstrukcji.
  • #17
    marti_ns
    Level 16  
    Krzysio74 wrote:
    Prawdopodobnie rzeczywiście wystarczyłyby inwertery cyfrowe.

    no tak myślę ale stosowane po mosfetach na pewno będą drogie z uwagi na wymagane parametry, a stosowane przed mosfetem zakłócą działanie rezystora pull-up.

    wg mnie taniej jest zostawić bibliotekę AnimatroCreator i klepać linie kodu ręcznie regulując wypełnieniem.

    tak przynajmniej wychodzi z mojej bardzo skromnej wiedzy elektronicznej.

    dzięki za wytłumaczenie o co chodzi z tym slva280.

    No chyba że wzmocnienie zrobić w inny sposób, ale to są dodatkowe koszty
  • #18
    jarek_lnx
    Level 43  
    Quote:
    jest jeszcze plik TI który proponuje jak podłaczyć LED przez MOSFET ale nie wiem dlaczego nie dział mi to połaczenie
    Bo to kaskoda prąd nadal reguluje układ scalony tranzystor pozwala tylko podnieść napiecie zasilania.

    Inwersję oraz zwiększenie prądu do wartości wymaganaj dla szybkiego przełaczania MOSFET'a można zrobić tak:

    Sterowanie Mosfetem - PWM - stały prąd - w teorii OK, ale nie działa

    rezystory oznaczone jako x można wstawić jeśli ktoś zastosuje zasilanie 12V i chciał bcy zmniejszyc straty mocy w układzie scalonym - moc wydzieli sie w rezystorach.
  • #19
    marti_ns
    Level 16  
    w tym połączeniu Mosfet nie musi być Logic Level bo może być sterowany z 12V?

    czy to może być każda dioda 30V 0.2A bo wolałbym, nie bawić się w smd
  • #20
    jarek_lnx
    Level 43  
    Quote:
    w tym połączeniu Mosfet nie musi być Logic Level bo może być sterowany z 12V?
    Nie musi, a nawet taki który nie jest ma pewne zalety, łatwiej (szybciej) da sie wyłączyć przez ściaganie bramki rezystorem do masy.

    Quote:
    czy to może być każda dioda 30V 0.2A bo wolałbym, nie bawić się w smd
    Każda szybka dioda ja wziąłem jakąś diodę Shottky'ego.
  • #21
    marti_ns
    Level 16  
    no to nie potrzebnie sprzedałem 100 szt. IRFZ44N i kupiłem 50 szt IRLZ44N, no ale trudno te się zużyje to się kupi inne, człowiek całe życie się uczy.

    przy takim układzie wyjścia z TLC jak proponujesz wszytko podpięte do Mosfeta powinno się zachowywać jak dioda podpięta bezpośrednio do TLC? czyli logika powinna zostać zachowana i wypełnienie 0 powinno gasić żarówkę na mosfecie?

    to było by cudownie bo mógłbym wtedy stosować bibliotekę AnimatorCreator

    jarek_lnx wrote:
    Nie musi, a nawet taki który nie jest ma pewne zalety, łatwiej (szybciej) da sie wyłączyć przez ściaganie bramki rezystorem do masy.

    mógłbyś zaproponować jakiś niedrogi Mosfet z obciążalnością 3-5 A przy 12V, oprócz IRFZ44N
  • #22
    _jta_
    Electronics specialist
    Nie widzę wyjaśnienia, w czym jest problem - jakoś to jest zagmatwane. Jeśli na bramkę MOSFET-a z kanałem N podajesz stan niski, to on jest wyłączony i żarówka/dioda podłączona do jego drenu nie świeci; jeśli podajesz stan wysoki, to on jest włączony i żarówka/dioda świeci. Jeśli LED-a włączysz między wyjście TLC5940 sterujące bramką, a plus zasilania (tak podłączałeś?), to on świeci odwrotnie, niż przy podłączeniu do drenu MOSFET-a - mam wrażenie, że to "odwrotnie" ciebie zdziwiło i pisałeś o tym w #12.

    Co właściwie chcesz uzyskać? Czy to, żeby sterować 16 taśm LED i dla każdej niezależnie zmieniać jasność?
  • #23
    jarek_lnx
    Level 43  
    Quote:
    mógłbyś zaproponować jakiś niedrogi Mosfet z obciążalnością 3-5 A przy 12V, oprócz IRFZ44N
    Zajrzał bym na stronę jakiegoś sklepu co ma wyszukiwarkę po parametrach i wybrał wartości Rds(on) ok 20mΩ (co da 0,5W strat przy 5A) a później sortowanie po cenie.

    IRLZ44N nie jest zły IRFZ44 miał by może ze dwa razy krótszy czas wyłaczania w przypadku z rezystorem, nawet dla IRLZ44N i prostszego układu tranzystor w ciągu kilkunastu µs zdąży sie wyłaczyć, a wiec praca na do kilku kHz ma sens, a przy LED'ach nie widzę potrzeby wiecej. Przy IRLZ to lepiej tranzystory PNP zasilić z 5V, podnoszenie nic nie da a zwiększa straty mocy.
  • #24
    marti_ns
    Level 16  
    _jta_ wrote:
    Nie widzę wyjaśnienia, w czym jest problem - jakoś to jest zagmatwane. Jeśli na bramkę MOSFET-a z kanałem N podajesz stan niski, to on jest wyłączony i żarówka/dioda podłączona do jego drenu nie świeci; jeśli podajesz stan wysoki, to on jest włączony i żarówka/dioda świeci. Jeśli LED-a włączysz między wyjście TLC5940 sterujące bramką, a plus zasilania (tak podłączałeś?), to on świeci odwrotnie, niż przy podłączeniu do drenu MOSFET-a - mam wrażenie, że to "odwrotnie" ciebie zdziwiło i pisałeś o tym w #12.

    Co właściwie chcesz uzyskać? Czy to, żeby sterować 16 taśm LED i dla każdej niezależnie zmieniać jasność?


    Chcę aby taśmy bądź żarówki po Mosfetach zachowywały się tak jak Led wpięte bezpośrednio do TLC tak jak to jest w przykładach. A ogólnie chcę sobie zrobić animacje na taśmach ze ściemnianiem która będzie leciała w pętli. Chce wykorzystać bibliotekę z arduino skrypt animator creator.

    jarek dzięki za wyjaśnienie
  • #25
    jarek_lnx
    Level 43  
    Quote:
    Nie widzę wyjaśnienia, w czym jest problem
    Bo nie ma, też sie zastanawiałem o co tu chodzi, nie ma nigdzie jasno zadanego pytania, ani opisu problemu, ten temat to świetny przykłąd co zrobić żęby nie uzyskać odpowiedzi.

    Mogło chodzić o inwersję, lub za małe prądy do wysterowania bramek lub niewłaściwe poziomy napięć, to dałem taka odpowiedź żeby pasowała niezależnie od tego o co chodzi :)

    P.S. Niektórzy twierdzą że nabijamy sobie posty - to jest mój post nr 4444 :)
  • #26
    marti_ns
    Level 16  
    Chodzi mi o to że korzystam z biblioteki która ładnie steruje diodami podłączonym bezpośrednio do układu TLC5940 jak na ilustracji w pierwszym poście. Problem zaczyna czy na się gdy chce wzmocnić wyjście z układu abym mógł podlaczyc do kanału taśmy LED, zastosowanie Mosfet N odwraca mi zachowanie LED w zależności od stopnia wypełnienia. Świeci gdy 0 anie świeci gdy 4095. Proszę o pomoc w rozbudowaniu układu tak aby odbiorniki na Mosfet zachowywały się tak jak pojedyncze diody przy układzie TLC5940, prezez co będę mógł stosować skrypty z biblioteki a nie klepać linie kodu wypełnienia ręcznie.

    To oczywiście ręcznie da się napisać ale wolał bym układ który będzie się zachowywał jak ten pierwszego rysunku a pozwoli na obciążenie każdego kanału do 4A. Bawiłem się już tymi skryptami i naprawdę ładnie to wygląda w pierwszym poście jest link do GDrive gdzie są moje filmy. Chodzi tylko o możliwość podłączenia większego obciążenia w postaci Taśm Led.
  • #27
    W.P.
    Computer PSUs specialist
    marti_ns wrote:
    Proszę o pomoc w rozbudowaniu układu tak aby odbiorniki na Mosfet zachowywały się tak jak pojedyncze diody przy układzie TLC5940
    Przeczytaj jeszcze raz post #16. Nic więcej nie trzeba.

    Myślałem o #18. Za mało dioptrii na nosie... Teraz zauważyłem błąd.
  • #28
    marti_ns
    Level 16  
    A możecie koledzy podać dokładnie jaki inwerter lub jakie parametry musi mieć?
    Bo moja wiedza elektroniczna jest na etapie piaskownicy, nie wiem czy muszę na każdy kanał oddzielnie, czy są inwertery wielokanałowe?

    no i żeby nie był za mały bo jeszcze nie nauczyłem się lutować "Włosów".

    czy np taki może być
    Link

    albo taki 2 kanałowy

    Link

    Tylko żaden nie ma wyjścia push - pull
  • #29
    _jta_
    Electronics specialist
    TLC5490 jest sterownikiem LED-ów, a nie MOSFET-ów, więc nie należy się dziwić, że to nie działało dobrze. Można do jego wyjść dołączyć jakieś ULN280*, to jest 8-kanałowy inwerter, albo zrobić inwertery z tranzystorów BC337 - chyba lepiej z tranzystorów (niższe napięcie nasycenia), ale tak czy siak, na każdy kanał będą potrzebne 2 oporniki. A może jakieś inwertery TTL (np. SN7406), czy CMOS (CD4049)? Tylko one mają niską wydajność prądową, i tylko po 6 kanałów, ale za to np. CD4049 nie potrzebuje oporników na wyjściu (ma wyjście push-pull), a SN7406 na wejściu (ma tam pull-up) - jakkolwiek każdy gdzieś potrzebuje. Jeszcze 8 kanałów ma 74HC240 (potrzebuje oporników na wejściu, wyjście push-pull).
  • #30
    marti_ns
    Level 16  
    No to chyba faktycznie lepiej zrobić jak mi kolega Jarek i Ty proponujecie zrobić układ na tranzystorach BC. Bo wtedy można inne mosfety zastosować, sterowane z 12v z niższym ładunkiem bramki. A cenowo nie będzie to zabijać bo te elementy są po parę groszy. Spróbuję złożyć ten schemat co mi proponował kolega Jarek.

    Tylko które tranzystory w końcu dać bo Jarek proponuje Bc327-25, a ty BC337