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

IRLZ24 - silnik krokowy - niski prąd i moment

kevirek 16 Sie 2014 20:06 1419 11
  • #1 16 Sie 2014 20:06
    kevirek
    Poziom 7  

    Witam :)

    Potrzebuję, jako część większego projektu, stworzyć sterownik silnika (a właściwie to docelowo trzech silników) krokowego, oparty na mikrokontrolerze. Temat pozostaje nierozwiązany już od naprawdę długiego czasu, co wpędza mnie w nie lada frustrację. Postanowiłem zatem zadać pytanie tutaj, znacznie bardziej doświadczonym Kolegom :)

    Sprawa wygląda tak, że mam silnik krokowy unipolarny 4-fazowy, 24 VDC / 800 mA (na razie dysponuję wyłącznie zasilaniem 12 VDC, docelowo będzie 24). Mikrokontroler steruje rejestrem przesuwnym 74HC595N (zasilanym +5 V), którego piny sterują z kolei bramkami czterech tranzystorów. Wyjścia uzwojeń silnika podłączone są do drenów tranzystorów logic-level IRLZ24. Źródła tranzystorów podłączone są do masy zasilacza -12 V, a pomiędzy bramkami a źródłami wpięte są rezystory 47k. Masy: zasilacza -12 V i rejestrów -5 V są połączone razem.

    Steruję uzwojeniami silnika zgodnie z tą tabelką:
    IRLZ24 - silnik krokowy - niski prąd i moment

    Oznacza to, że dane uzwojenie jest załączone przez 3/8 całego cyklu. Docelowo to joystick i pomiar wartości analogowej ma dawać wartość opóźnienia pomiędzy poszczególnymi krokami, ale dla testów przyjąłem na razie stałą wartość 250 us. Doliczając do tego czas procesora potrzebny na wysterowanie trzech rejestrów szeregowych, można przyjąć, że częstotliwość przełączania nie powinna przekraczać ok. 1,5 kHz.

    Pierwszy problem, jaki napotkałem: gdy podepnę zasilacz bezpośrednio do silnika i zmierzę prąd, to widzę 800 mA, czyli taki, jak w nocie katalogowej. Jednak gdy wysteruję tylko jeden wybrany tranzystor i zatrzymam pracę mikrokontrolera (czyli jedno i tylko jedno uzwojenie jest załączone i stan ten się nie zmienia), to mierzony prąd uzwojenia wynosi już tylko ok. 680 mA. Z kolei z noty katalogowej tego modelu tranzystora wynika jasno, że maksymalne napięcie progowe załączenia U_GS(th) wynosi tylko 2 V, podczas gdy moje zmierzone napięcie U_GS jest równe 4,65 V. Również maksymalny prąd tego tranzystora to aż 17 A, a mi potrzeba jedynie 800 mA. Skąd więc wynika ta rozbieżność między wartościami bez i z udziałem tranzystora?

    Drugim problemem, który mnie trapi, jest bardzo niski moment napędowy silnika (na tyle niski, że bez żadnego problemu mogę go zatrzymać, przykładając do wału palec), znacznie niższy, niż w przypadku mojego pierwotnego rozwiązania, czyli czterech tranzystorów bipolarnych 2SC3205. Z tranzystorów BJT zrezygnowałem na rzecz logic-level MOSFETów z tego powodu, że wydajność prądowa rejestru 74HC595N to 70 mA dzielone na wszystkich 8 pinów, czyli max. 8,75 mA na jeden pin, a to zbyt mało, by wprowadzić ten tranzystor w nasycenie - tranzystory się grzały dość mocno, bo pracowały w obszarze aktywnym, a prądy i tak nie osiągały 800 mA. Pomyślałem w takim razie, że sterowanie napięciowe 5 V bezpośrednio z rejestru okaże się lepszym pomysłem, jednak teraz już sam mam mętlik w głowie i nie wiem, w którym kierunku dalej iść, a czas mnie nieubłaganie goni :|

    Tutaj pojawia się moje, już konkretne, pytanie. Jaki byłby w wyżej przedstawionej sytuacji najprostszy sposób, by w układzie uC -> rejestr szeregowy -> stopień mocy -> silnik krokowy wysterować tenże silnik, aby w jego cewkach płynęły prądy znamionowe 800 mA przy ww., raczej niedużej, częstotliwości przełączania?

    0 11
  • #2 17 Sie 2014 00:11
    trymer01
    Moderator Projektowanie

    Prądy wyjściowe 74HC595 liczyłeś/czytałeś datasheet źle.
    Mimo to decyzja o MOSFET-ach jest prawidłowa, tyle że coś źle robisz? - bo ten tranzystor ma Rds=0,14 Ohm (max) przy Vgs=4,5V, a taka rezystancja nie może zmniejszyć prądu 800mA do 680mA przy Uzas=12V - ??

    0
  • #3 17 Sie 2014 01:05
    kevirek
    Poziom 7  

    Hmm, w datasheet znalazłem dwie linijki: "Continuous output current ±35 mA" oraz "Continuous current through VCC or GND ±70 mA" i teraz nie jestem pewien, która wartość odnosi się do maksymalnego prądu, jaki można wyciągnąć z rejestru, ale stawiam na pierwszą. Tak czy inaczej, w sytuacji, gdy wszystkie 8 pinów jest aktywnych, którąś z tych dwóch wartości trzeba podzielić przez 8, czyli otrzymamy albo 4,375, albo 8,75 mA na pin, prawda?

    IRLZ24 - silnik krokowy - niski prąd i moment

    Stworzyłem poglądowy rysunek (bardzo przepraszam za jego jakość), na którym widać z grubsza połączenia (model tranzystora jest na rysunku inny, bo nie znalazłem IRLZ24). Procesor jest zasilany z Vcc=3,3 V, a rejestr szeregowy z +5 V (nie widać tego na rysunku, bo w Eagle to pin "ukryty"). Wszystkie masy są wspólne. Co jest nie tak?

    Dodam jeszcze, że przy załączeniu tylko jednego tranzystora, ten prąd 680 mA nie jest pokazywany przez miernik od razu, tylko rośnie, tak od 450-500 (chociaż nie za każdym razm). Zastanawiam się, czy to sprawa pomiaru, czy bramka tego tranzystora tak koszmarnie długo się ładuje...?

    0
  • #4 17 Sie 2014 08:14
    jarek_lnx
    Poziom 43  

    Cytat:
    Dodam jeszcze, że przy załączeniu tylko jednego tranzystora, ten prąd 680 mA nie jest pokazywany przez miernik od razu, tylko rośnie, tak od 450-500 (chociaż nie za każdym razm). Zastanawiam się, czy to sprawa pomiaru, czy bramka tego tranzystora tak koszmarnie długo się ładuje...?

    Jak nie wiadomo co sie dzieje, to trzeba lepiej pomierzyć, zmierz Uds i Ugs gdy załaczasz tranzystor, czy masz pewność że stan wysoki na bramce jest ciągły podczas tego pomiaru?
    Możesz podłączyć bramkę bezpośrednio pod 5V i porównać.

    0
  • #5 17 Sie 2014 11:09
    trymer01
    Moderator Projektowanie

    Jak pisze kolega wyżej - masz jakiś błąd w sterowaniu.
    Czytaj datasheet IRLZ24 http://www.irf.com/product-info/datasheets/data/irlz24.pdf - przy Vgs=4,5V ma on Rds= ok.0,1 Ohm (typowo) - czyli ma być praktycznie całkiem otwarty. Jeśli nie jest to masz nieprawidłowe sterowanie.
    Sprawdź zasilanie 74HC595, zasilanie ma odsprzężone pojemnością?

    0
  • #6 17 Sie 2014 11:14
    377475
    Użytkownik usunął konto  
  • #7 17 Sie 2014 11:27
    lodrex
    Poziom 9  

    arturcieslak1 napisał:
    Spójrz na podpis, masz dwa kolory - jeden jaśniejszy, drugi ciemniejszy. Masz tutaj pokazane 2 sposoby sterowania silnikiem.


    Cóżże mówisz, nie wprowadzaj kolegi Kevirka w błąd. Ten ciemniejszy kolor "ostrzega" że w danym kroku silnik jest mocniejszy jeśli nie stabilizujemy jego prądu. Jak Kevirek powiedział to jest komutacja 3/8. Gdyby dołożyć stabilizacje prądu silnika to mamy sterowanie półkrokowe.

    0
  • #8 18 Sie 2014 22:52
    kevirek
    Poziom 7  

    OK, wykonałem pomiary, o których mówił kolega jarek_lnx.

    Przepiąłem tranzystor w osobne miejsce na płytce stykowej, podpiąłem ten rezystor 47k, wpiąłem diodę zwrotną na uzwojenie, podałem na bramkę bezpośrednio 5 V z portu USB i mierzyłem prąd wypływający bezpośrednio z jednego z ujemnych terminali silnika, a wpływający do drenu tranzystora.

    Wartości prądu drenu, jakie otrzymywałem, były dość rozbieżne, bo wahały się od 680 mA do nawet 740 mA. Wystarczyło odjąć przewody miernika, poczekać chwilę i ponownie je przyłożyć, a wartości już różniły się o kilka dziesiątek mA. Dla porównania, prąd cewki mierzony z pominięciem tranzystora (od uzwojenia bezpośrednio do masy) wynosił ok. 770-790 mA. Różnica pomiędzy 770-790 mA a 830 mA, które uzyskiwałem wcześniej, wynikała pewnie z podwyższonej temperatury uzwojeń.

    Zmierzone wartości napięć:

    Ugs = 4,8 V (bez podpiętego silnika)
    Ugs = 4,5 V (pod obciążeniem)

    Uds = 0,06 V

    Czyli uśredniając prąd drenu do wartości 720 mA, rezystancja Rds wychodzi ok. 16 ohm (Uzas było nieco mniejsze od 12 V), a więc chyba w normie.

    Co o tym sądzicie? Skąd więc nadal taka rozbieżność rzędu 100 mA?

    0
  • Pomocny post
    #9 18 Sie 2014 23:11
    trymer01
    Moderator Projektowanie

    Płytka stykowa i prądy rzędu 1A ? Szukasz kłopotów to i masz je.
    Jak Ty liczysz Rds? - bo chyba Rdson, które wynosi Rdson=Uds/Id= ok. 80 mOhm a nie 16 Ohm.
    Rdson=0,08 Ohm dla IRLZ24 to dobry wynik - katalogowo ma max.0,10 Ohm.
    Ojj, kiepsko to widzę.

    0
  • #10 18 Sie 2014 23:19
    kevirek
    Poziom 7  

    O cholera, ale wpadka z tym liczeniem. Spędziłem cały wieczór nad rozgryzaniem tego problemu i ze zmęczenia już nie myślę... :| Dzięki za wytknięcie błędu.

    Czyli mówisz, że jeśli wlutuję tranzystory na osobną płytkę uniwersalną, a ze stykowej poprowadzę tylko sterowanie, to wtedy powinno grać?

    0
  • #11 19 Sie 2014 08:14
    trymer01
    Moderator Projektowanie

    Nie wiem czy będzie grać, bo skąd mam wiedzieć czy tam nie robisz jakichś innych błędów? Próbuj. Sprawdź zasilanie +12V, +5VUSB - najlepiej obejrzeć to oscyloskopem, bo wygląda na to, że masz albo niestabilne sterowanie.

    0
  • #12 20 Sie 2014 22:48
    kevirek
    Poziom 7  

    No i zagrało :D

    Problemem rzeczywiście była płytka stykowa i zworki o małym przekroju. Załatwiłem sobie płytkę uniwersalną i przewody 1 mm. Zlutowałem wszystko jak trzeba i w stanie statycznym płyną prądy 830 mA na cewkę.

    Tylko na jednym z uzwojeń prąd jest mniejszy, ok. 740 mA, ale podejrzewam, że tranzystor mógł się przypiec w trakcie lutowania, bo uzwojenie zasilone bezpośrednio bierze już 830. W dodatku po kilku minutach pracy silnika, to właśnie ten tranzystor był dość ciepły pod palcami, podczas gdy inne w dotyku były chłodne. Wymienię go jutro i wszystko będzie banglać :)

    Dzięki za pomoc!

    0
  Szukaj w 5mln produktów