Silniki krokowe i sterowanie portem LPT OCForum

background image

Nazwa użytkownika

Pamiętaj moje logowanie?

Hasło

Zaloguj się

Zarejestruj się

/

Nie pamiętam hasła

Overclockers.pl

Zarejestruj się

Pomoc

Galeria

Użytkownicy

Kalendarz

Dzisiejsze Posty

Szukaj

OCForum.pl

>

Modyfikacje

>

Elektronika

Silniki krokowe i sterowanie portem LPT

Elektronika Zagadnienia zw. z elektroniką pod każdą postacią.

Narzędzia wątku

Wygląd

Sun 13th May 2007, 01:19

#1 (permalink)

Ravender

Początkujący

Na forum od: 18 Mar 2007

Skąd: Łódź

Wiek: 25

Posty: 27

Siła Reputacji: 2

Reputacja: 24

Mój sprzęt

Benchmarki

Silniki krokowe i sterowanie portem LPT

Przedstawię tutaj fragmenty mojego artykułu na temat unipolarnych silników krokowych (całość

TUTAJ

). Jest to wstęp do zbudowania własnymi siłami

urządzeń sterowanych z komputera. Mam nadzieję że docenicie trud włożony w jego napisanie (punkty reputacji mile widziane

). Zapraszam do lektury

Zastrzegam, że nie ponoszę odpowiedzialności za ewentualne szkody. Wszelkie czynności (podłączanie obwodów do portu, używanie

programów itp) proszę wykonywać na własną odpowiedzialność

Silnik krokowy (ang. stepper motor) jest to silnik elektryczny, w którym wirnik nie obraca się ruchem ciągłym, lecz wykonuje za każdym razem ruch obrotowy o

ściśle ustalonym kącie. Dzieje się tak ponieważ do jego zacisków doprowadzany jest ciąg impulsów sterujących, a nie ciągłe (stałe bądź zmienne) napięcie.

Można je spotkać praktycznie we wszystkich urządzeniach elektrycznych, w których wymagana jest pewna precyzja obrotu, przesuwu lub innego rodzaju ruchu

(suwnice w drukarkach, skanerach, wycieraczki w samochodzie, cd-romy, fdd, zabawki i milion innych urządzeń).

Wyróżniamy wiele typów silników krokowych. Ze względu na łatwiejszy sposób sterowania, omówię tylko budowę silnika unipolarnego.

W najprostszej postaci silnik krokowy unipolarny składa się z wirnika, na którym znajdują się dwa bieguny N i S. Wokół wirnika umieszczone są cewki. Podając

odpowiednie impulsy na nie, te "aktywują się" i wirnik ustawia się w odpowiedniej pozycji. Przedstawia to rysunek poniżej:

Silnik unipolarny możemy rozpoznać po pięciu bądź sześciu przewodach. W przypadku pięciu przewodów, jeden z nich jest przewodem zasilającym a cztery

sygnałowymi. W przypadku sześciu przewodów, dwa są zasilającymi (z reguły i tak sie je łączy razem). Jeśli silnik ma cztery przewody, to znaczy że jest to

silnik bipolarny. Jego sterowanie jest trudniejsze i nie będę go tutaj omawiać.

Sterowanie silnikiem unipolarnym może odbywać się na kilka sposobów.

Pojedyncze krokowanie - w tym przypadku impulsy podaje się pojedynczo na kolejne cewki. Aby wirnik wykonał pełen obrót, należy sekwencję powtórzyć 12

razy. Jeden krok (impuls) to 7.5 stopnia. W dużym uproszczeniu koncepcję takiego sterowania przedstawia rysunek niżej:

Zwiększony moment obrotowy - w tym przypadku impulsy podaje się na dwie sąsiednie cewki. Silnik dzięki temu jest "silniejszy".

Nazwa użytko

background image

