Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Wielokanałowy PWM, odpowiednie tranzystory.....

zbuffer 16 Kwi 2009 20:50 2002 4
  • #1 16 Kwi 2009 20:50
    zbuffer
    Poziom 10  

    Witam!
    Przystępuję do projektowania robota owadopodobnego który poruszany będzie przez sztuczne mięśnie (Flexinol) - taki drut z Nitinolu który skraca się przy przepuszczeniu prądu (rozgrzaniu).
    Układ sterowany będzie przez jakąś ATmegę.
    Zasilaniem układu będzie najprawdopodobniej jedno ogniwo LiFePO4 (A123) o napięciu nominalnym 3,3V bo ma płaską charakterystykę i się szybko ładuje, a mam akurat do tego ładowarkę.
    No i teraz powstaje pewien problem.
    "Jednostka centralna" musi sterować za pomocą PWMu (12-18 kanałów) rozgrzewaniem sztucznych mięśni. Maksymalny prąd na jeden kanał powinien wynosić min. 1 A.
    Szukałem trochę po forum i z tego co widzę to można zrobić software'owy PWM na drugiej atmedze i przesyłać po USARTcie parametry wypełnienia.
    Widziałem też różne LED drivery....może coś takiego zamiast atmegi?
    Oczywiście to jest tylko pierwszy stopień. Sygnał musi być kluczowany przez jakieś tranzystory. I tu się pojawia problem bo szczerze mówiąc nie znam się na tym które są najlepsze do takiego zastosowania, które mają mała rezystancję i które dadzą się sterować przy tak niskim napięciu zasilania! Poza tym jak taki układ wykonać tak żeby przy stanie 0 nie przepłynęły mi nagle prądy i popaliły tranzystory bo np. procek się będzie resetował.....
    W ogóle zastanawiam się jak można odciąć układ od zasilania na czas ładowania akumulatora? czy dało by się coś takiego zrobić na tranzystorze o tak małej rezystancji żeby nie było prawie spadku napięcia podczas pracy układu? Oczywiście zawsze mogę zrobić na wtyczce ale wyłacznik czy przełacznik wyjścia akumulatora (ładowarka <-> układ) byłby bardziej sensowny.

    Pozdrawiam

    0 4
  • #2 17 Kwi 2009 13:13
    Przemek_Kuchta
    Poziom 20  

    Możesz spróbować wykorzystać gotowy driver PWM np od diod led MBI5030 i dołożyć do niego drivery na tranzystorach BJT, powinny dobrze działać z tym sterownikiem. Jeśli byś sterował z procesora to można by stosować tranzystory mosfet. PWM będzie niskiej częstotliwości, więc nie będzie typowych problemów z szybkim przełączaniem mosfetów.

    Gdzie kupujesz Flexinol?

    0
  • #3 17 Kwi 2009 18:29
    MirekCz
    Poziom 35  

    Tranzystory to jakieś n-mosfety gdzie połączenie to G-gate do atmegi (najlepiej przez rezysto rzędu 100om-1kom), D-dren do wyjścia nitinolu, S - źródło do GND. Drugą stronę nitinolu podłącz do napięcia zasilania.
    Poszukaj albo czegoś w sot23 (np. tsm2302cx z tme.pl) albo jakiś podwójny n-mosfet w obudowie so-8.
    Pamiętaj tylko że ponieważ masz 3V to musi się w pełni otwierać od 2,5V (te tsm2302 takie są).
    No i musisz tak dobrać napięcie zasilania lub dołożyć jakiś rezystor żeby mieć odpowiedni prąd przez tranzystor.

    Tranzystory nie powinny się popalić jak dasz odpowiednie rezystory szeregowo do mięśni, bo ograniczysz prąd. Najlepiej dodatkowo zastosować tzw. pull-down czyli pomiędzy gate tranzystora (każdego osobno) a GND wsadzić rezystor powiedzmy 100k. W tym momencie jak procesor nie będzie działał to o ile nie będzie miał ustawionego wyjścia to tranzystor będzie wyłączony.

    Odciąć układ od zasilania na czas ładowania możesz jednym tranzystorem. Niestety będzie to dodatkowy spadek napięcia. Najłatwiej wyprowadź baterię na 2 pinową wtyczkę i albo wsadzaj tą wtyczkę do płytki (wtedy pracuje robot) albo wsadzaj do programatora (tutaj musisz odłączyć ją od robota).

    PS.Nie stosuj tranzystorów BJT - duży spadek napięcia. Tylko mosfety wchodzą w grę.

    0
  • #4 18 Kwi 2009 00:59
    zbuffer
    Poziom 10  

    Ok. Poszukałem trochę na TME tranzystorów bo maja tam sprytny filtr parametrów i znalazłem coś takiego: 2xn-mosfet o oznaczeniu IRF7301.
    Nie znam się na tym za bardzo ale z tego co widzę napięcie 3,3 V spokojnie wysteruje ten tranzystor. Oczywiście zakładam sterowanie z procka.
    Dzięki temu że to są dwa tranzystory to mniej miejsca mi na płytce zajmie więc tym lepiej.
    Co do popalenia to nie ma obaw bo prąd będzie po pierwsze PWMem sterowany a po drugie pewnie nie przekroczy 1 A i to też co jakiś czas a nie ciągle (rozgrzewanie powiedzmy pełną parą będzie trwało może 0,5s a potem puszcza się np. 0,2A na podtrzymanie temp.).

    Właściwie jak ten Pull-down działa?
    I teraz tak do mnie dotarło....jak procek nie działa to nóżka jest odcięta od obwodu tak? to tak samo jakby go nie było ?
    Co wtedy się dzieje z tranzystorem? (jak Gate nie jest podłączony do niczego).

    Co do Flexinolu to najtaniej znalazłem TUTAJ.

    0
  • #5 18 Kwi 2009 09:17
    MirekCz
    Poziom 35  

    Pulldown po prostu stale łączy gate przez duży rezystor do GND. Jak nie ma żadnego sygnału z procesora to tranzystor jest zamknięty (bo gate jest połączony z GND).
    Jak procesor działa to ten rezystor jest na tyle mały, że nie ma wpływu na sterowanie.
    Oczywiście jeżeli procesor się zwiesi z nóżką wyjściową ustawioną na stan wysoki to ten pull-down nie pomoże. Zabezpieczy za to układ przed ew. sterowaniem mięśni w czasie inicjalizacji procesora/startu kwarców itd.
    Zabezpieczyć uc przed zawieszeniem się powinieneś z pomocą watchdog i brownout.

    IRF7301 spokojnie da radę, chociaż czy jest mniejszy od 2xsot23 to kwestia sporna ;)

    Co do prądu to najlepiej tak dobierz długość drutu/średnicę jego/rezystencję żeby przy napięciu 3,3V i w pełni otwartym tranzystorze płynął prąd 1A.
    Czyli R=U/i R=3,3v/1A=3,3om
    Stąd szeregowo połączenie flexinol + tranzystor mosfet(ok 0,1om) + (ewentualnie) rezystor = 3,3om lub wiecej. W ten sposób możesz być pewien że z PWM na 100% masz maksymalnie 1A prądu.

    0