Sterownik silnika krokowego. Aleksander Koreń 133109



Podobne dokumenty
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Proste układy wykonawcze

WIZUALIZACJA DANYCH SENSORYCZNYCH Sprawozdanie z wykonanego projektu. Jakub Stanisz

Silnik prądu stałego. Sterowanie silnika prądu stałego

StrK Sterownik bipolarnego silnika krokowego

Wizualizacja stanu czujników robota mobilnego. Sprawozdanie z wykonania projektu.

Cel ćwiczenia. Przetwornik elektromagnetyczny. Silniki krokowe. Układ sterowania napędu mechatronicznego z silnikiem krokowym.

Silniki krokowe. 1. Podział siników krokowych w zależności od ich budowy.

Systemy Wbudowane. Arduino dołączanie urządzeń Wersja Arduino więcej portów I/O. Układy serii 74. Układy serii 74xx a seria 40xx

2.1 Porównanie procesorów

OPIS STEROWNIKA 040 USB

Instytut Teleinformatyki

Analogowy sterownik silnika krokowego oparty na układzie avt 1314

Funkcje standardowej biblioteki wejść-wyjść do wyświetlania i pobierania danych

Mikrokontrolery AVR Wprowadzenie

Inż. Kamil Kujawski Inż. Krzysztof Krefta. Wykład w ramach zajęć Akademia ETI

TECHNIKA MIKROPROCESOROWA

ĆWICZENIE 5. TEMAT: OBSŁUGA PORTU SZEREGOWEGO W PAKIECIE KEILuVISON WYSYŁANIE PORTEM SZEREGOWYM

Kod produktu: MP01611-ZK

Edukacyjny sterownik silnika krokowego z mikrokontrolerem AT90S1200 na płycie E100. Zestaw do samodzielnego montażu.

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Charakterystyka rozruchowa silnika repulsyjnego

OPIS STEROWNIKA 821B USB

Kod produktu: MP01611

dokument DOK wersja 1.0

UW-DAL-MAN v2 Dotyczy urządzeń z wersją firmware UW-DAL v5 lub nowszą.

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

OPIS STEROWNIKA 841 USB

ZL8AVR. Płyta bazowa dla modułów dipavr

Kod produktu: MP01105T

Maszyny elektryczne. Materiały dydaktyczne dla kierunku Technik Optyk (W12) Kwalifikacyjnego kursu zawodowego.

Wydział Elektroniki. Wykrywacz przewodów ściennych. Wizualizacja danych sensorycznych - projekt. Prowadzący: dr inż.

STEROWNIK ŚWIATEŁ i SZLABANÓW SWS-4/485K/UK

Programator procesorów rodziny AVR AVR-T910

Wyjścia analogowe w sterownikach, regulatorach

Instytut Teleinformatyki

Instrukcja Obsługi. Modułu wyjścia analogowego 4-20mA PRODUCENT WAG ELEKTRONICZNYCH

Interfejs RS485-TTL KOD: INTR. v.1.0. Zastępuje wydanie: 2 z dnia

Silniki prądu stałego z komutacją bezstykową (elektroniczną)

Obługa czujników do robota śledzącego linie. Michał Wendland czerwca 2011

MODUŁ STEROWNICZY SMC 800 DO SILNIKÓW KROKOWYCH

Uniwersalny sterownik silnika krokowego z portem szeregowym RS232 z procesorem AT90S2313 na płycie E200. Zestaw do samodzielnego montażu.

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Programowanie i uruchamianie serwo-kontrolera w napędowym układzie wykonawczym z silnikiem skokowym. Przebieg ćwiczenia

Interfejs USB-RS485 KOD: INTUR. v.1.0. Zastępuje wydanie: 2 z dnia

Systemy Wbudowane. Arduino - rozszerzanie. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD

Instrukcja. Silnik Portos DELUX- R

MIKROPROCESOROWY STEROWNIK PARAMETRÓW KLIMATYCZNYCH

Komunikacja w mikrokontrolerach Laboratorium

Politechnika Wrocławska

Kacper Kulczycki. Krótko o silnikach krokowych (cz. 2.)

Wysokowydajne falowniki wektorowe Micno KE300.

Instrukcja do oprogramowania ENAP DEC-1

Kod produktu: MP01105

Opis bezprzewodowego układu do pomiaru oporu elektrycznego skóry

