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.

Atmega8 - sterowanie silnikiem krokowym (nie skacze krok po kroku?)

madiz08 23 Paź 2014 08:32 2019 4
  • #1 23 Paź 2014 08:32
    madiz08
    Poziom 14  

    Witam
    Kupiłem ostatnio 3 silniczki krokowe 28BYJ-48-5V http://robocraft.ru/files/datasheet/28BYJ-48.pdf razem ze sterownikiem ULN2003, który jest chyba poprostu w tym przypadku wzmacniaczem prądowym
    Atmega8 - sterowanie silnikiem krokowym (nie skacze krok po kroku?)
    Wcześniej nigdy nie miałem do czynienia z silnikiem krokowym, ale wyczytałem, że sterowanie nim to poprostu co jakiś czas powtarzająca się sekwencja kodu na 4 bitach. Poniżej schemat połączenia:
    Atmega8 - sterowanie silnikiem krokowym (nie skacze krok po kroku?)
    Wszędzie znalazłem informacje, że sekwencja kroków powtarza się co 8 kroków i znalazłem np. taką sekwencję:
    Atmega8 - sterowanie silnikiem krokowym (nie skacze krok po kroku?)
    po czym napisałem taki kod:

    Kod: c
    Zaloguj się, aby zobaczyć kod



    ale tu pojawia się problem tego typu że jak po wciśnięciu zera krok powinien sie zmieniać co 50ms to jeżeli silnik ma 64kroki, zatem pełen obrót powinien trwać 3,2s a widać że jak wcisnąłem pin B.0 to ledwo widać ruch, jak wciskam PB.4 to skok mam ustawiony co 5ms i przeskakuje mi co dwa kroki, czyli w tym przypadku powinien kręcić się błyskawicznie a tak nie jest.
    Czy ktoś mógłby mi powiedzieć gdzie tu jest błąd???

    0 4
  • Pomocny post
    #2 23 Paź 2014 08:47
    BlueDraco
    Specjalista - Mikrokontrolery

    zacznijmy od tego, że próbujesz sterować silnik mikrokrokowo, czyli na 8 faz zamiast czterech, co ma sens tylko w niektórych zastosowaniach. Wyrzuć z tabelki fazy, w których jest aktywowane jedno uzwojenie. Po drugie - być może masz przeplecione fazy silnika - sterujesz go w niewłaściwej sekwencji.
    Po trzecie - przy przeskakiwaniu "co dwa kroki" sterujesz silnik nieprawidłowo - wybierasz mikrokroki zamiast podstawowych. Podstawowe - to te ze sterowaniem dwóch uzwojeń.

    0
  • #3 23 Paź 2014 11:20
    madiz08
    Poziom 14  

    Dobrze tak zrobię i dam znać jak mi poszło

    Dodano po 2 [godziny] 14 [minuty]:

    No niestety po wpisaniu sekwencji

    Kod: c
    Zaloguj się, aby zobaczyć kod

    dla przycisku PB3
    Kod: c
    Zaloguj się, aby zobaczyć kod

    uzyskuję cos takiego

    gdzie zmiana sekwencji następuje co lekko ponad 5ms, oczywiście przy 50ms idzie to 10x wolniej także chyba ta sekwencja kroków jest błędna. Przez moment pomyślałem, że przecież sterownik jest negatorem i muszę zmienić zera z jedynkami, ale pochwili doszedłem że to i tak daje tą samą sekwencję, chyba z tym kodem szesnastkowym się nie pomyliłem. czyli raczej zła kolejność kroków, przy szybszych ruchach czuc mocne drgania, może to właśnie jest tak, że raz robi ruch w przeciwną stronę, no nie wiem

    Dodano po 7 [minuty]:

    na youtube znalazłem cos takiego https://www.youtube.com/watch?v=etx24iFMilg gdzie większość kodu jest dla mnie nie zrozumiała, ale
    Atmega8 - sterowanie silnikiem krokowym (nie skacze krok po kroku?)

    tutaj facet wpisał sekwencje kroków. Ja zrobiłem tak samo i dalej silnik obracał mi sie powoli. Nie wiem dlaczego określił ilość elementów jako [8], czyli 9

    Dodano po 8 [minuty]:

    Chociaż ten facet podłącza silnik bezpośrednio do mikrokontrolera, sygnały nie są negowane przez żaden sterownik, czyli ja powinienem je zanegować chyba

    0
  • Pomocny post
    #4 23 Paź 2014 11:20
    zumek
    Poziom 39  

    Przecież wystarczy 1 spojrzenie na Twój silnik żeby dojść do wniosku, że jest wyposażony w przekładnię.
    Atmega8 - sterowanie silnikiem krokowym (nie skacze krok po kroku?)

    Fragment jego dokumentacji:
    Stride Angle 5.625° /64
    Czyli z prostego obliczenia wynika, że 1 pełny obrót wałka, to 4096 kroków silnika.

    0
  • #5 23 Paź 2014 15:15
    madiz08
    Poziom 14  

    o matko, i wszystko jasne, dziękuję za odpowiedź. W sumie racja, przecież gdyby nie było przekładni to wał silnika byłby na środku.

    Dodano po 3 [godziny] 9 [minuty]:

    Tą anglojęzyczna stronę http://robocraft.ru/files/datasheet/28BYJ-48.pdf podałem, bo nie chciałem podawać bezpośrednio aukcji z allegro, gdzie są takie informacje
    Atmega8 - sterowanie silnikiem krokowym (nie skacze krok po kroku?)
    i dlatego zasugerowałem się, że ten silnik ma 64 kroki, a jeden kąt ma 5,625°. chyba sprzedawca powinien to poprawić.

    0