Silnik krokowy Arduino - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Programowanie w Arduino (https://forum.arduinopolska.pl/dzial-programowanie-w-arduino) +--- Wątek: Silnik krokowy Arduino (/watek-silnik-krokowy-arduino) |
Silnik krokowy Arduino - Gizior - 05-10-2018 Witam . Potrzebuję zaprogramować swój silnik krokowy tak aby obracał się o określoną liczbę kroków. niestety nie wychodzi mi to, chcialem zrobic zliczanie liczby kroków lecz co chwile wartosc w monitorze portu szeregowego jest 1,0 chociaz nie kasuje mi sie chyba w petli ta wartość. ktos ma pomysł jak to zrobić? Arduino uno, sterownik a4988, silnik krokowy jk42hs40-0504 i joystick arduino. Kod: #define step_pin 3 RE: Silnik krokowy Arduino - kaczakat - 05-10-2018 Znajdź sobie bibliotekę AccelStepper, naucz się jej obsługiwać. Albo dodawaj jeszcze więcej delay w loop, jak wolisz. RE: Silnik krokowy Arduino - Gizior - 05-10-2018 (05-10-2018, 14:59)kaczakat napisał(a): Znajdź sobie bibliotekę AccelStepper, naucz się jej obsługiwać. Albo dodawaj jeszcze więcej delay w loop, jak wolisz. Szukałem też, ale wszystkie przyklady co widzialem sterowania steruje sie kazda cewka osobno (4 piny),a tutaj steruje tylko jednym jako kroki i jednym jako kierunek obrotu i nie wiem jak to powiązac. RE: Silnik krokowy Arduino - kaczakat - 05-10-2018 OK, nie zauważyłem, że używasz sterownika a4988, do tego ta biblioteka nie jest potrzebna, bo już to samo robi ten driver. Nie mniej jednak zajrzyj do niej i zobacz w jaki sposób jest realizowane obsługa czasu. Ewentualnie w kursie na forbot poczytaj o millis, micros. Nie rób tego na delay. Docelowo to robi się w przerwaniu, tak by ruch był płynny i niezależny od tego w czym dłubie akurat pętla loop. Ewentualnie do samego sterownika też są biblioteki, np. laurb9 https://github.com/laurb9/StepperDriver wszystko masz tu opisane ze schematami. Nie wiem co tym chciałeś osiągnąć poza 0 i 1 - Serial.print(digitalRead(kroki)); Pewnie cały kurs by Ci nie zaszkodził. RE: Silnik krokowy Arduino - es2 - 05-10-2018 (05-10-2018, 15:34)Gizior napisał(a): przyklady co widzialem sterowania steruje sie kazda cewka osobno (4 piny),a tutaj steruje tylko jednym jako kroki i jednym jako kierunek obrotu i nie wiem jak to powiązac. Znasz rodzaje i zasadę działania silników krokowych i układu a4988? RE: Silnik krokowy Arduino - Gizior - 05-10-2018 (05-10-2018, 16:13)kaczakat napisał(a): OK, nie zauważyłem, że używasz sterownika a4988, do tego ta biblioteka nie jest potrzebna, bo już to samo robi ten driver. Nie mniej jednak zajrzyj do niej i zobacz w jaki sposób jest realizowane obsługa czasu. Ewentualnie w kursie na forbot poczytaj o millis, micros. Nie rób tego na delay. Docelowo to robi się w przerwaniu, tak by ruch był płynny i niezależny od tego w czym dłubie akurat pętla loop. Oki zajrzę, nie mniej jednak chciałem sobie rozłożyć to i docelowo chciałnbym sterowac joystickiem plynnie obrót silnika krokowego ale chciałbym mu zrobić tzw. blokade. Chciałem to wykonać w ten sposób, lecz cały czas x się zeruje i nie mam pojęcia jak zrobić tak aby po np. 200 krokow pomimo ze jostick jest w pozycji bocznej zatrzymało krokowca choćby nie wiem co. Kod: #define step_pin 3 RE: Silnik krokowy Arduino - es2 - 05-10-2018 (05-10-2018, 16:32)Gizior napisał(a): nie mam pojęcia jak zrobić tak aby po np. 200 krokow pomimo ze jostick jest w pozycji bocznej zatrzymało krokowca choćby nie wiem co.Zliczaj kroki, jak osiągną liczbę 200 to nie steruj silnikiem. RE: Silnik krokowy Arduino - kaczakat - 05-10-2018 To że coś chcesz to żaden problem, ale na razie nie rozumiesz do czego służą podstawowe polecenia w Arduino. Idź sobie przećwicz kurs. Niby co teraz ma robić to: Kod: for(int x = 0 ; x < 200; x++) { Wygląda to jak pisane przez kota wrzuconego do wanny. RE: Silnik krokowy Arduino - es2 - 06-10-2018 (05-10-2018, 22:08)kaczakat napisał(a): Niby co teraz ma robić to: Zamierzeniem autora kodu, z pewnością było wyświetlenie stanu wszystkich wejść Arduino na terminalu. Niestety, autor zapomniał, że ŻADNE Arduino, nawet na ARM, nie ma 200 wejść :-) A może program pisany metodą prób i błędów? Uda się, nie uda. U człowieka uda są dwa, jak na razie jest jednak to "nieudo". |