SILNIKI PRĄDU STAŁEGO

Instrukcja obsługi sterownika TB6560-3v2 oraz programu Mach3

Konfiguracja podstawowych parametrów falownikóww LG ig5a na przykładzie wentylatora RF/6-630T

MOBOT-RCR v2 miniaturowe moduły radiowe Bezprzewodowa transmisja UART

MCAR Robot mobilny z procesorem AVR Atmega32

Wykład 2 Silniki indukcyjne asynchroniczne

AVR DRAGON. INSTRUKCJA OBSŁUGI (wersja 1.0)

1. Cel ćwiczenia. Celem ćwiczenia jest zestawienie połączenia pomiędzy dwoma sterownikami PLC za pomocą protokołu Modbus RTU.

4 Transmisja szeregowa, obsługa wyświetlacza LCD.

Zewnętrzne układy peryferyjne cz. 2 Wykład 13

Programowanie mikrokontrolerów AVR

Komunikacja w mikrokontrolerach Laboratorium

Instytut Teleinformatyki

LEKCJA TEMAT: Zasada działania komputera.

Kod produktu: MP01611-ZK

Sterowanie urządzeniami elektronicznymi przy użyciu portu LPT

Z powyższej zależności wynikają prędkości synchroniczne n 0 podane niżej dla kilku wybranych wartości liczby par biegunów:

Przetworniki pomiarowe obrotu i przesunięcia liniowego

SILNIK KROKOWY. w ploterach i małych obrabiarkach CNC.

Dokumentacja Techniczno ruchowa: Moduł PSI (ver. PSI 1.0)

Biomonitoring system kontroli jakości wody

SML3 październik

Płytka uruchomieniowa AVR oparta o układ ATMega16/ATMega32. Instrukcja Obsługi. SKN Chip Kacper Cyrocki Page 1

Silniki prądu stałego. Wiadomości ogólne

MiniModbus 4DO. Moduł rozszerzający 4 wyjścia cyfrowe. Wyprodukowano dla. Instrukcja użytkownika

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

Mikroprocesory i mikrosterowniki Wydział Elektroniki Mikrosystemów i Fotoniki Politechniki Wrocławskiej Ćwiczenie nr 4

Instrukcja obsługi programatora AVR Prog USB v2

EKSPANDER WEJŚĆ ADRESOWALNYCH int-adr_pl 05/14

Sterownik momentu obrotowego silnika prądu stałego

PROGRAMOWALNE STEROWNIKI LOGICZNE

Zestaw Startowy EvB. Więcej informacji na stronie:

Ćwiczenie: "Silnik prądu stałego"

Interface sieci RS485

MultiTool instrukcja użytkownika 2010 SFAR

Przemysłowe Systemy Automatyki ĆWICZENIE 2

Schemat blokowy architektury AVR

Modułowy programowalny przekaźnik czasowy firmy Aniro.

1. W zależności od sposobu połączenia uzwojenia wzbudzającego rozróżniamy silniki:

Laboratorium Elektroniki w Budowie Maszyn

Transkrypt:

Sterownik silnika krokowego Aleksander Koreń 133109 20 czerwca 2007

1 Cel projektu Celem projektu było zaprojektowanie mikroprocesorowego sterownika silnika krokowego umożliwiajacego regulację prędkości obrotowej. Sterownik ten miał komunikować sie z komputerem poprzez interfejs RS232. 2 Budowa silnika krokowego Silnikiem krokowym wykorzystywanym w projekcie był silnik o zmiennej reluktancji (VR). Zjawisko reluktancji jest analogiczne do zjawiska rezystancji wystepuj acego przy przepływie pradu elektrycznego, lecz odnosi sie ono do strumienia magnetycznego. Prad przepływajacy przez uzwojenie powoduje powstanie linii sił pola magnetycznego, które skupiaja sie w obszarach o najmniejszej reluktancji. Siła ta powoduje ustawianie sie ruchomego rdzenia dokładnie wzdłuż linii pola magnetycznego. Obrócenie ruchomego elementu rdzenia zwieksza reluktancje obwodu, powoduje to powstanie momentu obrotowego starajacego sie obrócić rdzeń do pozycji poczatkowej. Ilustruje to poniższy rysunek. Rysunek 1: Powstawanie reluktancyjnego momentu obrotowego Silniki reluktancyjne posiadaja wirnik wykonany z miekkiej stali z nacietymi zebami. Przepływ pradu przez pare uzwojeń powoduje ustawienie sie zebów wirnika 1

