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.

Szarpnięcie silnika krokowego

quot 01 Sie 2018 10:05 252 3
  • #1 01 Sie 2018 10:05
    quot
    Poziom 3  

    Cześć. Mam arduino 2560 r3 i sterownik silnika krokowego a4988 z wyregulowanym vref. Wszystko podłączone standardowo według schematów z google. Silnik zasilany jest zasilaczem komputerowym atx(12v) a arduino z usb i sterownik tez. Masy arduino i zasilacza są połączone. Silnik podczas wlaczenia zasilacza zawsze przesunie się kilka, kilkanaście kroków(tak jakby jakieś zakłócenie czy coś). Jednak to nie jest największym problemem, bo silnik później się dobrze kręci. Problem pojawia się wtedy wyłącze sterownik a4988( podanie wysokiego sygnału na pin enable) i przesunę go ręką to później jak startuje to znowu jest szarpnięcie(czasami większe, a czasami mniejsze). Chcę to wyeliminować bo silnik służy mi jako podzielnica i musi obracać dokładnie o podany kąt, a muszę mieć możliwość wyłączenia sterownika bo silnik będzie przesuwany(ciągnięty przez inny silnik). Dodam tylko, że zauważyłem, że na mikrokroku 1/1 silnik nie wykonuje aż tak dużego szarpniecia jak na mikrokroku 1/2, 1/4, 1/8 czy 1/16.( a może tylko tak mi się wydaje ze względu na prędkość) Istotne jest dla mnie zastosowanie mikrokroku 1/16 , bo chcę obracać o kąt m.in 60 stopni a przy pełnym mikrokroku błąd jest duży. Dodam tylko że próbowałem inny silnik i jest tak samo oraz próbowałem na sterowniku silnika drv8825 i nie widzę różnicy w stosunku do a4988. Próbowałem używać biblioteki stepper i accelstepper i przy użyciu tej pierwszej szarpnięcie jest zdecydowanie większe. Jeśli nie ruszam silnika ręką to szarpnie on tylko raz przy włączeniu zasilacza a później jest ok. Proszę o pomoc.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    i kod dla biblioteki accelstepper
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Są to tylko programy testowe i służą w celu rozwiązania problemu. A oto schemat:
    Szarpnięcie silnika krokowego

    0 3
  • #2 02 Sie 2018 08:13
    quot
    Poziom 3  

    Ma ktoś jakiś pomysł? Czy to da się wyeliminować?

    0
  • #3 02 Sie 2018 17:03
    emarcus
    Poziom 35  

    quot napisał:
    Ma ktoś jakiś pomysł? Czy to da się wyeliminować?

    Zacznij może od analizy sposobów obracania wałkiem silnika krokowego...

    Pierwszy i chyba najbardziej prymitywny, nie potrzebujacy zasilania, to kreęcenie wałka dwoma palcami ... ( metoda zacierania kciuka i palca wskazujacego rozdzielonych wałkiem silnika)_

    Drugi sposób, to metoda wymagająca zasilania i trochę elektroniki (zaleznie od rodzaju silnika, może to byc układ mostka ‘H’, albo zwyczajne 4 tranzystory) gdzie komutacja jest tworzona we własdnym zakresie.
    Kolejna metoda , to wykorzystanie tego samego sprzętu jak wyzej, lecz komutacja jest tworzona z wykorzystaniem odpowiedniej biblioteki; - to co właśnie częściowo (!?) stosujesz…

    Nastepna metoda, to stosowanie specjalnych driverów (stepstick) eliminująca stosowanie bibliotek, jak również oddzielnych mostków etc. Wymaga jedynie ustalic: jednym pinem kierunek obrotów, natomiast drugi pin służy do pulsowania sygnału. Każdy impuls na tm pinie powoduje obrót wałka o jeden krok/mikrokrok etc.
    Dodatkowe piny tego ‘stepstick’ pozwalają na manipulowanie kierunkiem obrotów, wybranie trybu microsteping, oraz możliwośc odłączenia (‘odsprzęgnięcia’) wyjśc .
    W tej metodzie program jest relatywnie prosty .
    Predkośc obrotowa będzie zależała w pierwszej mierze od częstotliwości pulsowania, która winna byc na tyle niska, aby wirnik zdążył wykonac pełny step, oraz aby zostało nieco czasu na przemagnesowanie cewek , inaczej silnik może gubic kroki, lub w skrajnym przypadku odmówi kooperacji.
    Podwyższone napięcie w obwodzie zasilania silnika powoduje ze silnik jest ‘żwawszy’ i wymaga mniej czasu na wykonanie jednego kroku/mikrokroku, co z kolei pozwoli na uzyskanie wyższych prędkości obrotowych.
    Z natury, steppery należa do grupy silników umożliwiających obrót o dowolny i relatywnie dokładny kąt, co jest w zamian okupione niskimi obrotami.
    Zaleznie od wymaganych specyficznych parametrów pracy, może zajśc potrzeba ‘rozpędzania’ silnika zwane ‘ramping’, acceleration - odpowiednia biblioteka - patrz nizej (drugi przykład Y/T video).

    Stepstick posiada równiez wbudowany układ pomiaru prądu, przez co staje się on źrdłem stałoprądowym, co jest szczególnie istotne przy zasilaniu podwyższonym napięciem, często kilkakrotnie przewyższajace niż to co jest podane w dokumentacji.
    Nalezy pamiętac że silnik zatrymany w określonej pozycji i ma ją utrzymywac na czas nieokreślony, nie jest odlączany od zasilania i w tym czasie przynajmniej jedna cewka jest zasilana (a w trybie microkrokowym obie cewki otrymują zasilanie w kombinowanym stylu PWM). Cała technika manipulacji komutacją jest zawarta w układzie drivera (stepstick), na którą nie masz wpływu.

    Jest rzeczą naturalną ze załaczaniu napedu (ENABLE) może towarzyszyc pewne szarpnięcie wirnikiem silnika ustawiając go w pozycji spoczynkowej pełnego kroku.
    Prosty przykład tej metody znajdź tu:
    https://www.youtube.com/watch?v=5CmjB4WF5XA
    oraz;
    https://www.youtube.com/watch?v=JzR6FV-sdH4
    e marcus

    0
  • #4 02 Sie 2018 21:53
    quot
    Poziom 3  

    Dzięki za odpowiedź. Stosuję stepstick a4988, a bibliotek używam bo są one sprawdzone i nie ma sensu pisać tego samemu. Nie używam grbl czy innego firmware jak marlin czy repetier bo mój program jest zupełnie w innym celu i steruję tylko jednym silnikiem krokowym. Wcześniej zbudowałem drukarkę 3D także jakieś pojęcie mam. Spodziewam się, że tam także problem takiego szarpnięcia występował, lae nie miał on wpływu na pracę całości, bo silniki najpierw były home'owane a później cały czas pracowały ( bez wyłączania stepsticka).

    Cytat:
    Jest rzeczą naturalną ze załaczaniu napedu (ENABLE) może towarzyszyc pewne szarpnięcie wirnikiem silnika ustawiając go w pozycji spoczynkowej pełnego kroku

    I to jest właśnie ten problem. Rozumiem, że nie rozwiązywalny?
    Pozdrawiam.

    0