Sterowanie półkrokowe - w tym przypadku impulsy podaje się na zmianę na jedną i dwie cewki. Dzięki temu uzyskujemy większą rozdzielczość (silnik może

przyjmować wartości pośrednie ułożenia wirnika). Silnik wykonuje pełen obrót w 96 krokach. Jeden krok to 3.75 stopnia (oczywiście te parametry zależą od

konstrukcji silnika i mogą się różnić).

Należy jeszcze wspomnieć o dość praktycznej kwestii. Po wyjęciu silnika ze starego skanera, początkowo trudno ustalić które przewody prowadzą do cewek, a

które są przewodami zasilającymi. Przewody z silników krokowych najczęściej wychodzą w dwóch rzędach po trzy przewody (przy silnikach 6-przewodowych).

Najczęściej jest tak, że jeden rząd zasila dwie cewki, a przewód środkowy jest głównym przewodem zasilającym. W przypadku mojego silnika sytuacja wygląda

tak:

Port LPT

Naszym silnikiem będziemy sterować przy pomocy portu LPT, ponieważ najłatwiej go zaprogramować. Posiada osiem wyjść, więc spokojnie możemy podłączyć

pod niego np. osiem diodek LED lub dwa silniki krokowe.

Patrząc na takie złącze od frontu, czerwone kropki to właśnie wyjścia, natomiast niebieskie piny to ziemia (minus). Są one ze sobą połączone wiec zasadniczo

mógłby być tam równie dobrze jeden wielki pin

.

Na samym początku proponuję podłączenie do portu diody led. Sam skonstruowałem sobie specjalną końcówkę z ośmioma diodami. W razie potrzebny

podłączam ją pod port i od razu widzę jaki stan jest na którym wyjściu:

Moje diody to zwykłe czerwone na napięcie około 2V. Dołączyłem do nich rezystory 150R, aby nie uszkodzić diody a tym bardziej samego lpt:

Programowanie portu

Zasada sterowania portem jest stosunkowo prosta. Każdy z ośmiu pinów wyjściowych ma wagi, które są potęgą liczby 2. Pin D0 ma wagę 2^0 czyli 1. Port D7

ma wagę 2^7 czyli 128. Chcąc zapalić diodę, musimy ustawić pin do którego jest podłączona w stan wysoki, czyli jedynkę. Aby zapalić np. diod D2, wystarczy

wysłać na port liczbę 4, bo taką wagę ma pin D2. Aby zapalić diodę D6, na port trzeba wysłać liczbę 64. By zapalić diody tak jak na rysunku niżej (D1, D3, D4),

musimy wysłać na port liczbę równą sumie wag pinów, które chcemy ustawić w stan wysoki. Czyli 2+8+16 = 36. Dlatego też, w celu zapalenia wszystkich

diodek, wysyła się liczbę 255, aby zgasić wszystkie diody, zero. Prawda że proste?

W Windows Xp nie ma bezpośredniej możliwości obsługi portu LPT (obsług ę przeprowadza się poprzez sterownik). Dlatego aby ułatwi sobie życie, powstał

program

UserPort

. Plik UserPort.sys umieszczamy w "C:\WINDOWS\system32\drivers". Następnie uruchamiamy program. Pojawi si ę okienko w którym

wystarczy nacisnąć przycisk START. Od tej pory mamy możliwość wysyłania poleceń bezpośrednio do portu lpt.

Napisałem malutki programik, który umożliwia włączanie i wyłączanie diodek. Wystarczy zaznaczać odpowiednie "ptaszki" by dioda na danym pinie zapaliła się.

Po prawej wyświetla się suma wag zapalonych diodek. Po zamknięciu programu na port wysyłane jest zero. Można go ścignąć

STD

.

background image

screen (okno programu i zdjęcie zapalonych diodek)

Więcej programów można znaleźć na googlach.

Projekt interface'u

O ile z podłączeniem diod do LPT większego problemu nie ma, o tyle z podłączeniem silnika pojawia się mały problem. Cewki w nim się znajdujące, pobierają

