Sterowanie silnikiem krokowym - podstawy
- fajfi
- Posty: 185
- Rejestracja: 28 sty 2004 00:00
- Wersja środowiska: LabVIEW 2010
- Lokalizacja: Wrocław
Sterowanie silnikiem krokowym - podstawy
Cześć.
Chciałbym za pomocą Labview sterować silnikiem krokowym. Niestety nie mam jeszcze w dziedzinie sterowania żadnego doświadczenia.
Posiadam silnik krokowy 6-cio końcówkowy, 5V, oporność 4,8 - 5 omów.
Czego jeszcze potrzebuję do sterowania od strony sprzętowej i programowej.
I czy da się rozwiązać to w sposób w miarę niedrogi?
Pozdrawiam
Łukasz
Chciałbym za pomocą Labview sterować silnikiem krokowym. Niestety nie mam jeszcze w dziedzinie sterowania żadnego doświadczenia.
Posiadam silnik krokowy 6-cio końcówkowy, 5V, oporność 4,8 - 5 omów.
Czego jeszcze potrzebuję do sterowania od strony sprzętowej i programowej.
I czy da się rozwiązać to w sposób w miarę niedrogi?
Pozdrawiam
Łukasz
Sterowanie silnikiem krokowym - podstawy
Układ scalony ULN2803, wtyczka DB25 męska, dobrze było by też mieć cztery transoptory PC817 dla separacji galwanicznej i oczywiście plytka uniwersalna. Tyle o sprzęcie.
Od strony programowej - obsługa portu LPT w LabVIEW.
Najlepiej bedzie zacząć od istniejących przykładów.
Od strony programowej - obsługa portu LPT w LabVIEW.
Najlepiej bedzie zacząć od istniejących przykładów.
Re: Sterowanie silnikiem krokowym - podstawy
to ja jeszcze dorzuce troche w miarę przystępnej teorii o sterowaniu silnikow skokowych...
http://www.automatykaonline.pl/poradnik ... ?kat=4&l=0
http://www.automatykaonline.pl/poradnik ... ?kat=4&l=0
Ostatnio zmieniony 19 maja 2008 21:00 przez groovebox, łącznie zmieniany 1 raz.
"...wszystko sie kiedys konczy, oprocz Mody na Sukces...."
- fajfi
- Posty: 185
- Rejestracja: 28 sty 2004 00:00
- Wersja środowiska: LabVIEW 2010
- Lokalizacja: Wrocław
Re: Sterowanie silnikiem krokowym - podstawy
Dziękuję.
Ale jak
to wszystko połączyć, żeby działało?
Łukasz
Ale jak
to wszystko połączyć, żeby działało?
Łukasz
- Koza
- Administrator
- Posty: 152
- Rejestracja: 20 gru 2006 00:00
- Wersja środowiska: LabVIEW 2011
- Lokalizacja: Olsztyn
Re: Sterowanie silnikiem krokowym - podstawy
Możesz skorzystać z pomocy internetu:
http://www.elektroda.pl/rtvforum/topic637364.html
Przykład jest prosty, myślę, że warto zastanowić się nad wykorzystaniem transoptorów a już na pewno diod zabezpieczających.
Pozdrawiam,
Koza
http://www.elektroda.pl/rtvforum/topic637364.html
Przykład jest prosty, myślę, że warto zastanowić się nad wykorzystaniem transoptorów a już na pewno diod zabezpieczających.
Pozdrawiam,
Koza
- fajfi
- Posty: 185
- Rejestracja: 28 sty 2004 00:00
- Wersja środowiska: LabVIEW 2010
- Lokalizacja: Wrocław
Sterowanie silnikiem krokowym - podstawy
Cześć,
Układ już został zmontowany z uwzględnieniem transoptorów.
Gdy podaję z "zewnątrz" impulsy na odpowiednie końcówki, to silnik robi kroki.
Niestety sprawa komplikuje się, gdy podłączam się do portu równoległego:
1. Próbowałem użyć tego przykładu "stepper_motor.vi", niestety nie działa.
Tak przy okazji doczytałem w tym przykładzie - cytuję:
"In Port.vi and Out Port.vi, which this example uses, are not supported on Windows Vista or later"
Tak się składa, że mam Vistę. Czy da się jakoś ominąć ten problem?
dla jasności mam LV8.5
2. Sprawdziłem w BIOSie, że LPT mam ustawione jako SPP.
3. Jeden z forumowiczów napisał, że należy ściągnąć "Port and Memory Utilities for Windows", niestety pod podanym linkiem - http://www.labview.pl/Downloa...cid=3.html nie mogę nic podobnego znaleźć.
4. Przyjrzałem się dostępnym przykładom w helpie dotyczącym portu równoległego, ale skąd mam wiedzieć jaki powinien być "O/p port address" oraz w jaki sposób skierować impuls na konkretny pin? Interesują mnie tylko piny: 2, 3, 4 i 5.
Pozdrawiam i proszę o pomoc
Łukasz
Układ już został zmontowany z uwzględnieniem transoptorów.
Gdy podaję z "zewnątrz" impulsy na odpowiednie końcówki, to silnik robi kroki.
Niestety sprawa komplikuje się, gdy podłączam się do portu równoległego:
1. Próbowałem użyć tego przykładu "stepper_motor.vi", niestety nie działa.
Tak przy okazji doczytałem w tym przykładzie - cytuję:
"In Port.vi and Out Port.vi, which this example uses, are not supported on Windows Vista or later"
Tak się składa, że mam Vistę. Czy da się jakoś ominąć ten problem?
dla jasności mam LV8.5
2. Sprawdziłem w BIOSie, że LPT mam ustawione jako SPP.
3. Jeden z forumowiczów napisał, że należy ściągnąć "Port and Memory Utilities for Windows", niestety pod podanym linkiem - http://www.labview.pl/Downloa...cid=3.html nie mogę nic podobnego znaleźć.
4. Przyjrzałem się dostępnym przykładom w helpie dotyczącym portu równoległego, ale skąd mam wiedzieć jaki powinien być "O/p port address" oraz w jaki sposób skierować impuls na konkretny pin? Interesują mnie tylko piny: 2, 3, 4 i 5.
Pozdrawiam i proszę o pomoc
Łukasz
- fajfi
- Posty: 185
- Rejestracja: 28 sty 2004 00:00
- Wersja środowiska: LabVIEW 2010
- Lokalizacja: Wrocław
Sterowanie silnikiem krokowym - podstawy
Cześć!
Silnik chodzi jak brzytwa.
Bardzo przepraszam, za panikę, której uległem przy poprzednim poście.
Trochę odpoczynku rozjasnia umysł i sprawa okazała się nadzwyczaj banalna.
Aż mi wstyd...
Pozdrawiam
Łukasz
Silnik chodzi jak brzytwa.
Bardzo przepraszam, za panikę, której uległem przy poprzednim poście.
Trochę odpoczynku rozjasnia umysł i sprawa okazała się nadzwyczaj banalna.
Aż mi wstyd...
Pozdrawiam
Łukasz
Re: Sterowanie silnikiem krokowym - podstawy
mam prosbe...jako ze radze sobie jakotako z labview...genialny jest...to z elektroniki jestem noga...ale na tyle ze potrafie polutowac conieco...wiec mam prosbe o schemacik jak wlutowac owe transoptory w uklad...mam jakis domysl ale chyba zle mysle
Re: Sterowanie silnikiem krokowym - podstawy
nie wiem czy pomoglo...zlutowalem uklad....teraz zobaczymy czy ruszy..
i jeszcze pytanie o podstawy... na port lpt wysyla sie paczke 8 bitow i kazdy odpowiada za inny pin?
i jeszcze pytanie o podstawy... na port lpt wysyla sie paczke 8 bitow i kazdy odpowiada za inny pin?
Re: Sterowanie silnikiem krokowym - podstawy
Port LPT ma 3 rejestry:
danych, statusowy i kontrolny.
Rejestr danych odpowiada za piny portu D0-D7, każdy z bitów rejestru za odpowiedni pin na porcie.
Żeby ustawić konkretny bit możesz użyć takiego sposobu:
Pobierasz aktualną wartość portu, konwertujesz przy pomocy Number to Boolean Array (dostajesz 1-D boolean Array), ustawiasz interesujący cię bit (Replace Array Subset), znów konwertujesz Boolean Array to Number i wysyłasz z powrotem na port.
Więcej na temat programowania portu LPT znajdziesz tu:
Programowanie portu LPT
Pozdrawiam
danych, statusowy i kontrolny.
Rejestr danych odpowiada za piny portu D0-D7, każdy z bitów rejestru za odpowiedni pin na porcie.
Żeby ustawić konkretny bit możesz użyć takiego sposobu:
Pobierasz aktualną wartość portu, konwertujesz przy pomocy Number to Boolean Array (dostajesz 1-D boolean Array), ustawiasz interesujący cię bit (Replace Array Subset), znów konwertujesz Boolean Array to Number i wysyłasz z powrotem na port.
Więcej na temat programowania portu LPT znajdziesz tu:
Programowanie portu LPT
Pozdrawiam
- fajfi
- Posty: 185
- Rejestracja: 28 sty 2004 00:00
- Wersja środowiska: LabVIEW 2010
- Lokalizacja: Wrocław
Sterowanie silnikiem krokowym - podstawy
Cześć.
Tatamisi, jeśli nadal jesteś tym zainteresowany, to podeślij mi na priva swój email, to wyślę ci to co mam zrobione i działające.
Łącznie z vi-ajem
Pozdrawiam
Łukasz
Tatamisi, jeśli nadal jesteś tym zainteresowany, to podeślij mi na priva swój email, to wyślę ci to co mam zrobione i działające.
Łącznie z vi-ajem
Pozdrawiam
Łukasz
Re: Sterowanie silnikiem krokowym - podstawy
dodam BARDZO zainteresowany :0
sslo(małpka)inbit.pl
chetnie sie swoim tez podziele jak ruszy
sslo(małpka)inbit.pl
chetnie sie swoim tez podziele jak ruszy
Re: Sterowanie silnikiem krokowym - podstawy
AzazeL podstawy pojalem..Dziekować w sumie to proste jest ...jesli nie liczyc tego ze ktos kiedys wymyslil XP...chodzilo mi w sumie o doswiadczenia z LV jak to zrobic praktycznie i ladnie bo moje myslenie w LV jest chyba dosc siermiezne ciagle
Re: Sterowanie silnikiem krokowym - podstawy
Takiego programu nie mam napisanego, a w zasadzie narysowanego :]
Z czym masz właściwie problem? Ja nie mam obecnie wolnego czasu na tyle aby zrobić ci cały program.
Mogę polecić takie podejście:
Stwórz tablicę z kolejnymi ustawieniami bitów dla każdego z kroków (masz silnik 2 fazowy z odczepem w środku, tak więc to będą 4 ustawienia bitów dla pracy pełnokrokowej lub 8 dla półkrokowej).
Utwórz zmienną określającą index w tej tablicy i podłącz ją do shift register w pętli.
Jeżeli krok będzie np. w prawo to przy zakończeniu kroku zwiększasz wartość tej zmiennej, w przeciwnym wypadku odejmujesz (pamiętaj o tym że musisz dodać warunki. Dla pracy pełnokrokowej: Jeżeli zmienna > 3 to zmienna = 0 i Jeżeli zmienna < 0 to zmienna = 3).
Oczywiście zmienna podajesz w pętli na Index Array tablicy z poszczególnymi krokami. Wyjście z tego bloczku wysyłasz na port LPT.
Z czym masz właściwie problem? Ja nie mam obecnie wolnego czasu na tyle aby zrobić ci cały program.
Mogę polecić takie podejście:
Stwórz tablicę z kolejnymi ustawieniami bitów dla każdego z kroków (masz silnik 2 fazowy z odczepem w środku, tak więc to będą 4 ustawienia bitów dla pracy pełnokrokowej lub 8 dla półkrokowej).
Utwórz zmienną określającą index w tej tablicy i podłącz ją do shift register w pętli.
Jeżeli krok będzie np. w prawo to przy zakończeniu kroku zwiększasz wartość tej zmiennej, w przeciwnym wypadku odejmujesz (pamiętaj o tym że musisz dodać warunki. Dla pracy pełnokrokowej: Jeżeli zmienna > 3 to zmienna = 0 i Jeżeli zmienna < 0 to zmienna = 3).
Oczywiście zmienna podajesz w pętli na Index Array tablicy z poszczególnymi krokami. Wyjście z tego bloczku wysyłasz na port LPT.