logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Program do sterowania silnikiem krokowym na Arduino.

sosna234 22 Lis 2019 18:26 9234 17
  • #1 18294402
    sosna234
    Poziom 4  
    Posty: 43
    Ocena: 23
    Witam,
    Szukam gotowego programu do Arduino Uno, kopiuj wklej
    Co by obracał wałem silnika krokowego prawo i lewo ktoś coś może podesłać ?
  • #3 18294641
    sosna234
    Poziom 4  
    Posty: 43
    Ocena: 23
    wgrałem ten program ale silnik wykonuje ruchy tylko w jedną strone zgodnie z wskazówkami zegara a w drugą już nie chce
    Chodzi mi o silnik ten co na zdj
    Poradzisz co na to ?
    Załączniki:
    • Program do sterowania silnikiem krokowym na Arduino. pobrane.jpg (7.14 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #4 18294733
    sosna234
    Poziom 4  
    Posty: 43
    Ocena: 23
    odpowie ktoś?
  • Pomocny post
    #5 18294736
    Konto nie istnieje
    Poziom 1  
  • #6 18294748
    sosna234
    Poziom 4  
    Posty: 43
    Ocena: 23
    ULN2003 taki
  • Pomocny post
    #8 18294775
    _jta_
    Specjalista elektronik
    Posty: 48808
    Pomógł: 3197
    Ocena: 4182
    Zobacz https://www.arduino.cc/en/Reference/StepperStep - tu piszą, że można kręcić w obie strony. Biblioteka na to ma pozwalać, ale program tego nie wykorzystuje.

    Nie napisałeś, w jaki sposób próbowałeś, czy chciałeś zmieniać kierunek obrotów. Najprościej w linii 44 dopisać '-' przed argumentem funkcji, i powinno się kręcić w drugą stronę.
  • #9 18296133
    sosna234
    Poziom 4  
    Posty: 43
    Ocena: 23
    wgrałem ten program co na obrazku i silnik cały czas kręci sie w prawo strone z 1 sekundowym stopem
    Załączniki:
    • Program do sterowania silnikiem krokowym na Arduino. Bez tytułu.png (109.69 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #10 18296135
    sosna234
    Poziom 4  
    Posty: 43
    Ocena: 23
    Nie wiem o co chodzi,prosze pomóżcie mi z tym
  • #11 18296606
    _jta_
    Specjalista elektronik
    Posty: 48808
    Pomógł: 3197
    Ocena: 4182
    Napisałeś jako argument funkcji -stepsPerRevolution - a chyba miało być -stepsPerRevolution/100. Dopisz te /100 i zobacz, czy przy zmianie znaku będzie się zmieniał kierunek obrotu. Bez tego może nie działać, bo argument jest za duży. A o ile silnik się obracał między zatrzymaniami?
  • #12 18298456
    sosna234
    Poziom 4  
    Posty: 43
    Ocena: 23
    Jutro podesle filmik a te 100 dopisać - steps per revolution czy na gurze gdzie nie ma minusa ?
  • #13 18298600
    _jta_
    Specjalista elektronik
    Posty: 48808
    Pomógł: 3197
    Ocena: 4182
    A nie umiesz słownie określić (np. "robi po pół obrotu")? Sensowniej by było przy wywołaniu funkcji - jak zdefiniujesz, że stepsPerRevolution to 200/100, to będzie to nieprawda. Ale dla Arduino to nie ma znaczenia.
  • #14 18299110
    Konto nie istnieje
    Poziom 1  
  • #15 18301035
    Konto nie istnieje
    Poziom 1  
  • #16 19681910
    gkgkgk
    Poziom 11  
    Posty: 340
    Pomógł: 1
    Ocena: 25
    Witam,

    zacząłem zabawę z Arduino i mam podobny problem, silnik (28BYJ-48) nie wykonuje zmiany kierunku obrotów, kod taki:

    #include <Stepper.h>


    Stepper mojSilnik(32,8,9,10,11); //łączę INT1 z 8, INT2 z 9, etc

    int stepCount = 0; //ta linia nie wpływa na zachowanie silnika

    void setup() {

    }

    void loop() {

    mojSilnik.setSpeed(300);
    mojSilnik.step(512);
    delay(1000);
    }

    Silnik wykonuje 1/4 obrotu (w prawo), zatrzymuje się na 1s, następne 1/4 obrotu, itd. Po zmianie znaku na -512, nadal kręci się tylko w prawo.

    Zwolniłem setSpeed do 1 i wtedy obserwowałem kolejność zapalania par diód A,B,C,D - sekwencja przy 512 jest inna niż przy -512, tylko efektu zmiany kierunku obrotu nie ma. Dlaczego?

    Pozdrawiam
  • #17 19681999
    lopr_pol
    Poziom 32  
    Posty: 1691
    Pomógł: 161
    Ocena: 476
    Spróbuj zmienić kolejność wyprowadzeń w komendzie mojSilnik np. na moj Silnik(32, 8,11,9,10);
  • #18 19682096
    gkgkgk
    Poziom 11  
    Posty: 340
    Pomógł: 1
    Ocena: 25
    @ lopr_pol, dziękuję za radę, rzeczywiście ta kolejność jest przyczyną, ale prawidłowa to: Stepper mojSilnik(32,8,10,9,11);. Znalazłem to na YouTube, "Stepper Motors with Arduino - Controlling Bipolar & Unipolar stepper motors", 18'40". Dla Twojej wersji, silnik się kręcił ciągle w lewo, :-). W Googlach ten temat pojawia w wielu dyskusjach, co ciekawe wszędzie podają kolejność 8,9,10,11 i czasami działa. Może fabrycznie czasami są inaczej polutowane cewki?

    Pozdrawiam

Podsumowanie tematu

✨ Użytkownik poszukiwał gotowego programu do sterowania silnikiem krokowym na Arduino Uno, który umożliwiałby obrót w prawo i lewo. Otrzymał kilka linków do tutoriali oraz wskazówki dotyczące modyfikacji kodu, aby umożliwić zmianę kierunku obrotów. Problemy z kierunkiem obrotów były związane z błędnym ustawieniem argumentów w funkcji oraz z połączeniami między modułem ULN2003 a płytką Arduino. Użytkownicy sugerowali również sprawdzenie poprawności połączeń oraz dostosowanie parametrów do specyfikacji konkretnego silnika krokowego, co jest kluczowe dla prawidłowego działania.
Wygenerowane przez model językowy.
REKLAMA