Professional Documents
Culture Documents
Veleučilište U Rijeci Odjel Telematika: Upravljanje Koračnim Motorima Putem Arduino Platforme
Veleučilište U Rijeci Odjel Telematika: Upravljanje Koračnim Motorima Putem Arduino Platforme
ODJEL TELEMATIKA
Rijeka, 2013.
VELEUILITE U RIJECI
ODJEL TELEMATIKA
SADRAJ
APSTRAKT ......................................................................................................................... 4
1. UVOD ............................................................................................................................... 5
2. KORANI MOTORI ...................................................................................................... 6
2.1. Karakteristike koranih motora ................................................................................. 6
2.2. Podjela koranih motora ............................................................................................ 7
2.2.1 Reluktantni korani motori ................................................................................. 7
2.2.2 Korani motori s permanentnim magnetom ........................................................ 8
2.2.3 Hibridni korani motori ...................................................................................... 8
2.3 Bipolarni i unipolarni korani motori ......................................................................... 9
2.4 Upravljanje bipolarnim koranim motorom ............................................................... 9
3. ARDUINO PLATFORMA ........................................................................................... 10
4. MOTOR DRIVER L298N ............................................................................................ 11
5. UPRAVLJANJE MOTORIMA ................................................................................... 12
5.1 Spajanje tipkala ......................................................................................................... 12
5.2 Regulacija brzine vrtnje ............................................................................................ 13
5.3 Prisilno zaustavljanje motora .................................................................................... 14
5.4 Elektrina shema spajanja ......................................................................................... 15
5.5 Montana shema spajanja ......................................................................................... 16
5.6 Problem s radom tipkala ........................................................................................... 17
5.7 Problem s istovremenim pokretanjem oba motora ................................................... 18
5.8 Programski kod ......................................................................................................... 18
6. ZAKLJUAK ................................................................................................................ 22
7. LITERATURA............................................................................................................... 22
8. POPIS SLIKA ................................................................................................................ 23
APSTRAKT
U projektnom radu je opisana jedna od brojnih mogunosti Arduino razvojne platforme
otvorenog koda, upravljanje koranim motorom. Korani motori pulsnu elektrinu pobudu
pretvaraju u korak, te omoguavaju potreban diskretni pomak, to je nuno u sklopovima i
sustavima gdje se zahtijeva kontrolirano upravljanje preciznim pomacima mehanikih
dijelova. U praktinom dijelu projekta realizirano je simultano upravljanje dvama bipolarnim
dvofaznim koranim motorimam, pomak za jedan korak napred-nazad i kontinuirano kretanje
napred-nazad. Za realizaciju projekta, pored osnovnog modela arduinovog modela
ArduinoUNO-a i odgovarajueg izvora napajanja, koritena su dva odvojena motor drivera s
integriranim krugom L298N. Motor driver je elektroniki sklop koji putem upravljakih
signala sa miktrokontrolera napaja korani motor potrebnim naponskim i strujnim veliinama.
Arduino UNO nema mogunost viedretvenog rada, no isti nedostatak se donekle moe
kompenzirati Interrupt funkcijom kojom je na primjeru ovog projekta rijeen zahtjev za
prisilno zaustavljanje motora. Upravljaki program je napisan u originalnoj arduinovoj
programskoj podrci otvorenog koda, u programskom jeziku vrlo slinom C-u. Programski
kod je relativno jednostavan jer Arduinova programska podrka izmeu ostalih sadri
knjinicu naredbi namjenjenih upravo upravljanju koranim motorima.
1. UVOD
Veliki dio tehnologija koja se susree i koristi u svakodnevnom ivotu sadri pokretne
dijelove ijim je pomacima potrebno precizno upravljati kako bi sustav zadovoljio eljenu
funkcionalnost i automatizam. Suvremena elektronika rjeenja omoguavaju pretvorbu
analognih veliina u digitalne podatke, a korani motori te iste podatke pretvaraju u
proporcionalni mehaniki pomak.
Arduino UNO je univerzalni mikrokontroler otvorenog koda i besplatne programske
podrke sa jednostavnim korisnikim sueljem, te je kao takav idealan za razvoj upravljake
elektronike i robotike. Glavna namjena kontrolera je komuniciranje s razliitim hardverom
koji je na njega prikljuen putem ulazno-izlaznih konektora. Bogata programska podrka
izmeu brojnih knjinica s predefiniranim programskim paketima sadri i onu koja je posebno
kreirana za upravljanje koranim motorima, a to je i cilj ovog projekta.
Korani motori su jednostavne, pouzdane i precizne komponente koje ne zahtjevaju
posebno odravanje, te su nezaobilazni elementi u razliitim robotiziranim i automatiziranim
ureajima i sustavima. Ovisno o namjeni proizvode se u razliitim oblicima, razliitim
tehnolokim rjeenjima i sa razliitim tehnikim specifikacijama.
Kontroleri na izlazu daju naponske i strujne vrijednosti koje su u pravilu puno manje od
onih koje su potrebne za pokretanje elektromehanikih pretvornika. Rjeenje ovog tehnikog
problema je ugradnja motor-drivera izmeu kontrolera i motora, elektronikog sklopa koji na
osnovu upravljakih impulsa napaja prikljueni motor potrebnim naponskim i strujnim
veliinama iz odgovarajueg zasebnog izvora napajanja.
Zadatak ovog projektnog rada je izvedba oglednog primjera sustava za pretvorbu digitalnih
veliina u mehaniko gibanje.
2. Korani motori
Korani motori su pretvornici elektrine energije u mehaniku koji omoguavaju pretvorbu
digitalnog podatka u proporcionalni mehaniki pomak. Prevladava uporaba rotacijske
izvedbe, no proizvode se i korani motori u translacijskoj izvedbi. Pri uzbudi namotaja po
programiranom redoslijedu rotor se pomakne u diskretnim koracima, odnosno pokrene u
eljenom smijeru za predvieni kut. To su dakle sinkroni motori jer rotor sinkrono prati
kretanje statorskog polja zbog sila nastalih meudjelovanjem s poljem rotorskih magneta ili
reluktantnih sila. Pozicija rotora se mijenja u koracima jer se statorski namotaji napajaju
strujnim impulsima potrebnog rasporeda i polariteta upravljanim pomou binarnih signala.
Smjer vrtnje se moe mijenjati promjenom impulsnog slijeda, brzina rotacije promjenom
frekvencije impulsa, a kut (prijeeni broj koraka) ovisi o ukupnom broju pristiglih impulsa.
Rotor se moe i drati u eljenoj kutnoj poziciji. Korani motori su nezaobilazni elementi za
precizno upravljanje i pozicioniranje pokretnih mehanizama u praktinim ureajima i
sustavima kao to su na primjer disketni pogoni, CD/DVD ureaji, printeri, skeneri, fax
ureaji, kamere, roboti, elektromotorni ventili, protone pumpe, CNC strojevi, industrijski
ventilatori, te brojni drugi ureaji u domainstvu i industriji. Svima njima je zajedniko
kontrolirano gibanje mehanikih pokretnih djelova. Za iroku primjenu zasluna je njihova
prilagodljivost konkretnoj potrebi i relativno jednostavan nain njihovim upravljanjem.
2.1. Karakteristike koranih motora
Iz mehanikog pogleda korani motor je jednostavna, pouzdana i precizna komponenta
koja ne zahtjeva posebno odravanje zahvaljujui konstrukciji bez kolektora i etkica. Jo
neke od prednosti su povoljna cijena, jednostavan dizajn, velika akceleracija i snaga, te veliki
raspon brzine vrtnje koja je proporcionalna frekvenciji ulaznih impulsa. Od nedostataka se
moe izdvojiti mala korisnost (korani motori troe znaajnu energiju bez obzira na teret),
moment znatno opada s poveanjem brzine, sklonost rezonanciji, jako zagrijavanje na
zahtjevnim reimima, te niska izlazna snaga s obzirom na veliinu i teinu. Odabir koranog
motora za konkretnu primjenu ovisi o njegovim specifinim vrijednostima slijedeih
parametara:
Rezolucija
o Rezolucija rotacijskih koranih motora broj koraka po okretaju, odnosno
iznos koraka u stupnjevima
o Rezolucija linearnih koranih motora duina koraka
Odziv jednog koraka pokazuje brzinu, oscilatornost i tonost odziva. To je vrijeme
potrebno za pomak motora za jedan korak nakon to se napajanje jedne faze iskljui, a
slijedee faze ukljui
Tonost koranog motora ovisi o preciznosti izrade motora, a izraava se
maksimalnom relativnom pogrekom, odnosno grekom pozicije zbog konstrukcije.
Na slici br. 5 je shematski prikaz oba naina upravljanja bipolarnim koranim motorom na
primjeru jednostavnog dvofaznog modela sa jednim parom polova po fazi i
permanentnomagnetskim rotorom s dva pola, a isti princip rada se primjenjuje i na
najsloenije modele.
3. Arduino platforma
Arduino je univerzalni mikrokontroler zasnovan na ATmel tehnologiji i idealan je za
razvoj upravljake elektronike i robotike. Platforma je otvorenog koda temeljena na
jednostavnoj razvojnoj ploici s ulazno/izlaznim konektorima i besplatnom programskom
podrkom sa jednostavnim korisnikim sueljem. Programiranje ureaja se izvodi iz
integriranog razvojnog okruenja, koje postoji za Windows, Mac i Linux operativni sustav, u
programskom jeziku slinom C-u. Glavna je namjena cijelog sustava komuniciranje s
razliitim hardverom koji je na njega prikljuen. Arduino je dostupan u nekoliko razliitih
verzija, a osnovni model je Arduino UNO sa slijedeom tehnikom specifikacijom:
Mikroprocesor : ATmega328
Frekvencija procesora : 16MHz
Radni napon : 5V
Ulazni napon (preporueno): 7-12V
Ulazni napon (ogranieno): 6-20V
Digitalni I/O pinovi : 14 (od toga mogue 6 PWM izlaza)
Analogni ulazni pinovi : 6
10
5. Upravljanje motorima
Ovim projektom je realizirano simultano upravljanje dvama koranim motorima putem
etiri tipkala uz mogunost regulacije brzine vrtnje i prisilno zaustavljanje motora;
1. vrtnja za cijeli krug u smijeru kazaljke na satu
2. vrtnja za cijeli krug obrnuto od kazaljke na satu
3. okretanje za jedan korak u smijeru kazaljke na satu
4. okretanje za jedan korak obrnuto od kazaljke na satu
5.1 Spajanje tipkala
Tipkala su prema priloenoj shemi spajanja spojena preko R-2R otporne mree na jedan
analogni ulaz mikrokontrolera, pin A1.
12
13
14
15
16
17
#include <Stepper.h>
// ukljuivanje Arduino knjinice
#define KORAK 48
// broj koraka za puni krug = 360 / kut jednog koraka koritenog motora
#define OMJER 5
// omjer dijeljenja analogne vrijednosti potenciometra => brzina vrtnje
int pbIn = 0;
//Interrupt 0 je na Arduino UNO-u na digitalnom pinu 2
volatile int stanje = LOW;
/* deklaracija i inicijalizacija varijable za upravljanje prekidom,
prefiks volatile govori kompajleru da se varijabla uva u RAM memoriji
umjesto u memorijskom registru gdje bi ista u odreenim uvjetima mogla biti
netona uslijed trenutnog izvoenja programa*/
int potPin = A2;
// definicija pina za prikljuenje potenciometra
int tipkaPin = A1;
// definicija pina za prikljuenje tipkala
18
int tipkaVrijednost = 0;
/* deklaracija i inicijalizacija varijable za pohranu
trenutne vrijednosti tipkala*/
int potVrijednost;
/* deklaracija varijable za pohranu trenutne vrijednosti
potenciometra*/
int brzina;
// deklaracija varijable za pohranu izraunate vrijednosti brzine
void setup() {
pinMode(2, INPUT);
// setiranje digitalnog pina 2 za ULAZ
attachInterrupt(pbIn, prekid, CHANGE);
/* deklaracija prekida imena "prekid" koji se aktivira
na promjenu ("CHANGE") stanja na digitalnom pinu 2 (pbIn)*/
pinMode(potPin, INPUT);
// setiranje analognog pina A2 za ULAZ
pinMode(tipkaPin, INPUT);
// setiranje analognog pina A1 za ULAZ
Serial.begin(9600);
// inicijalizacija serijskog porta:
}
void loop() {
if(potVrijednost >= OMJER){ //podeavanje brzine vrtnje
brzina = potVrijednost / OMJER;
}
else{
brzina = 1;
}
mojSteper1.setSpeed(brzina);
// setiranje brzine vrtnje 1. motora
mojSteper2.setSpeed(brzina);
// setiranje brzine vrtnje 2. motora
tipkaVrijednost = analogRead(tipkaPin);
//spremanje u varijablu trenutne vrijednosti na pinu A1
19
potVrijednost = analogRead(potPin);
//spremanje u varijablu trenutne vrijednosti na pinu A2
20
Serial.println(brzina);
mojSteper1.step(1);
mojSteper2.step(1);
delay(250);
}
if (tipkaVrijednost > 720 && tipkaVrijednost < 740){
// okretanje za jedan korak u smjeru kazaljke na satu
stanje = HIGH;
Serial.println("Korak obrnuto od kazaljke na satu");
Serial.print("tipka = ");
Serial.println(tipkaVrijednost);
Serial.print("brzina = ");
Serial.println(brzina);
mojSteper1.step(-1);
mojSteper2.step(-1);
delay(250);
}
}
void prekid(){ //deklaracija izvrne funkcije prekida
stanje = LOW;
mojSteper1.step(0);
mojSteper2.step(0);
Serial.print("stanje = ");
Serial.println(stanje);
}
21
6. ZAKLJUAK
Arduino platforma je iroko primjenjiv mikrokontroler brojnih mogunosti s posebnim
naglaskom na jednostavnost njegova koritenja i bogatu programsku podrku za realizaciju
razliitih projektnih rjeenja. Njegova primjena je i u ovom projektu ispunila sva oekivanja i
omoguila realizaciju jednostavnog sustava za upravljanje dvama koranim motorima uz
minimalnu upotrebu dodatnih elemenata. Prikazani ogledni sustav moe biti dijelom nekog
veeg sustava u kojem se trai precizno upravljanje pokretnim elemenatima, bilo da se radi o
raunalnoj opremi, industrijskim strojevima, robotici, sustavima pametnih kua, i sl.
Arduino mikrokontroler ima ogranien broj digitalnih ulaza-izlaza i analognih ulaza, a na
primjeru ovog projekta prikazana je mogunost dodatne utede u koritenju analognih ulaza
kada se vie tipkala za razliite zadae spaja na isti ulaz. Prikljuenjem veeg broja razliitih
senzora na mikrokontroler mogue je postii i potpuno autonoman rad sustava.
Kao nedostatak moe se istaknuti nemogunost viedretvenog rada Arduino UNO
mikrokontrolera, to se u nekim sluajevima moe kompenzirati Interrupt funkcijom, a to je
pokazano i na primjeru ovog projekta. No s obzirom na nisku trinu cijenu arduino modula,
jednostavnost njegova koritenja, besplatnu programsku podrku i brojne druge mogunosti
ovaj nedostatak ne umanjuje popularnost i iroku primjenu arduino platforme.
7. LITERATURA
1. Arduino Home Page, URL: http://www.arduino.cc.
2. Fritzing, URL: http://fritzing.org/
3. Using Motor Bridges, URL: http://www.robotoid.com/appnotes/circuits-bridges.html
4. Arduino Motor Shield L298_Manual, URL:
http://droboticsonline.com/ebaydownloads/L298_Motor_Shield_Manual.pdf
5. Korani motori, URL:
http://www.fer.unizg.hr/_download/repository/EAP_VIII_dio_KM%5B1%5D.pdf
6. Korani motori, URL: http://people.etf.unsa.ba/~jvelagic/laras/dok/Lekcija6.pdf
7. Stepper Motors, URL: http://www.allaboutcircuits.com/vol_2/chpt_13/5.html
8. Stepper Motors and Control, URL:
http://www.stepperworld.com/Tutorials/pgBipolarTutorial.htm
9. Power Electronic Tehnology, URL:
http://powerelectronics.com/images/Versatile-Microstepper-Driver-fig-1.jpg
22
8. POPIS SLIKA
Slika 1_reluktantni korani motor ......................................................................................... 8
Slika 2_permanentnomagnetski korani motor ..................................................................... 8
Slika 3_hibridni korani motor .............................................................................................. 9
Slika 4_razliite konstrukcije namotaja koranih motora ..................................................... 9
Slika 5_shematski prikaz upravljanja bipolarnim koranim motorom ................................ 10
Slika 6_Arduino UNO razvojna platforma .......................................................................... 11
Slika 7_raspored pinova IC L298 ........................................................................................ 12
Slika 8_motor driver s L298N ............................................................................................. 12
Slika 9_shema spajanje 4 tipkala na jedan analogni ulaz .................................................... 12
Slika 10_shema spajanja potenciometra na analogni ulaz................................................... 13
Slika 11_shema spajanja elemenata za potrebe Interrupt funkcije ...................................... 14
Slika 12_elektrina shema spajanja praktinog dijela projekta ........................................... 15
Slika 13_montana shema spajanja praktinog dijela projekta ........................................... 16
Slika 14_fotografija gotovog modela projekta .................................................................... 17
23