naprzeciw zasilanych uzwojeń. Nie ma w tym przypadku znaczenia kierunek przepływu pradu, a jedynie jego wartość (jest to tak zwane sterowanie unipolarne, w przeciwieństwie do bipolarnego). Obrót wirnika osiagamy zasilajac kolejno sasiaduj ace ze soba uzwojenia. Rysunek 2: Budowa silnika o zmiennej reluktancji Silnik wykorzystany w projekcie posiada 3 pary uzwojeń. Końcówki zasilajace te uzwojenia wyprowadzone sa na zewnatrz za pomoca wtyczki zawierajacej 6 przewodów (kolory kabli : czarny, czerwony, niebieski, zielony, żółty, brazowy). Przewody te parami (czarny i czerwony, niebieski i zielony, żółty i brazowy) stanowia wejścia i wyjścia poszczególnych par uzwojeń. Wspomniana końcówka jest podłaczana do wyprowadzeń sterownika oznaczonych na schemacie jako X3-1 do X3-6. Nie ma tutaj znaczenia sposób podłaczenia (czarny kabel do X3-1 lub X3-6) gdyż unipolarna metoda sterowania silnikiem nie jest wrażliwa na kierunek pradu przepływajacego przez uzwojenia. 2

3 Budowa i zasada działania sterownika Sterownik został oparty na mikrokontrolerze Atmega16. Sygnał sterujacy z mikrokontrolera zostaje podany na stopień mocy ULN2803. Mikrokontroler obsługuje również komunikacje z komputerem za pomoca interfejsu RS232 (poprzez układ MAX232). Sterowanie obrotami silnika polega na sekwencyjnym podawaniu stanu wysokiego na kolejne wyjścia portu mikrokontrolera (PD4, PD5, PD6). Sygnał ten doprowadzony do wejść układu ULN2803 powoduje zwieranie wyjść tego układu do masy, a tym samym przepływ pradu przez kolejne uzwojenia silnika. Maksymalny prad, jaki możemy uzyskać z jednego wyjścia to ok. 500 ma, a wiec wyjścia te zostały połaczone równolegle parami, aby zwiekszyć nateżenie przepływajacego pradu. Silnik sterowany jest w trybie półkrokowym tzn. zasilane jest jedno uzwojenie lub dwa sasiednie, dzieki czemu uzyskujemy dwa razy wiecej stabilnych położeń niż przy sterowaniu pełnokrokowym (a tym samym płynniejszy ruch przy małych predkościach obrotowych). Sekwencja sterujaca wyglada nastepuj aco : krok uzwojenie 1 uzwojenie 2 uzwojenie 3 1 + - - 2 + + - 3 - + - 4 - + + 5 - - + 6 + - + gdzie : + zasilanie uzwojenia - brak zasilania uzwojenia Komunikacja z komputerem odbywa sie poprzez interfejs RS232 za pośrednictwem układu MAX232. Parametry transmisji wynosza : predkość 9600, brak kontroli parzystości, 1 bit stopu. Użytkownik ma możliwość przesyłania z komputera do mikroprocesora liczby która odpowiada określonej predkości obrotowej silnika. Komunikacja ta jest jednokierunkowa, sygnały przesyłane sa jedynie z komputera do układu. 3

Rysunek 3: Schemat sterownika 4

4 Oprogramowanie mikrokontrolera Program pisany był w j ezyku C z wykorzystaniem środowiska AVR Studio 3.56 wraz z kompilatorem AVRgcc. // Sterowanie predkoscia obrotowa silnika krokowego // za pomoca sygnalow przesylanych przez lacze RS-232 #include <c:\avrgcc\avr\include/io.h> #include <c:\avrgcc\avr\include/progmem.h> #include <c:\avrgcc\avr\include/stdlib.h> #include <c:\avrgcc\avr\include/interrupt.h> #define F_CPU 8000000ul //częstotliwosc zegara w Hz #define UART_BAUD 9600ul //predkosc transmisji #define UART_CONST (F_CPU/(16ul*UART_BAUD)-1) #define UZWOJENIE1_OFF PORTD &= 0xBF #define UZWOJENIE1_ON PORTD = 0x40 #define UZWOJENIE2_OFF PORTD &= 0xDF #define UZWOJENIE2_ON PORTD = 0x20 #define UZWOJENIE3_OFF PORTD &= 0xEF #define UZWOJENIE3_ON PORTD = 0x10 //sterowanie 1. uzwojeniem silnika //sterowanie 2. uzwojeniem silnika //sterowanie 3. uzwojeniem silnika // Funkcja opozniajaca void waitms(unsigned char x) unsigned char a, b; for( ; x > 0; --x) for(b = 10; b > 0; --b) for(a = 100; a > 0; --a) asm("nop"); 5