stosunkowo duży prąd. Dlatego nie można silnika podłączyć bezpośrednio do portu, gdyż groziłoby to jego uszkodzeniem (a całkiem możliwe, że i płyty

głównej). Potrzebny będzie wzmacniacz, który dostarczy potrzebnej silnikowi energii. Najprostszym sposobem będzie zastosowanie scalonego układu ULN2003.

Nie będę się zbytnio rozpisywał na temat działania tej magicznej kostki. Powiem tylko, że w swojej strukturze posiada wzmacniacze (układ Darlingtona) i diody

zabezpieczające. Ma siedem wejść i siedem wyjść. Jego starszym bratem jest ULN2803, który ma osiem wejść i osiem wyjść. Układ który proponuję nie jest

idealny. W celu maksymalnego uproszczenia zrezygnowałem z tzw izolacji galwanicznej. Chodzi tutaj o to, że obwód silnika jest elektrycznie połączony z portem

lpt. Przy jakiś problemach typu zwarcie, spalenie silnika itp.. uszkodzeniu może ulec również port.

Schemat połączeń wygląda tak:

Jak widać, cztery przewody z portu lpt (D0, D1, D2, D3) poprowadzone są na cztery nóżki wejściowe układu 2003 (nóźki 1,2,3,4). Z wyjść układu 2003 (nóżki

13,14,15,16) sygnał wchodzi na cewki silnika krokowego.

Cały układ połączyłem na stole mojego biurka, wg powyższego schematu. Najpierw cztery kabelki pomiędzy lpt a uln2003. Potem z wyjść uln-a na silnik. Do

tego kabelki od zasilania i masy. W niektórych miejscach konieczne się okazało włożenie paru papierków między piny, bo groziły zwarciem. Całość podłączyłem

do zasilacza 12V na prąd stały oczywiście.

A tutaj parę zdjęć.

Na szybko napisałem w VB program sterujący tym silnikiem przy wykorzystaniu biblioteki inpout32. Dla osób, które nie potrafią programować pozostaje

wygrzebanie z internetu gotowych programów do sterowania takim silnikiem. Jeden z nich można znaleźć

TUTAJ

Natomiast

TUTAJ

umieściłem krótki filmik przedstawiający silnik w czasie pracy, gdy podawałem na niego z komputera odpowiednie wymyślone przeze mnie

sekwencje ruchów.

Na zakończenie

Mam nadzieję, że chociaż trochę zainteresowałem cię drogi czytelniku tematyką silników krokowych. Wiedza którą starałem się przekazać może służyć do

zbudowania własnego urządzenia o którym dawno marzyłeś (np robot, własna frezarka,albo obrotowa figurka na biurko

). By może na pierwszy rzut oka

wszystko wydaje się do trudne i zawiłe, ale w rzeczywistości nie jest. Wg mnie warto zainwestować swój czas, w zbudowanie chociaż prostego układu by zacząć

własne eksperymenty.

__________________

http://wkretak.pl

- diody LED i oświetlenie dla początkujących.

http://www.trener.xt.pl/

- moja obecna konfiguracja PC

Ostatnio edytowane przez Ravender : Sun 13th May 2007 o 01:53.

Sat 19th May 2007, 03:50

#2 (permalink)

Excray

Elektronik

Jako ciekawostkę dodam że istnieją również silniki krokowe w których liczba cewek jest nieparzysta. Na przykład są 3 bądź 6 cewek. Generalnie sterowanie jest

zbliżone.

__________________

IBM T23 - zatrzymał spadającą szafkę - R.I.P.

Obecnie

IBM T30

PC w kącie stoi i kurzem zarasta.

background image

Na forum od: 5 Sep 2004

Skąd: Lublin

Wiek: 27

Posty: 671

Siła Reputacji: 4

Reputacja: 15

Mój sprzęt

Benchmarki

Sat 19th May 2007, 13:53

#3 (permalink)

chase1

:)

Moderator

Na forum od: 22 Jun 2004

Wiek: 26

Posty: 9 520

