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.

Własny moduł z MTS62C19A - podwójny sterownik silnika DC

p.kaczmarek2 21 Wrz 2020 18:38 1767 0
  • Własny moduł z MTS62C19A - podwójny sterownik silnika DC
    Witajcie moi drodzy
    Chciałbym tu przedstawić mój własny mini-moduł podwójnego sterownika silnika DC oparty o układ MTS62C19A. Układem MTS62C19A zainteresowałem się z ciekawości, m. in. dlatego, że pozwala w pewnym stopniu kontrolować moc silnika poprzez dwa piny cyfrowe (bez potrzeby użycia PWM po stronie mikrokontrolera). Chciałem zobaczyć, jak sprawdza się on w praktyce i po prostu wykorzystać go dla odmiany od panującego trendu używania gotowych modułów kupowanych w sklepie.

    Krótko o MTS62C19A
    MTS62C19A to podwójny mostek H produkowany przez Microchip. Może on sterować niezależnie dwoma silnikami DC lub jednym silnikiem krokowym o dwóch uzwojeniach. Obsługuje napięcia pracy silnika do 40V i prąd do 750mA.
    Układ ten jest zamiennikiem L6219DS który był swego czasu produkowany przez Allegro MicroSystems.
    MTS62C19A produkowany jest w 24-pinowej obudowie SOP:
    Własny moduł z MTS62C19A - podwójny sterownik silnika DC
    Własny moduł z MTS62C19A - podwójny sterownik silnika DC
    MTS62C19A posiada również m. in. wbudowaną ochronę przeciwko przegrzaniem.
    Oznaczenia jego wyprowadzeń przedstawiam poniżej:
    Własny moduł z MTS62C19A - podwójny sterownik silnika DC
    MTS62C19A od bardziej znanych układów sterowania silnikiem (np. L293, L298) różni się m. in. tym, że posiada wbudowany mechanizm ograniczania prądu silnika do wybranej wartości (i co za tym idzie jego szybkości obrotów) poprzez dwa piny cyfrowe (L0 i L1).
    Schemat tego mechanizmu wygląda następująco:
    Własny moduł z MTS62C19A - podwójny sterownik silnika DC
    Do określenia ograniczenia prądu używane jest też napięcie odniesienia na pinie Vref oraz rezystor bocznikowy Rs.
    Mamy dwa piny cyfrowe do wyboru ograniczenia prądu, więc 4 możliwe kombinacje, które pokazuje tabelka:
    Własny moduł z MTS62C19A - podwójny sterownik silnika DC
    Wzór z tabelki:
    Własny moduł z MTS62C19A - podwójny sterownik silnika DC
    Czyli kolejno 100% maksymalnego prądu, 67%, 33% i 0%.
    Sterując MTS62C19A nie potrzebujemy zatem mieć PWM - po prostu ustawiamy stany logiczne na dwóch pinach i resztę układ robi za nas.
    Dokładniejsze informacje na ten temat można znaleźć w jego nocie katalogowej:
    MTS62C1...pdf Download (377.05 kB)

    Projekt płytki
    Schemat i płytkę opracowałem w darmowej wersji programu Eagle. Schemat bazowałem na przykładowej aplikacji MTS62C19A z jego noty katalogowej:
    Własny moduł z MTS62C19A - podwójny sterownik silnika DC
    Sam projekt płytki jest już dość stary - świadczy o tym widoczna na niej data. Po prostu przez długi czas nie miałem czasu zabrać się za jej uruchomienie:
    Własny moduł z MTS62C19A - podwójny sterownik silnika DC
    Produkcję PCB zleciłem chińskiej płytkarni. Kupiłem 5 sztuk panelu na którym powtórzyłem tę płytkę 4 razy (nie było dopłaty za panel, wziąłem najtańszą opcję, bo zmieściłem się w wymiarze 10cm na 10cm). Do utworzenia panelu użyłem panelize.ulp a potem po prostu skopiowałem cztery razy płytkę:
    Własny moduł z MTS62C19A - podwójny sterownik silnika DC
    Projekt ma dwa lata i gdybym tę płytkę projektował teraz to bym ją nieco poprawił, np. ta przelotka przy skrajnym pinie MTS52C19A może być problematyczna.

    Lutowanie płytki
    Poniżej przedstawiam kilka zdjęć z procesu lutowania płytki. Użyłem do tego spoiwa lutowniczego o średnicy 1mm, nieco topnika i zwykłej lutownicy grotowej.
    Własny moduł z MTS62C19A - podwójny sterownik silnika DC
    Przylutowany MTS62C19A:
    Własny moduł z MTS62C19A - podwójny sterownik silnika DC
    Po przylutowaniu drobniejszych elementów SMD:
    Własny moduł z MTS62C19A - podwójny sterownik silnika DC
    Gotowy moduł:
    Własny moduł z MTS62C19A - podwójny sterownik silnika DC

    Pierwsze uruchomienie z Arduino - sterowanie kierunkiem obrotów silnika
    Na początek sprawdziłem czy układ w ogóle działa i czy działa zmiana kierunku obrotów silnika. Steruje się nią poprzez pin Phase. Do sprawdzenia użyłem Arduino i zwykłego silnika DC ze złomu elektronicznego (chyba z jakiegoś odświeżacza powietrza):
    Własny moduł z MTS62C19A - podwójny sterownik silnika DC
    Własny moduł z MTS62C19A - podwójny sterownik silnika DC
    Moduł zasiliłem bezpośrednio z Arduino 5V.
    Czyli podłączyłem piny tak:
    - GND oczywiście do masy
    - Vload (zasilanie silników) do 5V z Arduino
    - Vlogic (zasilanie kontrolera) do 5V z Arduino
    - LL01 do pinu 4 Arduino
    - LL11 do pinu 2 z Arduino
    - Phase1 do pinu 3 z Arduino
    Przygotowałem kod:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    Rezultat:

    Sterowanie kierunkiem obrotów działa (choć na filmie trzeba się przyjrzeć, by zobaczyć, że raz zębatka obraca się w prawo, a raz w lewo).

    Sterowanie mocą silnika
    Następnie spróbowałem użyć cyfrowych wyjść Arduino w celu kontroli szybkości silnika poprzez mechanizm ograniczenia prądu z MTS62C19A. Służą do tego piny L0 i L1.
    Musiałem też zmienić silnik na mocniejszy, ponieważ użyty wcześniej pobierał tak mały prąd że trudno było zaobserwować działanie ograniczenia prądowego z MTS62C19A.
    Dodatkowo zmieniłem sposób zasilania silnika na zasilacz 12V.
    Ograniczenie prądowe w tym przypadku wynosiło kolejno 150mA, 100mA i 50mA (Vref = 5V oraz Rs = 3.3Ω; wartości policzone ze wzoru pokazanego wcześniej).
    Kod Arduino:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    Rezultat (kolejne zdjęcia przedstawiają kolejne tryby):
    Własny moduł z MTS62C19A - podwójny sterownik silnika DC Własny moduł z MTS62C19A - podwójny sterownik silnika DC Własny moduł z MTS62C19A - podwójny sterownik silnika DC Własny moduł z MTS62C19A - podwójny sterownik silnika DC
    Pomiary pokazują, że sterowanie prądem przez MTS62C19A działa, choć wartości prądu są inne od oczekiwanych. To dlatego, że użyty silnik ma za małą moc i nawet przy bezpośrednim podłączeniu do zasilacza pobiera niecałe 100mA (a nie użyte przy obliczeniach 150mA). Nie mam niestety dużego wyboru silników DC by teraz więcej zademonstrować (choć mógłbym zmienić wartość Rs by jeszcze zmniejszyć maksymalną wartość prądu).
    Mimo wszystko mogę stwierdzić, że mój moduł z MTS62C19A działa - teraz pora użyć go w jakimś większym projekcie.

    Podsumowanie
    Moduł z MTS62C19A udało mi się w pełni uruchomić. Zapewne wkrótce użyję go w jakimś większym projekcie, być może w połączeniu z jakimś małym mikrokontrolerem bądź prostym expanderem portów. Postaram się wykorzystać to, że steruje się go poprzez piny cyfrowe i nie potrzeba do tego PWM.
    W załączniku poniżej daję pełny projekt Eagle (.sch i .brd):
    new_MTS62C..._drv11.zip Download (71.43 kB)Punkty: 0.5 dla użytkownika

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
  • MetalworkMetalwork