Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
ZESPÓŁ SZKÓŁ ELEKTRYCZNO-ELEKTRONICZNYCH
im. prof. Maksymiliana Tytusa Hubera
w Szczecinie
PROJEKT
Z PRZEDMIOTU „BADANIE ELEMENTÓW UKŁADÓW
AUTOMATYKI”
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW
KROKOWYCH, PRĄDU STAŁEGO, ORAZ SILNIKÓW
INDUKCYJNYCH
Wykonał: Klasa Rok szkolny
Łukasz Kuchciński III Te 2008 / 09
Praca wykonana pod kierunkiem:
mgr inż. Sylwia Rawa
SZCZECIN, ROK SZKOLNY 2008 / 2009
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
2
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
3
Spis Treści
1. WPROWADZENIE ......................................................................................... 5
1.1 Wstęp .................................................................................................................................................... 5
1.2 Cel projektu .......................................................................................................................................... 5
2. ROZWIĄZANIA KONSTRUKCYJNE ............................................................ 6
3. UKŁADY ELEKTRONICZNE ......................................................................... 7
3.1 Moduł Główny ...................................................................................................................................... 7
3.1.1 Schemat ideowy .............................................................................................................................. 8 3.1.2 Opis i wykaz elementów ................................................................................................................. 9 3.1.3 Mozaiki ......................................................................................................................................... 10 3.1.4 Rozmieszczenie elementów na płytce ........................................................................................... 11 3.1.5 Uwagi montażowe ........................................................................................................................ 12
3.2 Moduł silnika krokowego .................................................................................................................. 13
3.2.1 Schemat ideowy (ver. 1) ............................................................................................................... 14 3.2.2 Opis i wykaz elementów (ver. 1) .................................................................................................. 15 3.2.3 Mozaiki (ver. 1) ............................................................................................................................ 16 3.2.4 Rozmieszczenie elementów na płytce (ver. 1) .............................................................................. 17 3.2.5 Schemat ideowy (ver. 2) ............................................................................................................... 18 3.2.6 Opis i wykaz elementów (ver. 2) .................................................................................................. 18 3.2.7 Mozaiki (ver. 2) ............................................................................................................................ 19 3.2.8 Rozmieszczenie elementów na płytce (ver. 2) .............................................................................. 19 3.2.9 Uwagi montażowe ........................................................................................................................ 20
3.3 Moduł sterownika dwóch silników prądu stałego ........................................................................... 21
3.3.1 Schemat ideowy ............................................................................................................................ 21 Źródło: Opracowanie własne. ................................................................................................................ 22 3.3.2 Opis i wykaz elementów ............................................................................................................... 22 3.3.3 Mozaiki ......................................................................................................................................... 23 3.3.4 Rozmieszczenie elementów na płytce ........................................................................................... 23 3.3.5 Uwagi montażowe ........................................................................................................................ 23 3.3.6 Inne rozwiązanie konstrukcyjne .................................................................................................... 24
3.4 Sterowanie silnikami indukcyjnymi ................................................................................................. 27
4. OPROGRAMOWANIE ................................................................................. 28
4.1 Opis i funkcje programu ................................................................................................................... 28
4.2 Algorytm pracy .................................................................................................................................. 29
4.3 Kod programu .................................................................................................................................... 30
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
4
5. INSTRUKCJA OBSŁUGI MODUŁU DYDAKTYCZNEGO........................... 42
1. Stanowisko pracy ............................................................................................................................. 42
2. Sterowanie za pomocą modułu głównego ...................................................................................... 42
3. Sterowanie dwoma silnikami prądu stałego .................................................................................. 43
4. Sterowanie silnikami indukcyjnymi ............................................................................................... 43
6. WNIOSKI ..................................................................................................... 44
7. BIBLIOGRAFIA ........................................................................................... 44
8. ZAŁĄCZNIKI ................................................................................................ 45
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
5
1. Wprowadzenie
W dziale tym zostaną przedstawione cele projektu jakie postawił sobie
konstruktor.
1.1 Wstęp
W obecnych czasach szeroko pojęta automatyka i elektronika rozwinęła się do
bardzo wysokiego poziomu. Maszyny, roboty, oraz różnego rodzaju sprzęt towarzyszy
nam na co dzień. Wszystko staje się coraz bardziej zautomatyzowane. Jeśli jednak
pragniemy dowiedzieć się jak działa dane urządzenie, należy sięgnąć do podstaw.
Wszystkie elementy wykonujące jakiś ruch w urządzeniach lub maszynach wyposażone
są w silniki. Służą one do zamiany energii elektrycznej na mechaniczną. Występują pod
różnymi postaciami. Od najmniejszych zamkniętych w obudowach telefonu
komórkowego (alarm wibracyjny), poprzez pompy, wysięgniki, aż do potężnych
silników przemysłowych napędzających taśmy produkcyjne czy poruszające ramieniem
robota.
1.2 Cel projektu
Celem projektu jest stworzenie uniwersalnego systemu który umożliwi
sterowanie poszczególnymi grupami silników:
Silniki prądu przemiennego (indukcyjne)
Silniki prądu stałego
Serwomechanizmy
Silniki krokowe
Projekt będzie miał na celu nie tylko pokazanie w jaki sposób funkcjonują
poszczególne grupy silników, ale także w przyszłości może posłużyć jako zestaw
uruchomieniowo-testujący dla nowych silników. Da to możliwość przetestowania
silnika zanim umieści się go w docelowym projekcie.
Kolejnym celem jest zaprojektowanie całości w taki sposób by umożliwić w
przyszłości dołączanie kolejnych modułów, oraz dać możliwość użytkownikowi
edytowania programu zawartego w mikrokontrolerze.
Na koniec należy zadbać by całość była zabezpieczona przed przypadkowym
uszkodzeniem. Należy cały projekt obudować, oraz wyposażyć w opisy na
obudowie, aby osoba obsługująca urządzenie mogła to robić intuicyjnie.
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
6
2. Rozwiązania konstrukcyjne
W dziale tym zostanie opisana koncepcja układu, oraz jego budowa.
Cały projekt będzie miał budowę modułową. W wersji podstawowej będzie
można wyróżnić 3 moduły:
1. Moduł główny – jednostka sterująca
2. Moduł obsługi silnika krokowego – jednostka wykonawcza
3. Moduł do obsługi dwóch silników prądu stałego – jednostka wykonawcza
Obsługa dwóch silników indukcyjnych – moduł działa jako jednostka
sterująca pracą stycznika
Budowa modułowa umożliwi w przyszłości rozbudowę projektu o nowe
elementy wykonawcze.
Każdy z modułów będzie dołączany do modułu głównego za pomocą taśmy
zaciśniętej na przewodzie (złącze IDC). Uniemożliwi to odwrotne podłączenie modułu
zapobiegając przypadkowemu uszkodzeniu urządzenia.
Każdy moduł będzie posiadał obudowę z pleksi. Montaż będzie polegał na
zamontowaniu płytki z obwodem drukowanym na pleksi, oraz nałożeniu drugiego
fragmentu na górną część tak, aby zabezpieczyć płytkę z obydwu stron (budowa
„kanapkowa”). Elementy będą montowane za pomocą podkładek dystansowych tak,
aby między płytką z obwodem drukowanym a kawałkiem pleksi była wolna przestrzeń.
Jedna sekcja zasilająca. Wystarczy doprowadzić napięcie do modułu głównego
(do jego odpowiednich wyprowadzeń). Wszystkie kolejne moduły będą mogły
korzystać z napięcia 5VDC lub napięcia regulowanego.
Zabezpieczyć porty mikrokontrolera poprzez zastosowanie układów
wzmacniających prąd.
Stosowanie diod LED do informowania użytkownika jaką funkcję wykonuje
mikrokontroler.
Zaprojektowanie klawiatury, która umożliwi sterowanie całym projektem. Do
tego celu wykorzystane zostaną łączniki monostabilne o wymiarach 10 x 10mm.
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
7
3. Układy elektroniczne
W tym dziale konstruktor przedstawi szczegółowo budowę, oraz zasadę
działania każdego modułu.
3.1 Moduł Główny
Umożliwia sterowanie poszczególnych modułów z silnikami. Najważniejszym
elementem jest mikrokontroler, ze względu na stosunkowo prostą architekturę, cenę
oraz dostępność konstruktor wykorzystał rozwiązanie firmy Atmel®, układ AT 89S52.
W tym module do dyspozycji mamy:
1. Cztery wyświetlacze siedmiosegmentowe podłączone sekwencyjnie. Dzięki
nim możemy zobaczyć aktualny tryb prędkości dla silnika, oraz ilość już
wykonanych kroków (skoków) przez silnik krokowy. Trzy wyświetlacze LED
odpowiedzialne są za wyświetlanie wykonanych kroków, a czwarty wyświetla
aktualny tryb prędkości.
2. Klawiaturę sekwencyjną za pomocą której możemy wybrać:
Kierunek obrotu silnika (prawo/lewo)
Tryb prędkości obrotów
Wybór podprogramu dla odpowiedniego silnika
Przycisk STOP, zatrzymujący natychmiast pracę modułu
Przycisk ENTER potwierdzający nasze wybory
3. Cztery diody LED informujące o stanie urządzenia, oraz aktywnym
podprogramie.
4. Złącze ISP, umożliwiające rozbudowę programu o nowe dodatkowe funkcje.
5. Sekcja zasilania, czyli dwa złącza DC Power. Do jednego z nich należy
przyłączyć napięcie do zasilania układów logicznych, a drugie jest to napięcie
dla modułów (zasilanie silników).
6. Sześć linii wyjściowych do dyspozycji użytkownika. Są to linie do których
istnieje możliwość podłączania dodatkowych modułów.
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
8
3.1.1 Schemat ideowy
Rys.1. Schemat ideowy modułu głównego.
Źródło: Opracowanie własne. Program Eagle 5.4
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
9
3.1.2 Opis i wykaz elementów
IC1 – mikrokontroler Atmel® 89S51 lub S52 w obudowie DIP 40
IC2, IC3, IC7, IC8 – układy 4511. Dekodery kodu BCD na kod wyświetlacza
siedmiosegmentowego w obudowach DIP 16
IC6, IC9, IC10, IC11, IC12, IC13, IC16 – łączniki monostabilne o wymiarach
10x10mm (klawiatura, oraz przycisk RESET)
J1, J2 – Złącza DC Power 2,1mm
RN1 – drabinka rezystorów 8 x 4,7kΩ W
RN2 – drabinka rezystorów 8 x 1kΩ W
R1, R3 – 10kΩ ¼ W
R2 - 100Ω ¼ W
R4 ÷ R7 – 1kΩ ¼ W
R13 ÷ R40 - 350Ω ¼ W
C1, C2 – kondensator ceramiczny 33pF/50V
C7 – kondensator elektrolityczny 2.2µF/16V
Q1 – rezonator kwarcowy 12MHz
D1 – dioda przełączająca 1N4148
LED1 ÷ LED4 – diody o średnicy 5mm. Kolejno żółta, zielona ,czerwona i biała
SV2, SV3 – złącza IDC do druku męskie. Odpowiednio 2 x 5 ; 2 x 8
LED10 ÷ LED12 – wyświetlacze siedmiosegmentowe ze wspólną katodą.
Rozmiar: 14.2mm
Podstawki:
4 x DIL 18 – na układy 4511
1 x DIL 40 – na mikrokontroler AT®89S52
7 x DIL 6 – podstawki pod łączniki monostabilne. Przy stosowaniu
łączników z przyciskiem krótszym niż 2cm należy zastosować kolejne 7
podstawek po to, aby przyciski mogły wystawać poza obudowę. Należy
umieścić 2 podstawki jedna na drugiej i na samej górze zamontować łącznik.
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
10
3.1.3 Mozaiki
Rys.2. Schemat mozaikowy modułu głównego.
Źródło: Opracowanie własne. Program Eagle 5.4
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
11
3.1.4 Rozmieszczenie elementów na płytce
Rys.3. Rozmieszczenie elementów na płytce modułu głównego.
Źródło: Opracowanie własne. Program Eagle 5.4
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
12
3.1.5 Uwagi montażowe
Montaż modułu należy rozpocząć w standardowy sposób. Jako pierwsze
lutujemy zwory. Wszystkie połączenia wykonujemy za pomocą cienkiego drucika.
Należy zwrócić uwagę, że dwa połączenia należy wykonać między nóżkami układu
scalonego. Trzeba dobrać odpowiednią długość cienkiego przewodu i umieścić go w
otworach podstawki a następnie włożyć układ scalony. Tak samo robimy w przypadku
wyświetlacza LED o ile zastosowaliśmy pod nie podstawki. W przypadku
niestosowania podstawek połączenia dokonujemy od strony lutowania elementów,
uważając, aby nie powstały przypadkowe połączenia ścieżek. Następnym krokiem jest
wlutowanie kolejno rezystorów, kondensatorów, rezonatora kwarcowego, diod i na
końcu reszty elementów biernych.
Następnie należy obrócić nóżkę każdego łącznika monostabilnego o 90°, oraz
wygiąć jego nóżki tak, aby pasowały do podstawki. Problem ten wynika z
nieprawidłowego podłączenia ścieżek do wyprowadzeń podstawek.
Kolejną rzeczą na którą należy zwrócić uwagę jest montaż złącz SV2 i SV3. Jeśli
stosujemy zwykłe złącza goldpin problem ten nie istnieje. Jednak przy stosowaniu złącz
IDC, trzeba zwrócić uwagę, aby specyficzne wycięcie w obudowie złącza skierowane
było na zewnątrz płytki.
Po zmontowaniu układu należy sprawdzić poprawność wszystkich połączeń,
oraz zwrócić uwagę na to czy nie powstały przypadkowe zwarcia ścieżek. Przy
doprowadzaniu napięcia do układu trzeba zachować szczególną ostrożność. Projekt nie
został wyposażony w stabilizator napięcia. Napięcie doprowadzone do złącza J1
powinno być w granicach od 4.5 ÷ 5.5VDC. Jest to zalecane bezpieczne napięcia dla
wszystkich układów logicznych. Napięcie doprowadzane do złącza J2 ustalone
powinno być w zależności od podłączonego modułu. Dla modułu z silnikiem
krokowym optymalnym napięciem jest wartość 10 ÷ 12VDC. Przy module z dwoma
silnikami prądu stałego wartość powinna być na poziomie 4 ÷ 6VDC (zalecane 5VDC).
Przy podłączaniu własnych modułów z innymi silnikami należy zwrócić uwagę na ich
napięcie znamionowe i takie napięcie doprowadzić na złącze J2.
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
13
3.2 Moduł silnika krokowego
Silniki krokowe są stosowane wszędzie tam, gdzie kluczowe znaczenie ma
możliwość precyzyjnego sterowania ruchem:
w szeroko rozumianej automatyce – w mechanicznych urządzeniach
regulacyjnych
w urządzeniach pomiarowych
w robotyce – do sterowania ruchem ramion robotów, kół w automatycznych
wózkach
w drukarkach igłowych i atramentowych oraz ploterach
w napędach CD/DVD – do sterowania ruchem głowicy czytającej
Do głównych zalet stosowania silników krokowych należy:
Wysoka precyzja sterowania.
Do poprawnej pracy nie potrzebuje sprzężenia zwrotnego i informacji o
aktualnej pozycji wirnika.
Taka sama moc przy niskich i wysokich obrotach.
Moduł ten umożliwia sterowanie silnikiem krokowym unipolarnym
(maksymalnie czterocewkowym). Dla tego modułu zastosowano dodatkowo wyłącznik
napięcia dla silnika, oraz układ zabezpieczający silnik przed przypadkowym obrotem.
Przy dołączaniu napięcia do mikrokontrolera na wyjściach portu mogą pojawić się stany
wysokie. Układ jest tak zaprojektowany, aby uniemożliwić przypadkowy ruch silnika.
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
14
3.2.1 Schemat ideowy (ver. 1)
Rys.4. Schemat ideowy modułu silnika krokowego Źródło: Politechnika Szczecińska, projekt mgr inż. Andrzeja Biedki „Moduł dydaktyczny dla
mikrokontrolerów 8051 – silnik krokowy”
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
15
3.2.2 Opis i wykaz elementów (ver. 1)
Tabela.1. Wykaz elementów Źródło: Politechnika Szczecińska, projekt mgr inż. Andrzeja Biedki „Moduł dydaktyczny dla
mikrokontrolerów 8051 – silnik krokowy”
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
16
3.2.3 Mozaiki (ver. 1)
Rys.5. Schemat mozaikowy modułu silnika krokowego Źródło: Politechnika Szczecińska, projekt mgr inż. Andrzeja Biedki „Moduł dydaktyczny dla
mikrokontrolerów 8051 – silnik krokowy”
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
17
3.2.4 Rozmieszczenie elementów na płytce (ver. 1)
Rys.6. Rozmieszczenie elementów na płytce modułu silnika krokowego
Źródło: Politechnika Szczecińska, projekt mgr inż. Andrzeja Biedki „Moduł dydaktyczny dla
mikrokontrolerów 8051 – silnik krokowy”
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
18
Konstruktor zdecydował się wybrać rozwiązanie pierwsze (ver. 1) ze względu na
obecność dodatkowego układu który uniemożliwia przypadkowy ruch silnika przy
załączeniu napięcia do mikrokontrolera. Dodatkowo projekt ten posiada możliwość
dołączenia diod LED które mogą sygnalizować na które uzwojenie silnika krokowego
podawane jest napięcie. Projekt ten daje też możliwość oprogramowania dwóch
dodatkowych przycisków znajdujących się obok silnika krokowego. Można więc użyć
ich do sterowania lokalnego, a sterowanie zdalne realizować z klawiatury umieszczonej
w module głównym.
3.2.5 Schemat ideowy (ver. 2)
Jest to autorski układ umożliwiający sterowanie silnikiem krokowym
unipolarnym. Układ nie posiada zabezpieczenia przed przypadkowym ruchem
(skokiem) przy załączeniu zasilania do mikrokontrolera, gdzie na chwile mogą pojawić
się stany wysokie.
Rys.7. Schemat montażowy modułu silnika krokowego.
Źródło: Opracowanie własne. Program Eagle 5.4
3.2.6 Opis i wykaz elementów (ver. 2)
SV1 – złącze IDC męskie do druku 2 x 16
IC1 – ULN2004N – wzmacniacz prądowy
R1;R2 – 300Ω ¼ W
X1;X2 – złącza śrubowe ARK podwójne do druku
M
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
19
3.2.7 Mozaiki (ver. 2)
Rys.8. Schemat mozaikowy modułu silnika krokowego. Źródło: Opracowanie własne. Program Eagle 5.4
3.2.8 Rozmieszczenie elementów na płytce (ver. 2)
Rys.9. Rozmieszczenie elementów na płytce modułu silnika krokowego. Źródło: Opracowanie własne. Program Eagle 5.4
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
20
3.2.9 Uwagi montażowe
Montaż należy rozpocząć w standardowy sposób lutując od najmniejszych do
największych elementów. Można nie wlutowywać przycisków P1 i P2, ponieważ nie są
one uwzględnione w programie, oraz rezystorów R1, R3, R4, R5. Najważniejszą rzeczą
jest to, aby w prawidłowej kolejności wlutować przewody od poszczególnych cewek.
Należy sięgnąć do dokumentacji silnika i sprawdzić które wyjście odpowiada danej
cewce.
Kolejną rzeczą na którą należy zwrócić uwagę jest tarcza dla silnika. Należy ją
zamontować, gdyż bez niej nie będzie można rozróżnić czy silnik się obraca czy tylko
podawane jest napięcie z jednej cewki na drugą. Efekt może być taki, że silnik
wykonuje jeden krok i wraca z powrotem do pierwotnego położenia. Konstruktor
rozwiązał ten problem montując tekturową strzałkę na wale silnika.
Rys.10. Przykładowa strzałka jako tarcza obrotowa dla silnika
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
21
3.3 Moduł sterownika dwóch silników prądu stałego
Jest to najprostszy ze wszystkich modułów. Głównym elementem
wykonawczym jest tutaj układ scalony L293D. Jest to mostek H-Bridge umożliwiający
sterowanie niezależnie dwoma silnikami prądu stałego. Jego wydajność prądowa to
0.6A na kanał, czyli na jeden silnik. Układ umożliwia niezależne obroty obydwu
silników w lewo i prawo, oraz daje możliwość sterowania PWM. Dzięki temu możemy
uzyskać płynny start silnika, oraz mieć możliwość regulowania prędkości.
3.3.1 Schemat ideowy
Rys.11. Schemat ideowy sterownika silników prądu stałego Źródło: Opracowanie własne program Eagle 5.4
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
22
Rys.11.1. Schemat ideowy sterownika silników prądu stałego - uzupełnienie Źródło: Opracowanie własne.
3.3.2 Opis i wykaz elementów
SV1 – złącze IDC męskie 2 x 8 do druku
X1; X2 – złącza śrubowe ARK podwójne
L293D – scalony sterownik dwóch silników prądu stałego. Mostek H-bridge.
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
23
3.3.3 Mozaiki
Rys.12. Schemat mozaikowy sterownika silników prądu stałego Źródło: Opracowanie własne program Eagle
3.3.4 Rozmieszczenie elementów na płytce
Rys.13. Rozmieszczenie elementów na płytce sterownika silników prądu stałego Źródło: Opracowanie własne program Eagle
3.3.5 Uwagi montażowe
Jedyną rzeczą na którą należy zwrócić uwagę jest poprawne wlutowanie układu
scalonego, oraz złącza SV1 przy zastosowaniu go w obudowie IDC specyficzne
wycięcie powinno być skierowane do wewnętrznej strony płytki. Do złącz X1; X2
należy dołączyć silniki prądu stałego wg schematu zamieszczonego wyżej.
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
24
3.3.6 Inne rozwiązanie konstrukcyjne
Tranzystory typu MOSFET
Rys.14. Schemat ideowy sterownika silników prądu stałego na tranzystorach typu
MOSFET Źródło: www.dioda.com.pl/forum (temat o mostkach scalonych H-bridge)
Składając mostek z tranzystorów MOSFET nie musimy się martwić (przy
większych prądach) prądem bramki. Tak jak ma to miejsce przy tranzystorach
bipolarnych. Tranzystory MOSFET sterowane są napięciowo i ten problem tu nie
występuje. Tranzystory te posiadają znaczne pojemności bramkowe które trzeba
przeładować, ale nie stanowi to problemu dla mikrokontrolera czy też pojedynczej
bramki CMOS.
Najpopularniejsze MOSFET'y to seria IRF i IRL. Wersja IRL jest wersją o
niższym napięciu bramki potrzebnym do pełnego otwarcia tranzystora. Mówi się, że jest
to tranzystor w wersji cyfrowej, gdyż napięcie potrzebne do jego pełnego otwarcia jest
niższe i wynosi 5V (minimum). W niektórych przypadkach stosowanie tranzystorów
IRL ratuje nas przed stosowaniem drivera. Seria IRL ma duże znaczenie, ponieważ
różnica w cenie jest niewielka, a zwykłe tranzystory MOSFET powinny być zasilane
napięciem 10V, a bardzo często jest problem z uzyskaniem takiego napięcia.
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
25
Tranzystory bipolarne
Mostek zbudowany z tranzystorów bipolarnych wygląda bardzo podobnie z tym,
że trzeba stosować (przy większych prądach) dodatkowe stopnie z mniejszych
tranzystorów, aby możliwe było wysterowanie bazy np. z portu mikroprocesora
(potrzebne duże wzmocnienie).Układ na tranzystorach BC337 i BC327 działa podobnie
do wcześniejszych mostków na tranzystorach MOSFET z tym, że impulsy sterujące
podawane są na środkowe tranzystory i dzięki temu otwierane są właściwe tranzystory
przez, które płynie prąd silników. Taki mostek nie wytrzyma dużego prądu, ale do
sterowania małymi silniczkami jest wystarczający prąd Icmax tranzystora BC337 wynosi
800mA.
Rys. 15a. Rys. 15b.
Schemat mostka na tranzystorach BC337 oraz BC327. Kolory strzałek: zielony - sygnał,
niebieski, czerwony - prąd silnika.
Projekt Marka Tildena ze strony www.beam-online.com
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
26
Inne mostki scalone o większej wydajności prądowej
Rys.16. Schemat podłączenia mostka scalonego L298 Źródło: www.dioda.com.pl/forum (temat o mostkach scalonych H-bridge)
Mostek ten osiąga wydajność prądową na poziomie 2A na jeden kanał i
maksymalnym napięciu 50V. Oczywiście przy tak dużych obciążeniach należy
stosować już sporej wielkości radiatory. Wadą tego układu jest brak scalonych diod
shottkiego zabezpieczających układ scalony. Do wyprowadzenia układu VS należy
doprowadzić napięcie podawane na złącze J2 modułu głównego.
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
27
3.4 Sterowanie silnikami indukcyjnymi
Rys.17. Przykładowy układ podłączania silnika indukcyjnego (jednofazowego) Źródło: opracowanie własne.
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
28
Projekt w wersji podstawowej pozwala nam wysterować nawet 2 silniki
indukcyjne jednofazowe. Do tego celu wykorzystujemy moduł który standardowo
steruje silnikami prądu stałego. Należy odłączyć standardowe silniki a wyprowadzenia
X1, X2 dołączyć do stycznika. Typowe napięcia dla pracy styczników to 12 lub 24VDC.
Zastosowany układ L293D może pracować z napięciem nawet 36VDC więc
wysterowanie stycznika nie jest problemem. Sterowanie silnikami indukcyjnymi będzie
mogło się odbywać tylko na zasadzie włącz/wyłącz (niezależnie dla dwóch silników).
Moduł choć wygląda na prosty daje największe możliwości pod względem
różnorodności podłączanych silników.
4. Oprogramowanie
W tym dziale zostanie omówiony program sterujący pracą całego modułu.
Przedstawiony zostanie algorytm pracy oraz listing programu wraz z opisami.
4.1 Opis i funkcje programu
Program napisany jest w języku asemblera dla mikrokontrolera rodziny 8051. W
wersji podstawowej mamy możliwość sterowania silnikiem krokowym, oraz dwoma
silnikami prądu stałego. Jako dodatkową opcję konstruktor przewidział sterowanie
poprzez stycznik silnikami indukcyjnymi. Program przy pracy z silnikiem krokowym
zlicza wykonywane przez niego kroki. Użytkownik ma możliwość ustawienia
odpowiedniego trybu prędkości obrotowej dla silników. O aktywności poszczególnych
podprogramów informują nas odpowiednie sekwencje diod LED:
zielona - program główny
żółta - tryb ustawień prędkości
żółta + czerwona - obroty w lewo dla silnika k rokowego
żółta + niebieska - obroty w prawo dla silnika krokowego
żółta + zielona - silnik 1
czerwona + niebieska - silnik 2
wszystkie diody zapalone na 1 sek. - wejście w tryb obsługi silników
prądu stałego
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
29
4.2 Algorytm pracy
Rys.18. Schemat blokowy pracy programu Źródło: Opracowanie własne. Program Photoshop
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
30
4.3 Kod programu
ORG 100H
Z1 EQU P2.0
Z2 EQU P2.1
Z3 EQU P2.2
Z4 EQU P2.3 ;UZWOJENIA (CEWKI) SILNIKA KROKOWEGO
LED1 EQU P0.6 ;DIODA NIEBIESKA
LED2 EQU P0.7 ;DIODA CZERWONA
LED3 EQU P2.7 ;DIODA ZIELONA
LED4 EQU P2.6 ;DIODA ŻÓŁTA
AKCEPT EQU P0.5
LEWO EQU P0.4
PRAWO EQU P0.3
STOP EQU P0.2
OBROTY EQU P0.1
TRYB EQU P0.0 ;NAZWANIE KLAWISZY
USTAWIENIA:
MOV P1,#00000000B
MOV P3,#00000000B ;USTAWINIANIE ZER NA WSZYSTKICH
;WYŚWIETLACZACH
MOV P0,#11111111B ;GASZENIE DIOD, ORAZ PRZYGOTOWANIE
;KLAWIATURY DO ZCZYTYWANIA DANYCH
MOV P2,#11000000B ;GASZENIE DIOD, ORAZ ZEROWANIE LINI
;WYJŚCIOWYCH
SETB P0.5 ;AKCEPT
SETB P0.4 ;LEWO
SETB P0.3 ;PRAWO
SETB P0.2 ;STOP/POWRÓT
SETB P0.1 ;OBROTY
SETB P0.0 ;TRYB
;USTAWIENIA FUNKCJI KLAWISZY
MOV TL1,#2 ;WPISANIE WARTOSCI POCZATKOWEJ
;USTALAJACEJ PRĘDKOŚĆ SILNIKA
MOV R0,#00000000B
MOV R1,#00000000B
MOV R2,#00000000B ;ZEROWANIE REJESTRÓW
PROGRAM: ;GASZENIE DIOD
SETB LED4 ;GASZENIE ŻÓŁTEJ DIODY
SETB LED1 ;CZERWONEJ
SETB LED2 ;NIEBIESKIEJ
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
31
PROGRAM_GL: ;PROGRAM GŁÓWNY
CLR LED3 ;ZAPAL DIODE ZIELONĄ
CALL CZAS_T ;SKOK DO OPÓŹNIENIA
JNB TRYB,P_1 ;SKOK DO USTAWIANIA TRYBU
JNB OBROTY,P_2 ;SKOK DO USTAWIANIA PRĘDKOŚCI
JNB LEWO,P_3 ;OOROTY W LEWO STANDARDOWE
JNB PRAWO,P_4 ;OBROTY W PRAWO STANDATDOWE
SJMP PROGRAM_GL ;PĘTLA
; ******* POMOCNICZE PODPROGRAMY UMOŻLIWIAJĄCE DALEKI SKOK *******
P_1:
LJMP PROGRAM_1 ;TRYB PRACY SILNIKA
P_2:
LJMP PROGRAM_2 ;PRĘDKOŚĆ OBROTOWA
P_3:
LJMP PROGRAM_3 ;OBROTY W LEWO
P_4:
LJMP PROGRAM_4 ;OBROTY W PRAWO
; ****************************************************************
PROGRAM_1: ;TRYB OBSŁUGI SILNIKÓW DC
MOV P1,#00000000B
MOV P3,#00000000B ;USTAWINIANIE ZER NA WSZYSTKICH
;WYŚWIETLACZACH
CLR LED1
CLR LED2
CLR LED3
CLR LED4 ;ZAPAL WSZYSTKIE DIODY
LCALL CZAS_X ;CZAS PRZEZ JAKI BĘDĄ PALIĆ SIĘ
;DIODY
SETB LED1
SETB LED2
SETB LED3
SETB LED4 ;ZGAŚ WSZYSTKIE DIODY
; *****************************************************************
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
32
PROGRAM_1_WEW: ;PROGRAM USTAWIEŃ OBROTÓW
CALL CZAS_T ;SKOK DO OPÓŹNIENIA
CLR LED4 ;ZAPAL ŻÓŁTĄ DIODĘ
SETB LED2
SETB LED1 ;ZGAŚ NIEBIESKĄ I CZERWONĄ
JNB LEWO,DC_LEWO ;PRZEJDZ DO USTAWIEŃ SILNIKA 1
JNB PRAWO,DC_PRAWO ;PRZEJDŹ DO USTAWIEŃ SILNIKA 2
JNB TRYB,PROGRAM ;POWRÓT DO PROGRAMU GŁÓWNEGO
JNB STOP,STOP_X ;ZATRZYMAJ WSZYSTKO
JNB AKCEPT,STOP_SEKW ;ZATRZYMAJ JEDEN SILNIK
SJMP PROGRAM_1_WEW ;PĘTLA
;
******************************************************************
DC_LEWO:
;USTAWIENIA SILNIKA 1
CLR LED2 ;ZAPAL CZERWONĄ DIODĘ
CALL CZAS_T ;SKOK DO OPÓŹNIENIA
JNB LEWO,LEWO_X ;WYBIERZ OBROTY W LEWO
JNB PRAWO,PRAWO_X ;WYBIERZ OBROTY W PRAWO
JNB STOP,STOP_X ;ZATRZYMAJ WSZYSTKO
SJMP DC_LEWO
DC_PRAWO:
CLR LED1 ;ZAPAL NIEBIESKĄ
CALL CZAS_T ;SKOK DO OPÓŹNIENIA
JNB LEWO,LEWO_Y ;WYBIERZ OBROTY W LEWO
JNB PRAWO,PRAWO_Y ;WYBIERZ OBROTY W PRAWO
JNB STOP,STOP_X ;ZATRZYMAJ WSZYSTKO
SJMP DC_PRAWO
LEWO_X: ;OBROTY W LEWO SILNIKA 1
SETB P2.0
SETB P2.1
CLR P2.2
JNB STOP,STOP_X ;ZATRZYMAJ WSZYSTKO
SJMP PROGRAM_1_WEW
PRAWO_X: ;OBROTY W PRAWO SILNIKA 1
SETB P2.0
CLR P2.1
SETB P2.2 ;OBROTY W PRAWO
JNB STOP,STOP_X ;ZATRZYMAJ WSZYSTKO
SJMP PROGRAM_1_WEW
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
33
LEWO_Y: ;OBROTY W LEWO SILNIKA 2
SETB P2.3
SETB P2.4
CLR P2.5 ;OBROTY W LEWO
JNB STOP,STOP_X ;ZATRZYMAJ WSZYSTKO
SJMP PROGRAM_1_WEW
PRAWO_Y: ;OBROTY W PRAWO SILNIKA 2
SETB P2.3
CLR P2.4
SETB P2.5
JNB STOP,STOP_X ;ZATRZYMAJ WSZYSTKO
SJMP PROGRAM_1_WEW ;PETLA
STOP_X: ;STOP SILNIKI
CLR P2.0
CLR P2.1
CLR P2.2
CLR P2.3
CLR P2.4
CLR P2.5 ;ZATRZYMAJ WSZYSTKO
LJMP PROGRAM_1_WEW ;POWRÓT NA PROG. GŁ. SILNIKÓW DC
STOP_SEKW:
SETB LED4
CLR LED2
CLR LED3
CALL CZAS_T
JNB LEWO,STOP_LEWY ;PRZEJDZ DO SILNIKA 1
JNB PRAWO,STOP_PRAWY ;PRZEJDŹ DO SILNIKA 2
JNB STOP,STOP_X ;ZATRZYMAJ WSZYSTKO
SJMP STOP_SEKW
STOP_LEWY:
CLR P2.0
CLR P2.1
CLR P2.2 ;STOP SILNIK 1
LJMP PROGRAM_1_WEW ;POWRÓT NA PROG. GŁ. SILNIKÓW DC
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
34
STOP_PRAWY:
CLR P2.3
CLR P2.4
CLR P2.5 ;STOP SILNIK 2
LJMP PROGRAM_1_WEW ;POWRÓT NA PROG. GŁ. SILNIKÓW DC
;********************************************
PROGRAM_2: ;PRĘDKOŚĆ OBROTOWA
SETB LED3 ;GASZENIE DIODY ZIELONEJ
CLR LED4 ;ZAPALANIE DIODY ŻÓŁTEJ
MOV P3,#00000000B ;GASZENIE 2 PIERWSZYCH
;WYŚWIETLACZY
OBR1:
MOV P1,#00000001B
MOV TL1,#40 ;WARTOŚĆ ODMIERZANEGO CZASU
WEW1:
CALL CZAS_T ;SKOK DO OPÓŹNIENIA
JNB OBROTY,OBR2 ;ZWIĘKSZANIE PRĘDKOŚCI
JNB AKCEPT,PROGRAM_POW_2 ;POWRÓT NA PROGRAM GŁÓWNY
SJMP WEW1 ;POZOSTAŃ W PĘTLI
;********************************************
OBR2:
MOV P1,#00000010B
MOV TL1,#30 ;WARTOŚĆ ODMIERZANEGO CZASU
WEW2:
CALL CZAS_T ;SKOK DO OPÓŹNIENIA
JNB OBROTY,OBR3 ;ZWIĘKSZANIE PRĘDKOŚCI
JNB AKCEPT,PROGRAM_POW_2 ;POWRÓT NA PROGRAM GŁÓWNY
SJMP WEW2 ;POZOSTAŃ W PĘTLI
;********************************************
PROGRAM_POW_2: ;PODPROGRAM POMOCNICZY POWROTU NA
;PROGRAM GŁÓWNY
LJMP PROGRAM
SJMP PROGRAM_POW_2
;********************************************
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
35
OBR3:
MOV P1,#00000011B
MOV TL1,#20 ;WARTOŚĆ ODMIERZANEGO CZASU
WEW3:
CALL CZAS_T ;SKOK DO OPÓŹNIENIA
JNB OBROTY,OBR4 ;ZWIĘKSZANIE PRĘDKOŚCI
JNB AKCEPT,PROGRAM_POW ;POWRÓT NA PROGRAM GŁÓWNY
SJMP WEW3 ;POZOSTAŃ W PĘTLI
;********************************************
OBR4:
MOV P1,#00000100B
MOV TL1,#10 ;WARTOŚĆ ODMIERZANEGO CZASU
WEW4:
CALL CZAS_T ;SKOK DO OPÓŹNIENIA
JNB OBROTY,OBR5 ;ZWIĘKSZANIE PRĘDKOŚCI
JNB AKCEPT,PROGRAM_POW ;POWRÓT NA PROGRAM GŁÓWNY
SJMP WEW4 ;POZOSTAŃ W PĘTLI
;********************************************
OBR5:
MOV P1,#00000101B
MOV TL1,#5 ;WARTOŚĆ ODMIERZANEGO CZASU
WEW5:
CALL CZAS_T ;SKOK DO OPÓŹNIENIA
JNB OBROTY,OBR6 ;ZWIĘKSZANIE PRĘDKOŚCI
JNB AKCEPT,PROGRAM_POW ;POWRÓT NA PROGRAM GŁÓWNY
SJMP WEW5 ;POZOSTAŃ W PĘTLI
;********************************************
OBR6:
MOV P1,#00000110B
MOV TL1,#2 ;WARTOŚĆ ODMIERZANEGO CZASU
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
36
WEW6:
CALL CZAS_T ;SKOK DO OPÓŹNIENIA
JNB OBROTY,OBR1_POMOC ;ZWIĘKSZANIE PRĘDKOŚCI
JNB AKCEPT,PROGRAM_POW ;SKOK NA PODPROGRAM UMOŻLIWIAJĄCY
;POWRÓT
SJMP WEW6 ;POZOSTAŃ W PĘTLI
;********************************************
PROGRAM_POW: ;PROGRAM POMOCNICZY POWROTU NA
;PROGRAM GŁÓWNY
LJMP PROGRAM ;SKOK NA GŁÓWNY
SJMP PROGRAM_POW ;PĘTLA NIESKOŃCZONOŚCI
OBR1_POMOC: ;PODPORGRAM POMOCNICZY DO POWROTU
LJMP OBR1
SJMP OBR1_POMOC
;********************************************
PROGRAM_3: ;OBROTY W LEWO
SETB LED3 ;GASZENIE ZIELONEJ DIODY
CLR LED4
CLR LED2 ;ZAPALENIE DIODY ŻÓŁTEJ I
; CZERWONEJ
PROGRAM_3_1: ;PODPROGRAM OBROTÓW W LEWO
SETB Z1
SETB Z4
LCALL CZAS
CLR Z1
CLR Z4
SETB Z2
SETB Z3
LCALL CZAS
CLR Z2
CLR Z3
LJMP LICZENIE ;LICZENIE KROKÓW
SJMP PROGRAM_3_1
;********************************************
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
37
PROGRAM_4: ;OBROTY W PRAWO
SETB LED3 ;GASZENIE ZIELONEJ DIODY
CLR LED4
CLR LED1 ;ZAPALENIE DIODY ŻÓŁTEJ I
;NIEBIESKIEJ
PROGRAM_4_1: ;PODPROGRAM OBROTÓW W PRAWO
SETB Z1
SETB Z3
LCALL CZAS
CLR Z1
CLR Z3
SETB Z2
SETB Z4
LCALL CZAS
CLR Z2
CLR Z4
LJMP LICZENIE ;LICZENIE KROKÓW
SJMP PROGRAM_4_1
;********************************************
PROGRAM_POW_1: ;PODPROGRAM UMOŻLIWIAJĄCY POWRÓT
;DO PROGRAMU GŁÓWNEGO
LJMP PROGRAM ;SKOK NA PROGRAM GŁÓWNY
SJMP PROGRAM_POW_1 ;PĘTLA NIESKOŃCZONOŚCI
;********************************************
PROGRAM_OBR: ;PODPROGRAM UMOŻLIWIAJĄCY POWRÓT
LJMP PROGRAM_2 ;POWRÓT
SJMP PROGRAM_OBR ;PĘTLA
;********** PODPROGRAM ZWŁOKI CZASOWEJ DLA SILNIKA **********
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
38
CZAS:
MOV TH0,TL1
CZAS1:
MOV TL0,#30
JNB STOP,PROGRAM_POW_1
JNB OBROTY,PROGRAM_OBR
CZAS2:
MOV TH1,#200
DJNZ TH1,$
DJNZ TL0,CZAS2
DJNZ TH0,CZAS1
RET
;****** OPOZNIENIE WEJSCIA W TRYB OBSLUGI SILNIKÓW ****
CZAS_X:
MOV TH0,#200
CZAS1_X:
MOV TL0,#20
CZAS2_X:
MOV TH1,#200
DJNZ TH1,$
DJNZ TL0,CZAS2_X
DJNZ TH0,CZAS1_X
RET
;*********** PODPROGRAM ZWLOKI CZASU *************
CZAS_T:
MOV DPL,#255
CZAS_S:
MOV DPH,#255
DJNZ DPH,$
DJNZ DPL,CZAS_S
RET
;********************************************
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
39
LICZENIE: ;PODPROGRAMY ODPOWIEDZIALNE
;ZA ZLICZANIE KROKÓW
INC R2 ;ZWIĘKSZ WARTOŚĆ REJESTRU
;LICZENIE JEDNOŚCI
CJNE R2,#00001010B,LICZ_JED ;SPRAWDŹ CZY R2=10 JEŚLI NIE
;LICZ JEDNOŚCI
LICZ1:
INC R1 ;ZWIĘKSZ WARTOŚĆ REJESTRU
;LICZENIE DZIESIĄTEK
CJNE R1,#00001010B,LICZ_DZ ;SPRAWDŹ CZY R1=10 JEŚLI NIE
;LICZ DZIESIĄTKI
LICZ2:
INC R0 ;ZWIĘKSZ WARTOŚĆ REJESTRU
;LICZENIE SETEK
CJNE R0,#00001010B,LICZ_SET ;SPRAWDŹ CZY R2=10 JEŚLI NIE
;LICZ SETKI
;PO OSIĄGNIECIU LICZBY 999,
;ZACZNIK LICZYĆ OD ZERA
LJMP RESET ;SKOCZ NA PODPROGRAM
;CZYSZCZĄCY WYŚWIETLACZE
;********************************************
LICZ_JED: ;PODPROGRAM OBSŁUGI
;WYŚWIETLACZA JEDNOŚCI
MOV R3,P1 ;ZCZYTAJ AKTUALNY STAN PORTU
;DO REJESTRU R3
MOV A,#00001111B ;WPISZ MASKĘ DO AUMULATORA
ANL A,R3 ;MNOŻENIE LOGICZNE
;WYODRĘBNIENIE PRĘDKOŚĆI
MOV R3,A ;WYNIK PRZENIEŚ DO R3
MOV A,R2 ;WPISZ REJESTR R2
;DO AKUMULATORA
SWAP A ;PRZENIEŚ NA 4 STARSZE BITY
ORL A,R3
MOV P1,A ;WYNIK WPISZ NA PORT P1
LJMP PROGRAM_3 ;WRÓĆ DO PROGRAMU OBSŁUGI
;SILNIKA KROKOWEGO
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
40
LICZ_DZ: ;PODPROGRAM OBSŁUGI
;WYŚWIETLACZA DZIESIĄTEK
;ZEROWANIE WYŚWIETLACZA Z
;JEDNOŚCIAMI
MOV R2,#00000000B ;ZEROWANIE REJESTRU ODP. ZA
;JEDNOŚCI
MOV R3,P1 ;ZCZYTAJ AKTUALNY STAN PORTU
;DO REJESTRU R3
MOV A,#00001111B ;WPISZ MASKĘ DO AUMULATORA
ANL A,R3 ;MNOŻENIE LOGICZNE BY
;WYODRĘBNIĆ PRĘDKOŚĆ
MOV P1,A ;WYNIK NA PORT P1
MOV R3,P3 ;ZCZYTAJ AKTUALNY STAN PORTU
;DO REJESTRU R3
MOV A,#11110000B ;WPISZ MASKĘ DO AUMULATORA,
;ABY WYODRĘBNIĆ SETKI
ANL A,R3 ;MNOŻENIE LOG. (SETKI)
ORL A,R1 ;POŁĄCZENIE
MOV P3,A ;WPISZ WYNIK NA PORT
LJMP PROGRAM_3
LICZ_SET: ;PODPROGRAM OBSŁUGI
;WYŚWIETLACZA SETEK
;ZEROWANIE WYŚWIETLACZA Z
;JEDNOŚCIAMI
MOV R2,#00000000B ;ZEROWANIE REJESTRU ODP. ZA
;JEDNOŚCI
MOV R3,P1 ;ZCZYTAJ AKTUALNY STAN PORTU
;DO REJESTRU R3
MOV A,#00001111B ;WPISZ MASKĘ DO AUMULATORA
ANL A,R3 ;MNOŻENIE LOGICZNE BY
;WYODRĘBNIĆ PRĘDKOŚĆ
MOV P1,A ;WYNIK NA PORT P1
MOV R1,#00000000B ;ZEROWANIE REJESTRU ODP. ZA
;DZIESIĄTKI
MOV R3,P3 ;ZCZYTAJ AKTUALNY STAN PORTU
;DO REJESTRU R3
MOV A,#11110000B ;WPISZ MASKĘ DO AUMULATORA,
;ABY WYODRĘBNIĆ SETKI
ANL A,R3 ;MNOŻENIE LOG. ODEPAROWANY
;WYŚWIETLACZ Z SETKAMI
SWAP A ;PRZENIEŚ WARTOŚĆ NA 4
;MŁODSZE BITY
INC A ;ZWIĘKSZ O JEDEN
SWAP A ;PRZENIEŚ NA 4 STARSZE BITY
MOV P3,A ;WYNIK ZAPISZ NA PORT P3
LJMP PROGRAM_3
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
41
RESET:
MOV P3,#00000000B ;ZERUJ WYŚWIETLACZE
;DZIESIĄTEK I SETEK
MOV R3,P1 ;ZCZYTAJ AKTUALNY STAN PORTU
;DO REJESTRU R3
MOV A,#00001111B ;WPISZ MASKĘ DO AUMULATORA
ANL A,R3 ;MNOŻENIE LOGICZNE BY
;WYODRĘBNIĆ PRĘDKOŚĆ
MOV P1,A ;WYNIK NA PORT P1
MOV R2,#00000000B ;ZEROWANIE REJESTRU ODP. ZA
;JEDNOŚCI
MOV R1,#00000000B ;ZEROWANIE REJESTRU ODP. ZA
;DZIESIĄTKI
MOV R0,#00000000B ;ZEROWANIE REJESTRU ODP. ZA
;SETKI
LJMP PROGRAM_3
END: ;KONIEC
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
42
5. Instrukcja obsługi modułu dydaktycznego
1. Stanowisko pracy
Należy zaopatrzyć się w zasilacz laboratoryjny który umożliwi podawanie
niezależnie dwóch różnych napięć. Do złącza J1 przyłączamy napięcie w granicach od
4.5 ÷ 5.5VDC. Jest to zalecane bezpieczne napięcie dla wszystkich układów logicznych.
Do złącza J2 dołączamy takie napięcie jakie przewidziane jest do zasilania
danego silnika lub elementu wykonawczego (np. stycznika). W zestawie podstawowym
moduł z silnikiem krokowym powinien być zasilany napięciem 9 ÷ 12VDC. Drugi
moduł który steruje silnikami prądu stałego należy zasilić napięciem 4.5 ÷ 6VDC, a w
przypadku gdy sterujemy za pomocą tego modułu stycznikiem podajemy na niego takie
napięcie jakie potrzebne jest do wysterowania cewki stycznika.
2. Sterowanie za pomocą modułu głównego
Sterowanie silnikiem krokowym:
Po podłączeniu modułu z silnikiem krokowym do modułu głównego, oraz
przyłączeniu napięcia użytkownik od razu może przystąpić do obsługi silnika
krokowego.
Dostępne klawisze i ich funkcje:
ENTER – w programie zdefiniowany jako AKCEPT. Przycisk służący do
potwierdzania zadanych wartości.
OBROTY – Po naciśnięciu tego przycisku na wyświetlaczu „prędkość” zaczynają się
wyświetlać cyfry od 1 ÷ 6. Są to tryby prędkości. Im wyższa cyfra tym prędkość
obrotów (wykonywanych kroków) zostaje zwiększona. Można przystąpić do obsługi
silnika krokowego nie wybierając trybu prędkości. Program ustawi wtedy maksymalny
tryb prędkości mimo tego że na wyświetlaczu będzie wyświetlona cyfra „zero”.
Naciśnięcie przycisku podczas pracy silnika spowoduje jego zatrzymanie oraz
wyzerowanie wyświetlaczy pokazujących ilość wykonanych kroków.
LEWO/PRAWO – Wybór w którą stronę silnik ma wykonywać obroty. Do zmiany
kierunku pracy należy najpierw zatrzymać silnik, a następnie wybrać kierunek obrotów.
STOP – Zatrzymuje prace silnika. Wszystkie wyświetlacze zachowują swój obecny
stan.
TRYB – Przejście do trybu obsługi silników prądu stałego.
RESET – Zrestartowanie całego programu. Stan taki jak po załączeniu napięcia do
modułu.
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
43
3. Sterowanie dwoma silnikami prądu stałego
Dostępne klawisze i ich funkcje:
TRYB – Po naciśnięciu tego przycisku uruchomi się tryb obsługi silników prądu
stałego. Zasygnalizowane to będzie zapaleniom się czterech diod LED na 2 sekundy.
Kiedy diody zgasną możemy przystępować do obsługi silników. Obecność w programie
sygnalizowana jest poprzez świecenie się żółtej diody. Kolejne naciśnięcie tego
przycisku spowoduje powrót do programu głównego.
LEWO/PRAWO – Dwa najważniejsze przyciski za pomocą których wybieramy który
silnik ma wykonywać obroty i w którą stronę. Pełnią więc 2 funkcje na raz. Pierwsze
naciśnięcie klawisza decyduje o tym który silnik będziemy konfigurować. Odpowiednio
LEWO – silnik 1; PRAWO – silnik 2. Następnie wybieramy obroty klikając LEWO lub
PRAWO. Tak samo postępujemy przy ustawieniu drugiego silnika.
Przykład:
Chcemy ustawić, aby silnik 1 obracał się w lewo, a silnik 2 w prawo:
Klikamy TRYB – wejście w odpowiedni tryb pracy
Klikamy LEWO – wybór – silnik 1
Klikamy LEWO – silnik 1 obraca się w lewo
Klikamy PRAWO – wybór silnik 2
Klikamy PRAWO – silnik 2 obraca się w prawo
STOP – Natychmiastowe zatrzymanie obydwu silników na raz.
ENTER – Wejście w tryb zatrzymywania silników pojedynczo. Sygnalizowane jest to
zapaleniem się dwóch diod LED – zielonej i czerwonej. Po wejściu w ten tryb klikamy
odpowiednio LEWO – zatrzymaj silnik 1; PRAWO – zatrzymaj silnik 2.
4. Sterowanie silnikami indukcyjnymi
Sterowanie silnikami indukcyjnymi odbywa się poprzez moduł do sterowania
silnikami prądu stałego. Zamiast silników do wyprowadzeń modułu należy dołączyć
stycznik. Dokładny opis podłączeń znajduje się w dziale 3.4. Sterowanie jest
zrealizowane na tej samej zasadzie co przy silnikach prądu stałego. Najpierw należy
wybrać który silnik chcemy sterować. Odpowiednio:
LEWO – silnik 1
PRAWO – silnik 2
Załączenia silnika następuje w momencie gdy na cewkę stycznika zostanie
podane napięcie, czyli wybranie z klawiatury obrotów w odpowiednią stronę.
Zatrzymywanie silników wykonuje się w identyczny sposób jak przy silnikach
prądu stałego.
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
44
6. Wnioski
Projekt działa zgodnie z założeniami konstruktora. Użytkownik ma możliwość
w praktyce zobaczenia jak funkcjonuje silnik. Całość może pełnić rolę jako moduł
dydaktyczny dla osób uczących się w zawodzenie technik elektronik. Idealnie także
sprawdza się obudowa wykonana z pleksi. Zabezpiecza ona całą konstrukcje tym
samym umożliwiając oglądanie wykonywanych czynności przez silnik. Projekt nie
ustrzegł się od wad konstrukcyjnych. Po pierwsze, powinien być zastosowany
stabilizator napięcia (5VDC) dla układów logicznych. Kolejną rzeczą jest funkcja
licząca kroki wykonane przez silnik krokowy. Działa poprawnie, ale jest obsługiwana
tylko programowo, więc przypadkowe zatrzymanie wału silnika nie spowoduje
zatrzymania liczenia kroków. Konstruktor powinien zastosować specjalne tarcze
nakładane na wał silnika krokowego za pomocą których można by liczyć fizycznie
wykonywane skoki.
7. Bibliografia
[1] http://www.dioda.com.pl/forum/topics20/h-bridge-vt111.htm
[2] http://pl.wikipedia.org/wiki/Silnik_krokowy
[3] http://www.tuniv.szczecin.pl/
[4] Tomasz Starecki, Mikrokontrolery 8051 w praktyce, wydawnictwo BTC
Warszawa
[5] Paweł Gałka, Piotr Gałka, Podstawy programowania mikrokontrolera 8051,
Wydanie IV, Wydawnictwo Naukowe PWN SA. Warszawa
MODUŁ URUCHOMIENIOWY DLA SILNIKÓW KROKOWYCH, PRĄDU STAŁEGO, ORAZ
SILNIKÓW INDUKCYJNYCH
45
8. Załączniki
PŁYTA DVD – zdjęcia, oraz filmy pokazujące złożony projekt
SILNIKI INDUKCYJNE
ZDJĘCIA
FILM
OPIS FILMU
SILNIK KROKOWY (VER. 1)
ZDJĘCIA
FILM
OPIS FILMU
SILNIKI PRĄDU STAŁEGO
ZDJĘCIA
FILM
OPIS FILMU
SILNIK KROKOWY (VER. 2)
ZDJĘCIA
MODUŁ GŁÓWNY
ZDJĘCIA
CAŁOŚĆ
ZDJĘCIA
DOKUMENTACJA
WERSJA PDF
WERSJA DOC