Siła Reputacji: 4

Reputacja: 50

Mój sprzęt

Benchmarki

Cytat:

Napisał/a Excray
liczba cewek jest nieparzysta. Na przykład są 3 bądź

6

cewek

a to dobre :P

__________________

Spinna bejbe

Moje bejbe

Sat 19th May 2007, 15:15

#4 (permalink)

Excray

Elektronik

Na forum od: 5 Sep 2004

Skąd: Lublin

Wiek: 27

Posty: 671

Siła Reputacji: 4

Reputacja: 15

Mój sprzęt

Benchmarki

Eeee, yyyy. Ja już myślę cyfrowo

Parzyste to dla mnie liczny 2,4,8,16...

6, 10, 12 i tak dalej nie są parzyste
__________________

IBM T23 - zatrzymał spadającą szafkę - R.I.P.

Obecnie

IBM T30

PC w kącie stoi i kurzem zarasta.

Fri 25th May 2007, 17:55

#5 (permalink)

Ravender

Początkujący

Na forum od: 18 Mar 2007

Skąd: Łódź

Wiek: 25

Posty: 27

Siła Reputacji: 2

Reputacja: 24

Mój sprzęt

Benchmarki

Excray.. tez cos takiego mam

.. Dla mnie 64, 256 czy 1024 to zdecydowanie okrągłe liczby

.

__________________

http://wkretak.pl

- diody LED i oświetlenie dla początkujących.

http://www.trener.xt.pl/

- moja obecna konfiguracja PC

Thu 12th July 2007, 21:44

#6 (permalink)

maciek001

Nowicjusz

Jeżeli komuś się to przyda to mogę coś zaprojektować prostego co będzie posiadało taką separację galwaniczną ale musi ktoś poprosić bo jakoś mnie nie

ciągnie do tego ale jak ktoś poprosi ładnie to mu zaprojektuje :P

Zapomniałem dodać że postaram się to zrobić dobrze ale na 100% nie będę pewny!!

__________________

background image

Na forum od: 11 Jul 2007

Skąd: Tarnów

Wiek: 18

Posty: 12

Siła Reputacji: 1

Reputacja: 10

Mój sprzęt

Benchmarki

Ostatnio edytowane przez maciek001 : Thu 12th July 2007 o 23:13.

Mon 27th August 2007, 09:18

#7 (permalink)

Puma[JFK]

Hardcore użytkownik

Na forum od: 17 Sep 2004

Posty: 3 977

Siła Reputacji: 4

Reputacja: 64

Mój sprzęt

Benchmarki

Niedawno zabrałem się za silniki krokowe. Jak na razie mam opanowane sterowanie trzema silnikami w układzie. Napisałem program do sterowania dwoma w

układzie x,y za pomocą klawiatury numerycznej. Potem dojdzie trzeci, ale to już banał, jedynie powtarzanie procedur z innymi zmiennymi. Jeśli ktoś by chciał

program to proszę dać mi znać.

Dodam jeszcze, że do jednego portu LPT można podłączyć nie 2 a 3 silniki krokowe:

Silnik 1 - piny 2,3,4,5

Silnik 2 - piny 6,7,8,9

Silnik 3 - piny 1,14,16,17(adresowanie portu jest nieco inne - port jest dostępny po offsecie 02h, czyli dodajemy 2 do portu - zamiast &H378 jest &H37A)

Pin 1 daje małe napięcie, ale ULN2003 rozwiązuje sprawę. W planach zaprojektowanie płytki z nieco bardziej zaawansowaną elektroniką do obsługi 5 silników z

jednego LPT.

Sun 27th January 2008, 21:45

#8 (permalink)

maciek001

Nowicjusz

Na forum od: 11 Jul 2007

Skąd: Tarnów

Wiek: 18

Posty: 12

Siła Reputacji: 1

Reputacja: 10

Mój sprzęt

Benchmarki

