Sterowanie silnikiem krokowym - podstawy
Sterowanie silnikiem krokowym - podstawy
po chwili analizy zrozumialem co napisales i podoba mi sie...genialnie proste.niemniej musze to wprowadzic w zycie i niestety nie potrafiee...
mam 4 pozycje w tabeli (tn chce miec)
1000000
0100000
0010000
0001000
wysylane na port lpt (to potrafie) - port out.vi
w reszcie zatonalem...i probuje wpasc na jakis sposob zeby to zrealizzowac
dziekuje za tlumaczenie tak czy inaczej...duzo dalo
mam 4 pozycje w tabeli (tn chce miec)
1000000
0100000
0010000
0001000
wysylane na port lpt (to potrafie) - port out.vi
w reszcie zatonalem...i probuje wpasc na jakis sposob zeby to zrealizzowac
dziekuje za tlumaczenie tak czy inaczej...duzo dalo
Re: Sterowanie silnikiem krokowym - podstawy
Szkoda tylko że chcesz mieć błędne wartości w tej tablicy :]
Narysowałem krótki program generujący ustawienia bitów dla pracy pełnokrokowej silnika 2-fazowego unipolarnego (w załączniku -> LV7.1).
Bity generowane przez program odpowiadają fazą silnika
7 6 5 4 3 2 1 0
B /B A /A 0 0 0 0
Pamiętaj też o tym, że takie silniki krokowe mają różne konfiguracje faz na złączach. Z tych co ja używałem były 2 rodzaje:
1. GND
2. GND
3. A
4. /A
5. B
6. /B
oraz
1. GND
2. B
3. /B
4. GND
5. A
6. /A
Identyfikacje ustawienia najlepiej dokonać omomierzem. rezystancja pomiędzy A i /A (lub B i /B) będzie ok. 2 razy większą niż między fazą (np. A) a odczepem GND.
To chyba już wszystko co jest ci potrzebne, powodzenia
Narysowałem krótki program generujący ustawienia bitów dla pracy pełnokrokowej silnika 2-fazowego unipolarnego (w załączniku -> LV7.1).
Bity generowane przez program odpowiadają fazą silnika
7 6 5 4 3 2 1 0
B /B A /A 0 0 0 0
Pamiętaj też o tym, że takie silniki krokowe mają różne konfiguracje faz na złączach. Z tych co ja używałem były 2 rodzaje:
1. GND
2. GND
3. A
4. /A
5. B
6. /B
oraz
1. GND
2. B
3. /B
4. GND
5. A
6. /A
Identyfikacje ustawienia najlepiej dokonać omomierzem. rezystancja pomiędzy A i /A (lub B i /B) będzie ok. 2 razy większą niż między fazą (np. A) a odczepem GND.
To chyba już wszystko co jest ci potrzebne, powodzenia
Sterowanie silnikiem krokowym - podstawy
zobilem juz sobie plytke z separacja galwaniczna zeby czegos nie spalic...i probowalem przy pomocy jakichs dosowych programikow i wydawalo mi sie ze wydaje mi sie dobrze...ale widac zle sie wydawalo :]...ale jak cos przestawie tabelke
mysle teraz jak to zlozyc w calosc...mniej wiecej rozumiem to co skleciles w vi...ale troche wyluszcze co ma robic moj program:
ma miec 2 tryby..reczny i automat
reczny nie klopot - ma zrobic zrzut ekranu i waveform dane przeslac do txt...dziala slicznie
tryb automatyczny ma skanowac z uzyciem silniczka i co zadana ilosc krokow ma zrobic zadana ilosc pomiarow...zrobilem sobie podwodjnego loopa...i wszystko niby dziala..robi zrzut co zadana ilosc krokow ..ale zrzuca za kazdym razem to samo...loop blokuje dzialanie reszty? wykonywany jest tylko on chyba? poki sie nie skonczy...jest jakis sposob na "wstrzykiwanie danych" do loopa albo inny wynalazek zeby zrobic typowa petle?
mysle teraz jak to zlozyc w calosc...mniej wiecej rozumiem to co skleciles w vi...ale troche wyluszcze co ma robic moj program:
ma miec 2 tryby..reczny i automat
reczny nie klopot - ma zrobic zrzut ekranu i waveform dane przeslac do txt...dziala slicznie
tryb automatyczny ma skanowac z uzyciem silniczka i co zadana ilosc krokow ma zrobic zadana ilosc pomiarow...zrobilem sobie podwodjnego loopa...i wszystko niby dziala..robi zrzut co zadana ilosc krokow ..ale zrzuca za kazdym razem to samo...loop blokuje dzialanie reszty? wykonywany jest tylko on chyba? poki sie nie skonczy...jest jakis sposob na "wstrzykiwanie danych" do loopa albo inny wynalazek zeby zrobic typowa petle?
Re: Sterowanie silnikiem krokowym - podstawy
hmm...sprawdzilem z silnikiem...i moje wartosci byly dobre w polaczeniu z tym co wywnioskowalem m. in. z tego co dostalem od Ciebie odpalilem silniczek...
...tak jak w poprzednim poscie namarudzilem...pomiar pojedynczy dziala...przy pomiarze wielokrotnym silniczek sie kreci robi sie zrzut ekranu ale waveform sie nie zapisuje..wiem juz czemu (bo to loop while)...ma ktos rozwiazanie? chetnie pojasnie jak napisalem nie po posku cos
sz
...tak jak w poprzednim poscie namarudzilem...pomiar pojedynczy dziala...przy pomiarze wielokrotnym silniczek sie kreci robi sie zrzut ekranu ale waveform sie nie zapisuje..wiem juz czemu (bo to loop while)...ma ktos rozwiazanie? chetnie pojasnie jak napisalem nie po posku cos
sz
Re: Sterowanie silnikiem krokowym - podstawy
Najwyraźniej masz silnik innego typu (prawdopodobnie bipolarny) lub z jakimś układem pośredniczącym. Zasugerowałem się tym co było napisane na początku tego tematu, niezauważyłem że nie jesteś jego autorem.
Nie wiem z czym dokładnie masz problem. Jeżeli chcesz realizować pomiary w trakcie obrotu silnika (np. po każdym kroku) to proponuje program rozłożyć na dwa wątki. Jedna pętla będzie obsługiwała silnik (może być tu np. timed loop lub zwykła pętla while z bloczkiem Wait until next multiple) a druga pomiary. Sugeruje użyć User Event generowany w pętli z silnikiem.
Nie wiem z czym dokładnie masz problem. Jeżeli chcesz realizować pomiary w trakcie obrotu silnika (np. po każdym kroku) to proponuje program rozłożyć na dwa wątki. Jedna pętla będzie obsługiwała silnik (może być tu np. timed loop lub zwykła pętla while z bloczkiem Wait until next multiple) a druga pomiary. Sugeruje użyć User Event generowany w pętli z silnikiem.
Re: Sterowanie silnikiem krokowym - podstawy
tak dokladie: chcę realizować X pomiarow co Y krokow silnika
i narazie zrobilem case structure z 3 blokami:
1 ruch silnika w przod lub tyl zaleznie od wymagan uzytkownika
2 pomiar tu chcialbym miec cos co zapisze wartosc array do pliku
3. wait 100ms i beep zeby bylo wiadomo ze zadzialalo
pomiar rozumiem ze powinienem wyprowadzic do innej struktury a w case structre zawrzec jakis "trigger" poniewaz zapisywane do pliku jest array a gdy robie zwykla petle zapisuje mi caly czas to samo
ale chyba nie potrafie skozystac z user event jeszcze...przeczytalem w innym watku ze mozna to zrobic lokalna zmienna...to zadziala?
pozdrawiam
i narazie zrobilem case structure z 3 blokami:
1 ruch silnika w przod lub tyl zaleznie od wymagan uzytkownika
2 pomiar tu chcialbym miec cos co zapisze wartosc array do pliku
3. wait 100ms i beep zeby bylo wiadomo ze zadzialalo
pomiar rozumiem ze powinienem wyprowadzic do innej struktury a w case structre zawrzec jakis "trigger" poniewaz zapisywane do pliku jest array a gdy robie zwykla petle zapisuje mi caly czas to samo
ale chyba nie potrafie skozystac z user event jeszcze...przeczytalem w innym watku ze mozna to zrobic lokalna zmienna...to zadziala?
pozdrawiam
Re: Sterowanie silnikiem krokowym - podstawy
[img]http://www.as.pila.pl/lverror.JPG[/img]
zalczylem cos co opisuje moj problem...tzn z tego miejsca wyniknal
w poprrzednim poscie opisalem go szezej
zalczylem cos co opisuje moj problem...tzn z tego miejsca wyniknal
w poprrzednim poscie opisalem go szezej
Re: Sterowanie silnikiem krokowym - podstawy
Ja bym jednak użył user event. Przejrzyj załącznik, powinno się wszystko wyjaśnić.
Re: Sterowanie silnikiem krokowym - podstawy
hmmm...przyklad faktycznie rozjasniajacy...ale przenioslem to do siebie i nie dziala moze dlatego ze mam caly prawie program w ramce while...i teraz tak sobie mysle ze to glupie
albo dlatego ze moj create evnent wypadl w loopie - wlasnie kombinuje co mu jest ze nie dziala..rozwiazanie pewnie jak zwykle w lv jest banalne
zdecydowanie wiem ze to co zrobilem bylo zle juz przezucam sie na user event
albo dlatego ze moj create evnent wypadl w loopie - wlasnie kombinuje co mu jest ze nie dziala..rozwiazanie pewnie jak zwykle w lv jest banalne
zdecydowanie wiem ze to co zrobilem bylo zle juz przezucam sie na user event
- fajfi
- Posty: 185
- Rejestracja: 28 sty 2004 00:00
- Wersja środowiska: LabVIEW 2010
- Lokalizacja: Wrocław
Re: Sterowanie silnikiem krokowym - podstawy
Cześć,
tym razem mam pytanie dotyczące sterowania silnikiem krokowym bipolarnym. Czy ktoś ma doświadczenie z tym rodzajem silników?
Jak powinna wyglądać sekwencja sygnałów na pinach LPT?
Aha i czy LPT nadaje się do sterowania takim silnikiem?
Pozdrawiam
Fajfi
tym razem mam pytanie dotyczące sterowania silnikiem krokowym bipolarnym. Czy ktoś ma doświadczenie z tym rodzajem silników?
Jak powinna wyglądać sekwencja sygnałów na pinach LPT?
Aha i czy LPT nadaje się do sterowania takim silnikiem?
Pozdrawiam
Fajfi
Sterowanie silnikiem krokowym - podstawy
LPT w zasadzie sie nadaje bo jest portem równoległym, ale koniecznie trzeba zrobić optoizolację na liniach które będą wykorzystywane.
Proponuję przeglądnąć Elektronike Praktyczną, w numerze 8/2001 w miniprojektach, jest coś co nadaje się po małych przeróbkach.
Pytanie - czy na pewno LPT? może prosta aplikacja na atmelowskim 89C2051 ? Pozwala to zrealizować sterowanie przez port szeregowy. Jeśli bedziesz potrzebował komunikacji przez USB zastosujesz konwerter FTDI albo weżmiesz gotowy.
:?:
Proponuję przeglądnąć Elektronike Praktyczną, w numerze 8/2001 w miniprojektach, jest coś co nadaje się po małych przeróbkach.
Pytanie - czy na pewno LPT? może prosta aplikacja na atmelowskim 89C2051 ? Pozwala to zrealizować sterowanie przez port szeregowy. Jeśli bedziesz potrzebował komunikacji przez USB zastosujesz konwerter FTDI albo weżmiesz gotowy.
:?:
Re: Sterowanie silnikiem krokowym - podstawy
Stworzyłem w LabVIEW 2010 prosty kontroler silnika krokowego unipolarnego na porcie LPT. Jest to jeden z moich pierwszych projektów w środowisku LabVIEW więc proszę o wyrozumiałość i uwagi na temat błędnych rozwiązań. Jeżeli ktoś zmodyfikuje jakoś ten projekt to proszę by dorzucił plik do tematu.
- Załączniki
-
- KONTROLER SILNIKA KROKOWEGO NA LPT v1.llb
- kontroler unipolarnego silnika krokowego na porcie LPT
- (212.93 KiB) Pobrany 362 razy
CLAD
-
- Posty: 109
- Rejestracja: 26 lut 2010 13:41
- Wersja środowiska: LabVIEW 2010
- Lokalizacja: Bydgoszcz
Re: Sterowanie silnikiem krokowym - podstawy
Sadze że kontrolowanie silnika przez por LPT nie jest najlepszym rozwiązanie (ale na pewno działa ). Ja zazwyczaj używam zewnętrznych kontrolerów (parę nawet sam wystrugałem), jeżeli aplikacja toleruje USB to ostatnio wpadł mi w oko: http://www.phidgets.com/products.php?ca ... ct_id=1063
Re: Sterowanie silnikiem krokowym - podstawy
IMHO LPT dość dobrze sprawdza się w tej roli jeżeli chodzi o jakieś proste aplikacje, no i jest dobre dla początkujących.
Proszę napiszcie słowo komentarza do mojego programu?
Czy przyjęte w nim rozwiązania są trafne, gdzie popełniłem błędy i jak można zrobić to lepiej?
Ja sam już widzę kilka niedociągłości jak np. opóźniona reakcja pętli pausy przy stopowaniu wykonywanego obrotu. Wiecie jak to poprawić?
Jeśli ktoś z was napisał podobna aplikację i może się nią podzielić to również proszę by wrzucił ją do wątku.
Proszę napiszcie słowo komentarza do mojego programu?
Czy przyjęte w nim rozwiązania są trafne, gdzie popełniłem błędy i jak można zrobić to lepiej?
Ja sam już widzę kilka niedociągłości jak np. opóźniona reakcja pętli pausy przy stopowaniu wykonywanego obrotu. Wiecie jak to poprawić?
Jeśli ktoś z was napisał podobna aplikację i może się nią podzielić to również proszę by wrzucił ją do wątku.
CLAD