// Procedura wykonujaca 1 obrot silnika, tryb pracy polkrokowy void obrot1(unsigned char czas) UZWOJENIE1_ON; UZWOJENIE3_OFF; UZWOJENIE2_ON; UZWOJENIE1_OFF; UZWOJENIE3_ON; UZWOJENIE2_OFF; // _UCR_ #define _UCR_ #endif #define _UCR_ #endif #define _UCR_ #endif // _USR_ #define _USR_ #endif #define _USR_ UCR UCSRB UCSR0B USR UCSRA UCR UCSRB UCSR0B USR UCSRA 6

#endif #define _USR_ #endif UCSR0A UCSR0A // Inicjalizacja portu szeregowego void UART_init(void) UBRRH = 0x00; UBRRL = (unsigned char)uart_const; UCSRB = (1<<RXCIE) (1<<RXEN) (1<<TXEN); // predkosc transmisji int main( void ) UART_init(); // program glowny // inicjalizacja portu szeregowego // konfiguracja portow I/O DDRD = 0xFE; PORTD = 0x01; unsigned char predkosc = 50; while(1) if (UDR!=0) predkosc=udr; UDR=0; obrot1(predkosc); return 0; 7

5 Komunikacja z komputerem Komunikacje sterownika z komputerem zapewnia program napisany w Qt. Umożliwia on przesyłanie do sterownika poprzez interfejs RS232 liczby która odpowiada określonej predkości obrotowej silnika krokowego. Liczba ta jest interpretowana jako wartość opóźnienia w ms pomiedy poszczególnymi krokami w sekwencji sterujacej silnikiem. Zawiera sie ona w przedziale od 50 do 127. Sam program jest bardzo prosty, zawiera on jedynie suwak umożliwiajacy wstawienie konkretnej wartości oraz wyświetlacz wizualizujacy te wartość. Został on stworzony w Qt Designerze. Składa sie z czterech plików : silnik.ui zawierajacym projekt okna graficznego, silnik.ui.h zawierajacym procedure odpowiedzialna za komunikacje ze sterownikiem, silnik.pro oraz main.cpp. Rysunek 4: Program służacy do komunikacji ze sterownikiem 6 Wnioski Podstawowym problemem było ustalenie jakiego rodzaju jest posiadany silnik, gdyż to decydowało o wyborze rodzaju sterowania (bipolarne lub unipolarne). Było to o tyle proste, że silnik ten podczas obrotu nie wykazywał żadnego oporu (nie wyst epowało charakterystyczne przeskakiwanie). Wskazywało to na silnik 8

reluktancyjny. Kolejnym problemem był brak odpowiednich scalonych sterowników mogacych posłużyć do budowy układu. Zdecydowana wiekszośc sterowników dostepnych w sprzedaży była dostosowana do silników krokowych dwuuzwojeniowych (w tym najbardziej popularne L297 i L298N), tak wiec cały cieżar sterowania musiał zostać przeniesiony na strone programowa. Odbiło sie to na jakości sterowania. Przy małych predkościach obrotowych ruch wirnika nie jest płynny (pomimo zastosowania sterowania półkrokowego). Także moment obrotowy wytwarzany przez silnik jest bardzo mały, przy pradzie 500 ma na uzwojenie wystarcza on do obrotu wirnika, lecz jakikolwiek opór powoduje jego zatrzymanie. Literatura [1] Jarosław Doliński, Mikrokontrolery AVR w praktyce, Wydawnictwo BTC [2] Jacek Przepiórkowski, Silniki elektryczne w praktyce elektronika, Wydawnictwo BTC [3] Andrzej Pawluczuk, Sztuka programowania mikrokontrolerów AVR : podstawy, Wydawnictwo BTC [4] www.mikrokontrolery.net 9