Obecnie właśnie jestem w fazie wykonania układów elektronicznych do sterowania silnikami krokowymi. Jeżeli ktoś ma jakieś pytania postaram się pomóc.

Trzymajcie kciuki! Z tego co wiem to można sterować 4 silnikami krokowymi (po 2 piny z LPT na jeden silnik) tylko trzeba zrobić sterownik do każdego silnika.

__________________

Wed 5th March 2008, 20:26

#9 (permalink)

Piotrsikora

Nowicjusz

Na forum od: 5 Mar 2008

Wiek: 20

Posty: 1

Siła Reputacji: 1

Reputacja: 10

Mój sprzęt

Benchmarki

Witam mam pytanie wymontowałem silniczek ze starego skanera jest on praktycznie identyczny z tym jaki zastosowałeś ale z ta różnica ze u mnie na zasilaczu

skanera jest napisane AC/DC adapter 24V i nie wiem czym mogę zastosować ten zasilacz czy muszę szukać innego.

Druga sprawa to czy ktoś ma napisany do tego jakiś program sterujący bo niestety z programowania nie wiele potrafię.

«

Poprzedni wątek

|

Następny wątek

»

Użytkownicy aktualnie czytający ten wątek: 1 (0 użytkownik i 1 gości)

Zasady Postowania

Nie Możesz wysyłać nowe wątki

Nie Możesz wysyłać odpowiedzi

Nie Możesz wysyłać załączniki

Nie Możesz edytować swoje posty

vB code

jest Wł.

Uśmieszki

Wł.

kod

[IMG]

jest Wł.

kod HTML jest Wył.

Skocz do forum

Elektronika

Elektronika

Idź

Podobne wątki

Wątek

Autor wątku

Forum

Odpowiedzi

Ostatni Post / Autor

sterowanie przekaznika 230V z bramki TTL

mirkok1

Elektronika

1

Fri 29th April 2005 22:18

sterowanie pecetem urzadzen

ginger78

Elektronika

2

Sat 6th November 2004 19:00

sterowanie PC-tem i pomiar różnych wartości

vsm_g

Vmody

2

Mon 6th September 2004 19:36

sterowanie diodami przez lpt

Anonymous

Elektronika

4

Sun 5th September 2004 11:21

Port LPT

Anonymous

Elektronika

1

Sun 5th September 2004 11:04

Czasy w strefie GMT +1. Teraz jest 22:44.

background image

-- AlienBlue

-- AlienBlue

-- Polski

-- Polski

Kontakt - Overclockers.pl - Archiwum - Na górę

Powered by: vBulletin Version 3.6.5

Copyright © 2000 - 2008, Jelsoft Enterprises Ltd.

Copyright © 2003 - 2007, Overclockers.pl. All rights reserved.

Monitoring by

Stat24.pl


Wyszukiwarka

Podobne podstrony:
badanie silnika krokowego, mechanika, BIEM- POMOCE, automatyka i sterowanie
Najprostszy sterownik silników krokowych, ELEKTRONIKA
2005 02 Sterownik silnika krokowego
2005 09 Sterownik silnika krokowego
Wykorzystanie bramek mocy do sterowania silnika krokowego, ZSE nr
5 SILNIKI KROKOWE, Mikrokontroler - układy sterowania
podstawy sterowania silnikami krokowymi cziii LW4UI5JIORSYVSGPT4E25HEC6P25JSSQIZYDF7Y
podstawy sterowania silnikami krokowymi czii UMY4BWPPWLXRIMFWEJEHJLHDOJOZ4OQ5AVNYGBI
sterownik silnika krokowego
1997 07 Sterownik dwufazowych silników krokowych
Sterownik silnika krokowego 2
2005 02 Sterownik silnika krokowego
HB205SN sterownik silników krokowych 2 fazowych
2005 09 Sterownik silnika krokowego
Opis silnikow krokowych id 3370 Nieznany
Kontroler silnika krokowego na porcie LPT3
Kontroler silnika krokowego na porcie LPT2

więcej podobnych podstron