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.

Sterownik silnik krokowego

04 Lip 2016 22:41 561 5
  • Poziom 18  
    Witam

    Potrzebuje sterownika do silnika krokowego sterowanego przez impulsator do tego przełącznik z podziałem x10 tzn. 1 obrót impulsatora (20imp) silnik zrobi pełny obrót a z podziałem 0,2 obrotu.

    Ma ktoś jakiś schemat, pomysł?
    Z programowania jestem zielony.
  • Specjalista elektronik
    Po pierwsze, jaki silnik krokowy? Uni-, czy bipolarny? Ile faz? Ile kroków na obrót?
  • Poziom 18  
    bipolarny, 2 fazy, ilość kroków - standardowo 200k/obrót
  • Specjalista elektronik
    To oznacza, że masz 2 niezależne cewki, one mają w sumie 4 końcówki, i prąd ma płynąć na zmianę między jedną i drugą parą końcówek, do tego zmieniając kierunek: (1) para 1+, (2) para 2+, (3) para 1-, (4) para 2-, i tak w kółko; jeśli zamienisz miejscami (2) i (4), to będzie się kręcić w przeciwną stronę. Nie jest dla mnie jasne określenie ilości kroków na obrót - to 200 oznacza, że na obrót trzeba 50 takich okresów?

    Żeby uzyskać zmieniający się kierunek prądu w cewce zwykle stosuje się mostek H (4 tranzystory, jeden łączy jedną końcówkę z +zasilania, drugi drugą z -zasilania, pozostałe 2 są wyłączone, służą do odwrotnego łączenia; brak prądu uzyskuje się wyłączając wszystkie tranzystory, albo włączając tylko te, które łączą z -zasilania). Są do tego wyspecjalizowane układy scalone, ale trochę kosztują (najbardziej znane to L297+L298, na forum była mowa o innych, tańszych), często są zrobione tak, że na wejścia podaje się kierunek obrotu i impulsy.

    Wygląda na to, że do uzyskania wymaganego przełożenia sygnałów z impulsatora na sygnały sterujące silnik trzeba będzie jeden impuls wejściowy zamieniać na wiele wyjściowych (nawet na 0.2 obrotu potrzebujesz pewnie 40 impulsów, a impulsator daje 20 - trzeba z każdego impulsu robić dwa). I pewnie wygodniej i lepiej to zrobić programem w uC, niż budować elektronikę mnożącą ilość impulsów.

    Nie wiem jeszcze, czy chcesz kręcić silnikiem w jedną stronę, czy w obie, ani co daje na wyjściu twój impulsator - jeśli chcesz kręcić w dwie strony, to jaki sygnał ma dostać układ, żeby "wiedzieć", w którą stronę właśnie chcesz kręcić?
  • Poziom 18  
    Więc tak.
    Sterowanie silnika na L297+L298 bo już mam gotowy układ z czasopisma "ELEKTRONIK NOWY" i teraz zalegają. Głównie zależy mi na programie sterującym np. na ATMEGA8. Sterowanie ma działać w ten sposób: 1 impuls z impulsatora - 1 krok silnika, po włączeniu "mnożnika" x10 (najlepiej na włączniku hebelkowym) układ da 1 impuls z impulsatora - 10 kroków silnika. Impulsator ma działać w 2 kierunkach czyli lewo, prawo.

    Przykład https://www.elektroda.pl/rtvforum/topic1865134.html#8932519

    I teraz najważniejsze ma to napędzać oś Z w mojej wiertarkofrezarce którą tworze :)
  • Specjalista elektronik
    Ten układ z linku jest do silnika unipolarnego, daje na wyjściu 4 sygnały, do poszczególnych cewek (silnik unipolarny zwykle ma 4 cewki z jednym końcem wspólnym; wersją pośrednią jest silnik, który ma dwie cewki, każda z odczepem ze środka - nie korzystając z odczepów mamy silnik bipolarny, a łącząc je razem unipolarny). Więc program musi być nieco inny (i raczej prostszy, do sterowania silnikiem poprzez L297+L298 są potrzebne tylko 2 sygnały z uC, jeden podaje kierunek, drugi impulsy). Niestety w tym linku nie ma kodu źródłowego, tylko gotowy wsad, trzeba poszukać gdzie indziej, żeby mieć wzór, jak pisać program.

    ATmega to chyba przesada, rozumiem że z impulsatora masz 2 sygnały, na silnik podajesz 2, do tego jeden sygnał wejściowy do wyłącznika mnożnika, masa, zasilanie - razem potrzeba 7 pinów i powinien wystarczyć jakiś ATtiny. Na program z linku potrzebne są 1144 bajty pamięci programowalnej w uC, czyli pewnie trzeba użyć uC z pamięcią programu 2KB - chyba, że zamierzasz zrobić coś bardziej złożonego, np. układ kręcący bardziej płynnie.

    Alternatywą mógłby być układ analogowy - impulsy przetwarzać na napięcie, a raczej ładunek kondensatora, a potem napięcie/ładunek na impulsy dla silnika. I wtedy nie będzie żadnego programowania, natomiast przełożenie może wychodzić niedokładne.