Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Sterowanie silnikiem krokowym

endurasek 15 Mar 2017 18:36 576 7
  • #1 15 Mar 2017 18:36
    endurasek
    Poziom 14  

    Witam
    Jeśli nie w tym dziale piszę proszę mnie poprawić

    Posiadam sterownik SSK-B02 oraz silnik 4przewodowy 4Nm -4 A i to zasilam zasilaczem 38V 4A

    Do sterowania obrotami używam Arduino Uno. Problem polega na tym że jestem w stanie sterować obrotami do ok 200-300obr/min
    powyżej tej prędkości słychać że silnik krokowy zaczyna buczeć i po chwili gubić kroki aż zatrzyma się i buczy.
    Wyjście z arduino jest bezpośrednio połączone z wejściem STEP i dir sterownika krokowego.
    Wykorzystuje bibliotekę Timer oraz Stepper oraz próbowałem wiele innych ale efekt jest taki sam

    Zainstalowałem program mach 3 i sterowałem wyjściem LPT , w tym układzie silnik pięknie pracuje wchodzi na wysokie obroty i słychać że nie gubi kroków.

    Czy któryś z kolegów ma sprawdzoną bibliotekę oraz program którym by się podzielił lub naprowadził bo może to nie wina programu a samego podłączenia?

  • #3 15 Mar 2017 20:48
    endurasek
    Poziom 14  

    Teraz z głowy nie powiem bo program mam na innym komputerze a nie mam do niego dostępu ale..
    - przy użyciu biblioteki timer na pewno nie używałem bo tam tylko częstotliwość zadawałem płynnie
    - a przy drugiej bibliotece to jedynie to regulowałem prędkością i przyśpieszeniem
    - przy mach 3 to wiem że regulowałem bo jest specjalna zakładka do tego gdzie się ustawią parametry silnika

    częstotliwości jakie mnie interesują to od 0 do 10KHz

    hmmm a w jaki sposób można to wykonać?

  • #5 16 Mar 2017 18:59
    endurasek
    Poziom 14  

    A wiec co już wypróbowałem:

    Kod: c
    Zaloguj się, aby zobaczyć kod



    Kod: c
    Zaloguj się, aby zobaczyć kod


    Kod: c
    Zaloguj się, aby zobaczyć kod


    Kod: c
    Zaloguj się, aby zobaczyć kod

  • #6 20 Mar 2017 11:34
    arturt134
    Poziom 26  

    Ustawiasz przyspieszenie 10000 kroków/s^2. Czyli prędkość silnika powinna się zmienić o 10000 kroków na sekundę w ciągu jednej sekundy. Pytanie: czy silnik da rady?
    Jeżeli silnik przestaje się kręcić i zaczyna burczeć, to oznacza, że jednak nie daje rady....

    Proponuję zmniejszyć przyspieszenie, znacznie, np. do 100.
    Wartość przyspieszenia musisz dobrać do samego silnika oraz do jego obciążenia.

  • #7 20 Mar 2017 21:35
    endurasek
    Poziom 14  

    Proszę się nie sugerować rampa czy prędkością bo zmieniałem i dalej to samo. Silnik pracuje na stole bez obciążenia. Wydaje mi że to może chodzi o poziom tego sygnału bo... Z Arduino sygnał wychodzi ok 2,5v a zrobiłem generator na ne555 i tam przy 5v zasilania na wyjściu miałem ok 4v i działało dobrze bez utraty kroków.

  • #8 26 Mar 2017 17:42
    endurasek
    Poziom 14  

    Wydaje mi się że znalazłem przyczynę moich problemów, zdaje się że przyczynną był zbyt krótki impuls sterujący
    parametr setMinPulseWidth(350) daje ok 62% wypełnienia ale problem się inny pojawił. Nie jestem w stanie zwiększyć obrotów, max ile umiem wydusić z programu to wartość 4220(doświadczalnie) powyżej tej wartości częstotliwość na wyjściu już nie reaguje. Może jakieś pomysły???


    Kod: c
    Zaloguj się, aby zobaczyć kod