Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Sterowanie silnikiem krokowym bipolarnym 4 przewody z Arduino UNO

kokodyn 23 Nov 2016 11:25 3450 13
  • #1
    kokodyn
    Level 10  
    Przy pomocy sterownika STEPSTICK A4988 podłączyłem silnik krokowy wyjęty z DVD. Nie mam do niego żadnych danych. Po podaniu 1 na step utrzymuje moment i to jest ok. Silnik po podaniu 0 na pin step zaczyna się kręcić, czy coś jest źle podłączone?
    Jeżeli na pin step podaje sygnał prostokątny z PWM to silnik kręci się chaotycznie +-2 obroty w prawo/lewo, coś mi dodatkowo nie styka na przewodzie na pin step muszę nim poruszać żeby silnik w ogóle ruszył.
    Schemat podłączenia w załączniku.
  • #2
    Flesz
    Level 22  
    Dlaczego sleep zwarty z resetem?
    Dodatkowo wejścia MS definiują podział kroku - ne widzę żeby były gdzieś podpięte.
    Radzę też sprawdzić maksymalną częstotliwość układu i częstotliwość podawanego PWM'a
    Zmiana kierunku może świadczyć o zmianach stanu na pinie DIR - stan na tym pinie definiuje kierunek obrotów.
    Generalnie proponuję przeczytać : Link
  • #3
    kokodyn
    Level 10  
    Sleep ma być zwarty z resetem.
    WEJŚCIA MS podciągnąłem do masy żeby mieć sterowanie pełno krokowe i nic nie pomogło.
    Przez przypadek zauważyłem że nawet bez podpiętego sygnału step, silnik trzyma moment co ok 4s. Czy to znaczy że sterownik jest zepsuty?
    Testowałem układ na różnych częstotliwościach PWM i na różnych 2 różnych silnikach.

    Dodano po 28 [minuty]:

    Czy jeżeli zasilanie części logicznej doprowadzę z zasilacza to czy masy Arduino i zasilacza powinny być połączone?
  • #4
    namok
    Level 25  
    kokodyn wrote:
    Czy jeżeli zasilanie części logicznej doprowadzę z zasilacza to czy masy Arduino i zasilacza powinny być połączone?

    Generalnie jeśli łączysz sygnały pomiędzy urządzeniami bez separacji galwanicznej to zawsze łączysz masy.
  • #5
    emarcus
    Level 38  
    kokodyn wrote:

    Jeżeli na pin step podaje sygnał prostokątny z PWM to silnik kręci się chaotycznie +-2 obroty w prawo/lewo, coś mi dodatkowo nie styka na przewodzie na pin step muszę nim poruszać żeby silnik w ogóle ruszył.
    Schemat podłączenia w załączniku.


    Na pin step podajesz raczej krótki sygnał pulsujący zamiast PWM ; jeden krótki puls - daje jeden step (krok).
    Możesz także sprawdzic działanie pinu enable (8) na schemacie zaznaczony ENA z bar nad nim. Pin ten jest złączony z pinem 2 na chip i winien byc podłączony do GND aby układ wyjściowy mocy był załączony. Na płytce ten pin jest podłączony/podciągnięty do GND przez R=100k, co w zasadzie winno wystarczyc. Niemniej jednak spróbuj podłączyc mu logicznny stan niski (GND). Stan wysoki (1) na tym pinie odłącza zasilanie wyjścia do silnika.

    Czy przed próbami regulowałeś coś potencjometrem na płytce?
    Jężeli nie, to należało od tego zacząc. Układy te ('stepstick') fabrycznie nie są doregulowane do żadnego silnika i z reguły są ustawione na zero pradu silnika.
    Process regulacji jest trywialnie prosty.
    Przy odłaczonym silniku ustawiasz napięcie referencyjne (mierzone w Voltach) na suwaku potencjometru, na wartośc połowy nominalnego prądu (Ampery) pobieranego przez silnik. (*)
    Praktycznie; - jeżeli silnik pobiera 1 A, - to napięcie na suwaku ustawiasz na 500 mV.

    Odnośnie pinów RESET i SLEEP. Zarówno Reset jak i Sleep podczas normalnej operacji, winny miec stan wysoki (1)
    Jezeli manipulujesz pinem sleep (0/1) w celu oszczędności energii, to po załaczeniu (wybudzeniu) (1) należy odczekac chwilę (co najmniej 1 ms) przed rozpoczęciem pulsowania.
    Pin SLEEP jest wewnętrznie (na płytce) podciągnięty do VCC. RESET nie jest podciągnięty, dlatego łacząc je razem Reset dostaje stan wysoki od SLEEP

    e marcus

    Korrekta (*) :
    Dla stepstick współczynnik nominalnego prądu do Vref wynosi 1,6 zamiast 0.5 jak podałem wyżej,
    Zatem dla silnika pobierającego nominalny prąd 1A napięcie na suwaku potencjometru winno byc na poziomie 1.6V

    e marcus
  • #6
    kokodyn
    Level 10  
    Hej, dzięki za podpowiedzi, silnik rusza tylko wtedy jak chwycę palcami przewód doprowadzający napięcie na pin step, oczywiście dotykam go przez izolacje. Z czego to może wynikać, zakłócenia, ekranowanie? Jak można temu zapobiec? Przewód ze zwykłego kabelka do płytek stykowych, zmieniłem na 0,75mm2 i nic się nie poprawiło.
  • #7
    emarcus
    Level 38  
    kokodyn wrote:
    Hej, dzięki za podpowiedzi, silnik rusza tylko wtedy jak chwycę palcami przewód doprowadzający napięcie na pin step, oczywiście dotykam go przez izolacje. Z czego to może wynikać, zakłócenia, ekranowanie? Jak można temu zapobiec? Przewód ze zwykłego kabelka do płytek stykowych, zmieniłem na 0,75mm2 i nic się nie poprawiło.



    Ekranowanie przewodów jest isotne w kontekscie 'rozsiewania' zakłóceń RFI. W trakcie prób, nie zależy ci na trzeszczeniu radia stojącego obok płytki testowej. Grubośc przewodów dla testów w układzie testowym (kompaktowym) nie ma większego znaczenia.
    Przyczyny błędnego ruchu silnika należy szukac w innymj miejscu.

    To pokaż jeszcze twój code i schemat połączenia z samym Arduino.
    Przedstawiony układ w post #1 jest poprawny, lecz pokazuje tylko podłaczenie silnika do modułu STEPSTICK.
    Ponadto podaj jakim napięciem zaslasz silnik (Vmot do Stepstick).

    e marcus
  • #8
    kokodyn
    Level 10  
    Ok dziękuje za odpowiedzi silnik już działa wstawiłem rezystor 8k między step a masę.

    Jak policzyć prąd potrzebny do zasilenia silnika który na znamionowe napięcie 24 V i 7 Om rezystancje cewki? Czy można po prostu z prawa Ohma I=U/R
  • #9
    emarcus
    Level 38  
    kokodyn wrote:


    Jak policzyć prąd potrzebny do zasilenia silnika który na znamionowe napięcie 24 V i 7 Om rezystancje cewki? Czy można po prostu z prawa Ohma I=U/R


    Nie policzysz,.... bo masz zbyt dużo niewiadomych i zbyt dużo zmiennych.
    Który prąd chciałbyś liczyc(?); chwilowy, szczytowy czy średni .
    Nie znasz indukcyjności cewek, ani częstotliwości pulsowania, nie tyle sygnału ‘step’ bo ten możesz policzyc ( wszak to ty tworzysz impulsy); tu wchodzi w rachunek sposób/proces wysterowania silnika przez A4988, który nie jest szczegółowo opublikowany (chopping, PWM ?). Od indukcyjności cewek zależy szybkośc narastania prądu. Poziom napięcia ma wpływ na niwelowanie back EMF, która jest zależna od obrotów silnika.
    Poza tym po co ci to obliczc i wiedziec?.
    Z Prawa Ohma obliczysz tylko prąd płynacy przez cewkę w silniku zastopowanym, gdzie na ogół pracuje jedna cewka przy wysterowaniu tradycyjnym mostkiem H bez pomiaru i obcinania nadwyżki prądu i sterowany własną sekwencją komutacji.
    Tylko w tym momencie prąd przbiera wartośc ustaloną.
    Mając do dyspozycji stepstick (A4988), o którym wiemy że jego olbciążalnośc prądowa jest nie wyższa niż 2A (z zamontowanym heatsink/radiatorem), oraz silnik z odzysku DVD, który z regóły ma kiepską charakterystykę, projektowany głównie aby pobierał niski prąd i był cichy w eksploatacji kosztem momentu obrotowego, który w tym zasosowaniu nie stawia wymagań.
    Parametry (24 V i 7 Omów) reprezentują raczej kiepskiej ‘performance’ silnik. Czym niższe napięcie i niższa rezystancja cewek , tym lepszy silnik; - daje większa swobodę w doborze parametrów i wysterowaniu.
    Dla przykładu : na załączonym obrazku , ten z prawej (srebrny), jest o wiele lepszy, mimo że oba pochodza z tego samego typu urzadzenia, nieco innej versji.
    Sterowanie silnikiem krokowym bipolarnym 4 przewody z Arduino UNO
    Zatem wstępnie ustawiłbym prąd na stepstick na poziomie 0.8A lub 1A. W trakcie prób zawsze możesz dokonac poprawek w regulacji tego parametru.

    e marcus
  • #10
    kokodyn
    Level 10  
    Chodziło mi oto że nie mam specyfikacji do tego silnika i zastanawiałem się jaki będzie pobór prądu w czasie pracy silnika i jaki zasilacz dobrać. Czy jest jakaś metoda która pozwalałaby oszacować potrzebny prąd znając tylko nominalne napięcie zasilania oraz rezystancje cewek?
  • Helpful post
    #11
    Anonymous
    Anonymous  
  • #12
    emarcus
    Level 38  
    kokodyn wrote:
    Chodziło mi oto że nie mam specyfikacji do tego silnika i zastanawiałem się jaki będzie pobór prądu w czasie pracy silnika i jaki zasilacz dobrać. Czy jest jakaś metoda która pozwalałaby oszacować potrzebny prąd znając tylko nominalne napięcie zasilania oraz rezystancje cewek?


    Przecież ci napisałem wszystko (może nawet za dużo!!), co potrzebujesz wiedziec na ten temat.
    Nie potrafisz ‘wyłowic’ potrzebnej informacji?
    Wymagany zasilacz okreslony jest maxymalną przepustowością układu ‘stepstick’.
    Jest absolutnie bez znaczenia jak duży silnik do niego podłączysz i w jakim stopniu jest on obciążony. Układ ten nie przepuśc więcej prądu niż ty to ustaliłeś potencjometrem. Z tego własnie powodu zaleca się ustalic/doregulowac ten prąd przed podłączeniem silnika.
    Jezeli jego zakres jest 2A, to źródło pradowe winno ten prąd dostarczyc.
    Skoro nie masz dostatecznej informacji o parametrach silnika , to musisz je spreparpowac we własnym zakresie metodą prób o czym też wcześniej pisałem.
    Poza tym, dla silników krokowych nie określa się z góry napięcia pracy, lecz istotny jest zawsze prąd. Napięcie spełnia drugorzędną rolę i może byc dobierane w zalezności od potrzeb w bardzo szerokim zakresie, nawet ponad 120V jeżeli układ drivera na to pozwala

    e marcus
  • #13
    kokodyn
    Level 10  
    Dziękuje wszystkim za odpowiedzi. Mam jeszcze jedno pytanie, czy ładowarkę do telefonu na USB 5V można traktować jako zasilacz? Czy z taka ładowarka ma stabilizowane napięcie, czy będzie bardzo tętnić?