23
VELEUČILIŠTE U RIJECI ODJEL TELEMATIKA STUDENT Marin Simčić UPRAVLJANJE KORAČNIM MOTORIMA PUTEM ARDUINO PLATFORME PROJEKTNA DOKUMENTACIJA Rijeka, 2013.

UPRAVLJANJE KORA ČNIM MOTORIMA PUTEM · PDF fileTo su dakle sinkroni motori jer rotor sinkrono prati kretanje ... elektromotorni ventili, proto čne pumpe, CNC strojevi, industrijski

Embed Size (px)

Citation preview

Page 1: UPRAVLJANJE KORA ČNIM MOTORIMA PUTEM · PDF fileTo su dakle sinkroni motori jer rotor sinkrono prati kretanje ... elektromotorni ventili, proto čne pumpe, CNC strojevi, industrijski

VELEUČILIŠTE U RIJECI ODJEL TELEMATIKA

STUDENT Marin Simčić

UPRAVLJANJE KORA ČNIM MOTORIMA

PUTEM ARDUINO PLATFORME

PROJEKTNA DOKUMENTACIJA

Rijeka, 2013.

Page 2: UPRAVLJANJE KORA ČNIM MOTORIMA PUTEM · PDF fileTo su dakle sinkroni motori jer rotor sinkrono prati kretanje ... elektromotorni ventili, proto čne pumpe, CNC strojevi, industrijski

2

VELEUČILIŠTE U RIJECI ODJEL TELEMATIKA

UPRAVLJANJE KORA ČNIM MOTORIMA PUTEM ARDUINO PLATFORME

PROJEKTNA DOKUMENTACIJA

Kolegij: Projekt u telematici

Mentor: Marino Franušić, predavač

Student: Marin Simčić

Matični broj: 2427005016/10

Studij: Telematika

Rijeka, siječanj, 2013.

Page 3: UPRAVLJANJE KORA ČNIM MOTORIMA PUTEM · PDF fileTo su dakle sinkroni motori jer rotor sinkrono prati kretanje ... elektromotorni ventili, proto čne pumpe, CNC strojevi, industrijski

3

SADRŽAJ

APSTRAKT ......................................................................................................................... 4 1. UVOD ............................................................................................................................... 5

2. KORAČNI MOTORI ...................................................................................................... 6 2.1. Karakteristike koračnih motora ................................................................................. 6

2.2. Podjela koračnih motora ............................................................................................ 7

2.2.1 Reluktantni koračni motori ................................................................................. 7

2.2.2 Koračni motori s permanentnim magnetom ........................................................ 8

2.2.3 Hibridni koračni motori ...................................................................................... 8

2.3 Bipolarni i unipolarni koračni motori ......................................................................... 9

2.4 Upravljanje bipolarnim koračnim 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 Električna shema spajanja ......................................................................................... 15

5.5 Montažna 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. ZAKLJU ČAK ................................................................................................................ 22 7. LITERATURA............................................................................................................... 22 8. POPIS SLIKA ................................................................................................................ 23

Page 4: UPRAVLJANJE KORA ČNIM MOTORIMA PUTEM · PDF fileTo su dakle sinkroni motori jer rotor sinkrono prati kretanje ... elektromotorni ventili, proto čne pumpe, CNC strojevi, industrijski

4

APSTRAKT U projektnom radu je opisana jedna od brojnih mogućnosti Arduino razvojne platforme

otvorenog koda, upravljanje koračnim motorom. Koračni motori pulsnu električnu pobudu

pretvaraju u korak, te omogućavaju potreban diskretni pomak, što je nužno u sklopovima i

sustavima gdje se zahtijeva kontrolirano upravljanje preciznim pomacima mehaničkih

dijelova. U praktičnom dijelu projekta realizirano je simultano upravljanje dvama bipolarnim

dvofaznim koračnim motorimam, pomak za jedan korak napred-nazad i kontinuirano kretanje

napred-nazad. Za realizaciju projekta, pored osnovnog modela arduinovog modela

ArduinoUNO-a i odgovarajućeg izvora napajanja, korištena su dva odvojena motor drivera s

integriranim krugom L298N. Motor driver je elektronički sklop koji putem upravljačkih

signala sa miktrokontrolera napaja koračni motor potrebnim naponskim i strujnim veličinama.

Arduino UNO nema mogućnost višedretvenog rada, no isti nedostatak se donekle može

kompenzirati Interrupt funkcijom kojom je na primjeru ovog projekta riješen zahtjev za

prisilno zaustavljanje motora. Upravljački program je napisan u originalnoj arduinovoj

programskoj podršci otvorenog koda, u programskom jeziku vrlo sličnom C-u. Programski

kod je relativno jednostavan jer Arduinova programska podrška između ostalih sadrži

knjižnicu naredbi namjenjenih upravo upravljanju koračnim motorima.

Klju čne riječi: koračni motor, mikrokontroler, motor-driver, bipolarni, upravljanje,

tipkalo, bouncing.

Page 5: UPRAVLJANJE KORA ČNIM MOTORIMA PUTEM · PDF fileTo su dakle sinkroni motori jer rotor sinkrono prati kretanje ... elektromotorni ventili, proto čne pumpe, CNC strojevi, industrijski

5

1. UVOD Veliki dio tehnologija koja se susreće i koristi u svakodnevnom životu sadrži pokretne

dijelove čijim je pomacima potrebno precizno upravljati kako bi sustav zadovoljio željenu

funkcionalnost i automatizam. Suvremena elektronička rješenja omogućavaju pretvorbu

analognih veličina u digitalne podatke, a koračni motori te iste podatke pretvaraju u

proporcionalni mehanički pomak.

Arduino UNO je univerzalni mikrokontroler otvorenog koda i besplatne programske

podrške sa jednostavnim korisničkim sučeljem, te je kao takav idealan za razvoj upravljačke

elektronike i robotike. Glavna namjena kontrolera je komuniciranje s različitim hardverom

koji je na njega priključen putem ulazno-izlaznih konektora. Bogata programska podrška

između brojnih knjižnica s predefiniranim programskim paketima sadrži i onu koja je posebno

kreirana za upravljanje koračnim motorima, a što je i cilj ovog projekta.

Koračni motori su jednostavne, pouzdane i precizne komponente koje ne zahtjevaju

posebno održavanje, te su nezaobilazni elementi u različitim robotiziranim i automatiziranim

uređajima i sustavima. Ovisno o namjeni proizvode se u različitim oblicima, različitim

tehnološkim rješenjima i sa različitim tehničkim specifikacijama.

Kontroleri na izlazu daju naponske i strujne vrijednosti koje su u pravilu puno manje od

onih koje su potrebne za pokretanje elektromehaničkih pretvornika. Rješenje ovog tehničkog

problema je ugradnja motor-drivera između kontrolera i motora, elektroničkog sklopa koji na

osnovu upravljačkih impulsa napaja priključeni motor potrebnim naponskim i strujnim

veličinama iz odgovarajućeg zasebnog izvora napajanja.

Zadatak ovog projektnog rada je izvedba oglednog primjera sustava za pretvorbu digitalnih

veličina u mehaničko gibanje.

Page 6: UPRAVLJANJE KORA ČNIM MOTORIMA PUTEM · PDF fileTo su dakle sinkroni motori jer rotor sinkrono prati kretanje ... elektromotorni ventili, proto čne pumpe, CNC strojevi, industrijski

6

2. Koračni motori Koračni motori su pretvornici električne energije u mehaničku koji omogućavaju pretvorbu

digitalnog podatka u proporcionalni mehanički pomak. Prevladava uporaba rotacijske

izvedbe, no proizvode se i koračni motori u translacijskoj izvedbi. Pri uzbudi namotaja po

programiranom redoslijedu rotor se pomakne u diskretnim koracima, odnosno pokrene u

željenom smijeru za predviđeni kut. To su dakle sinkroni motori jer rotor sinkrono prati

kretanje statorskog polja zbog sila nastalih međudjelovanjem 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 pomoću binarnih signala.

Smjer vrtnje se može mijenjati promjenom impulsnog slijeda, brzina rotacije promjenom

frekvencije impulsa, a kut (prijeđeni broj koraka) ovisi o ukupnom broju pristiglih impulsa.

Rotor se može i držati u željenoj kutnoj poziciji. Koračni motori su nezaobilazni elementi za

precizno upravljanje i pozicioniranje pokretnih mehanizama u praktičnim uređajima i

sustavima kao što su na primjer disketni pogoni, CD/DVD uređaji, printeri, skeneri, fax

uređaji, kamere, roboti, elektromotorni ventili, protočne pumpe, CNC strojevi, industrijski

ventilatori, te brojni drugi uređaji u domaćinstvu i industriji. Svima njima je zajedničko

kontrolirano gibanje mehaničkih pokretnih djelova. Za široku primjenu zaslužna je njihova

prilagodljivost konkretnoj potrebi i relativno jednostavan način njihovim upravljanjem.

2.1. Karakteristike koračnih motora

Iz mehaničkog pogleda koračni motor je jednostavna, pouzdana i precizna komponenta

koja ne zahtjeva posebno održavanje zahvaljujući 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

može izdvojiti mala korisnost (koračni motori troše značajnu energiju bez obzira na teret),

moment znatno opada s povećanjem brzine, sklonost rezonanciji, jako zagrijavanje na

zahtjevnim režimima, te niska izlazna snaga s obzirom na veličinu i težinu. Odabir koračnog

motora za konkretnu primjenu ovisi o njegovim specifičnim vrijednostima slijedećih

parametara:

• Rezolucija

o Rezolucija rotacijskih koračnih motora – broj koraka po okretaju, odnosno

iznos koraka u stupnjevima

o Rezolucija linearnih koračnih motora – dužina koraka

• Odziv jednog koraka – pokazuje brzinu, oscilatornost i točnost odziva. To je vrijeme

potrebno za pomak motora za jedan korak nakon što se napajanje jedne faze isključi, a

slijedeće faze uključi

• Točnost koračnog motora – ovisi o preciznosti izrade motora, a izražava se

maksimalnom relativnom pogreškom, odnosno greškom pozicije zbog konstrukcije.

Page 7: UPRAVLJANJE KORA ČNIM MOTORIMA PUTEM · PDF fileTo su dakle sinkroni motori jer rotor sinkrono prati kretanje ... elektromotorni ventili, proto čne pumpe, CNC strojevi, industrijski

7

• Statički moment – moment držanja je ovisnost uspostavljenog momenta u motoru o

pomaku rotora. Krutost koračnog motora može se povećati povećanjem statičkog

momenta.

• Dinamički moment – ovisnost srednje vrijednosti momenta u motoru o brzini vrtnje.

Predstavlja maksimalnu vrijednost momenta tereta kojom se u stacionarnom stanju

može opteretiti koračni motor na određenoj brzini vrtnje, a da rotor ne ispadne iz

sinkronizma s upravljačkim impulsima i motor se ne zaustavi.

• Start-stop moment – moment tereta s kojim motor može krenuti pri zadanoj frekvenciji

koračnih impulsa, a da ne izgubi korak.

2.2. Podjela koračnih motora

Koračni motori se mogu podijeliti na više načina:

• Prema vrsti uzbude

o Prema načinu stvaranja uzbude

Elektromagnetska uzbuda

Uzbuda permanentnim magnetima

o Prema smještaju uzbude

Uzbuda na rotoru

Uzbuda na statoru

• Prema izvedbi rotora

o Nazubljeni čelični rotor (rotor s varijabilnom reluktancijom)

o Rotor sa permanentnim magnetima

o Hibridni motori – kombinacija prethodna dva

• Prema broju faza – najčešće 2-6 faza

• Prema broju pari polova

o Koračni motori s permanentnim magnetima na rotoru imaju 1 do 4 pari polova

o Ostali serijski proizvedeni koračni motori imaju 1 do 90 pari polova

• Prema načinu kretanja

o Rotacijski

o Translacijski

• Prema konstrukciji namotaja odnosno napajanju

o Unipolarni

o Bipolarni

2.2.1 Reluktantni koračni motori

Sastoji se od nazubljenog višefazno namotanog statora i nazubljenog (višepolnog) rotora

od mekog željeza (nema stalnih magneta). Broj polova (zubi) rotora treba biti takav da

jednom polu statora ne pripada cijeli broj zubi rotora, jer bi inače došlo do „ljepljenja“ rotora

i motor se ne bi mogao okretati. Uzbuda statorskih namota stvara magnetno polje na njegovim

polovima koji magnetnom silom djeluju na najmanje udaljene zube rotora. Rotor teži položaju

Page 8: UPRAVLJANJE KORA ČNIM MOTORIMA PUTEM · PDF fileTo su dakle sinkroni motori jer rotor sinkrono prati kretanje ... elektromotorni ventili, proto čne pumpe, CNC strojevi, industrijski

8

minimalnog magnetskog otpora (reluktancije), a

postiže ga poklapanjem simetrale uzbuđenog para

statorskih polova i simetrale samo jednog para

rotorskih polova. Kad namoti nisu napajani, statički

moment motora jednak je nuli. Kut koraka ovisi o

broju zuba statora i rotora, o načina namatanja

statorskih faza te načinu njihove pobude. Reluktantni

koračni motori se dijele:

• Prema broju paketa namota

o Jednopaketni

o Višepaketni

• Prema načinu kretanja

o Rotacijski

o Translacijski

• Prema vrsti zračnog raspora

o Radijalni

o Aksijalni

2.2.2 Koračni motori s permanentnim magnetom

Sastoji se od radijalno magnetiziranog

permanentnomagnetskog rotora i višefaznog

statora. Smještaj permanentnih magneta na

rotoru omogućava jednostavniju izvedbu

koračnog motora. Uslijed uzastopnog

ukapčanja ili okratanja smjera struje pojedinih

faza (ili njihova kombinacija po određenom

redoslijedu) dolazi do skokovitog mijenjanja

rezultantnog vektora magnetskog polja statora

u jednom ili drugom smijeru. U smjeru rezultantnog magnetskog polja statora postavlja se

rotor i to čini koračnu rotaciju. Kut koji pripada jednom koraku kod koračnog motora s

permanentnim magnetima zavisi od odnosa broja magnetskih polova na statoru i broja

magnetskih polova na rotoru. Ovi motori imaju malu rezoluciju, tipični koračni kutovi su

između 7,5o i 15o, a postižu veće snage i momente od reluktantnih.

2.2.3 Hibridni koračni motori

Hibridni koračni motori rade na kombinaciji rada permanentnomagnetskih i motora s

promjenjivom reluktancijom. Stator i namotaji odgovaraju onima kakve imaju reluktantni

motori. Rotor hibridnog motora se sastoji od uzdužno orjentiranog permanentnog magneta

koji na svakom polu ima nazubljeni disk. Jedan disk je na južnom, a drugi na sjevernom polu i

međusobno su zarotirani za pola zuba čime je postignuta visoka rezolucija koračanja.

Slika 1_reluktantni koračni motor

Slika 2_permanentnomagnetski koračni motor

Page 9: UPRAVLJANJE KORA ČNIM MOTORIMA PUTEM · PDF fileTo su dakle sinkroni motori jer rotor sinkrono prati kretanje ... elektromotorni ventili, proto čne pumpe, CNC strojevi, industrijski

9

Statorski namotaji su podjeljeni u najmanje

dvije faze. Ovaj tip motora ima visoku

preciznost i veliki moment, a može se

konfigurirati i za koračne kuteve od 1,8o.

2.3 Bipolarni i unipolarni kora čni motori

Koračni motor može imati 4, 5, 6 ili 8 priključnih žica. Za razliku od unipolarne izvedbe,

statorski namotaji bipolarnog koračnog motora nemaju srednji izvod na pojedinom statorskom

namotaju. Umjesto izmjenične uzbude jedne pa druge polovice namotaja za postizanje

promjene struje, a time i magnetskog polja, kod bipolarnih je to moguće izvesti samo

promjenom vrijednosti napona na oba kraja namotaja. Koračni motor sa 4 priključne žice je

dakle isključivo bipolarni i zahtjeva bipolarni kontroler. Ostali motori se mogu pokretati i

unipolarnom i bipolarnom uzbudom jer se srednji statorski izvod može jednostavno

zanemariti.

2.4 Upravljanje bipolarnim kora čnim motorom

U praktičnom dijelu ovog projektnog rada se koriste bipolarni koračni motori. Razlikuju se

dva osnovna načina upravljanja koračnim motorom:

• Upravljanje – puni korak

• Upravljanje – polukorak

Slika 3_hibridni kora čni motor

Slika 4_različite konstrukcije namotaja koračnih motora

(http://www.stepperworld.com/Tutorials/pgBipolarTutorial.htm)

Page 10: UPRAVLJANJE KORA ČNIM MOTORIMA PUTEM · PDF fileTo su dakle sinkroni motori jer rotor sinkrono prati kretanje ... elektromotorni ventili, proto čne pumpe, CNC strojevi, industrijski

10

Na slici br. 5 je shematski prikaz oba načina upravljanja bipolarnim koračnim 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

najsloženije modele.

3. Arduino platforma Arduino je univerzalni mikrokontroler zasnovan na ATmel tehnologiji i idealan je za

razvoj upravljačke elektronike i robotike. Platforma je otvorenog koda temeljena na

jednostavnoj razvojnoj pločici s ulazno/izlaznim konektorima i besplatnom programskom

podrškom sa jednostavnim korisničkim sučeljem. Programiranje uređaja se izvodi iz

integriranog razvojnog okruženja, koje postoji za Windows, Mac i Linux operativni sustav, u

programskom jeziku sličnom C-u. Glavna je namjena cijelog sustava komuniciranje s

različitim hardverom koji je na njega priključen. Arduino je dostupan u nekoliko različitih

verzija, a osnovni model je Arduino UNO sa slijedećom tehničkom specifikacijom:

• Mikroprocesor : ATmega328

• Frekvencija procesora : 16MHz

• Radni napon : 5V

• Ulazni napon (preporučeno): 7-12V

• Ulazni napon (ograničeno): 6-20V

• Digitalni I/O pinovi : 14 (od toga moguće 6 PWM izlaza)

• Analogni ulazni pinovi : 6

Slika 5_shematski prikaz upravljanja bipolarnim koračnim motorom

(http://powerelectronics.com/images/Versatile-Microstepper-Driver-fig-1.jpg)

Page 11: UPRAVLJANJE KORA ČNIM MOTORIMA PUTEM · PDF fileTo su dakle sinkroni motori jer rotor sinkrono prati kretanje ... elektromotorni ventili, proto čne pumpe, CNC strojevi, industrijski

11

• DC struja za I/O pinove: 40mA

• DC struja za 3,3V pin: 50mA

• Flash memorija: 32 KB (0,5KB rezervirano za bootloader)

• SRAM: 2KB

• EEPROM: 1KB

Mikrokontroler izvodi jedan program koji je zapisan u njegovu Flash memoriju, a u

EEPROM-u se čuvaju podaci nakon gašenja uređaja, kao u malom hard disku. Za proširenje

arduina dostupni su brojni shildovi koji imaju dodatne mogućnosti ili čak svoje vlastite

mikrokontrolere.

4. Motor driver L298N Za kontrolirano napajanje elektromotora se koriste motor driveri koji osiguravaju potrebne

naponske i strujne vrijednosti iz odgovarajućeg izvora napajanja, a na pobudu upravljačkih

impulsa iz kontrolera. Pored toga da bi DC motor mijenjao smjer okretanja potrebno je

promijeniti smjer struje u motor, a to se najlakše postiže H-mostom. U ovom projektu se

koristi sklop sa integriranim krugom L298N, dvostrukim H-bridge DC motor driverom, koji

može upravljati sa dva odvojena istosmjerna motora ili jednim bipolarnim dvofaznim

koračnim motorom.

Tehnička specifikacija korištenog sklopa:

Ulazni napon: 7-35V

Izlazni napon: 5-35V

Vršna izlazna struja: 2A

Napon napajanja drivera: 5-7V

Raspon upravljačkog napona: -0,3-2,3V

Maksimalna izlazna snaga: 20W

Slika 6_Arduino UNO razvojna platforma

Page 12: UPRAVLJANJE KORA ČNIM MOTORIMA PUTEM · PDF fileTo su dakle sinkroni motori jer rotor sinkrono prati kretanje ... elektromotorni ventili, proto čne pumpe, CNC strojevi, industrijski

12

5. Upravljanje motorima Ovim projektom je realizirano simultano upravljanje dvama koračnim motorima putem

četiri tipkala uz mogućnost 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 priloženoj shemi spajanja spojena preko R-2R otporne mreže na jedan

analogni ulaz mikrokontrolera, pin A1.

Slika 7_raspored pinova IC L298 Slika 8_motor driver s L298N

Slika 9_shema spajanje 4 tipkala na jedan analogni ulaz

Page 13: UPRAVLJANJE KORA ČNIM MOTORIMA PUTEM · PDF fileTo su dakle sinkroni motori jer rotor sinkrono prati kretanje ... elektromotorni ventili, proto čne pumpe, CNC strojevi, industrijski

13

Arduino naime ima ugrađen 10-bitni analogno-digitalni pretvornik koji vrijednost

priključenog istosmjernog napona na analogni ulaz pretvara u cjelobrojnu vrijednost i to

„1023“ za priključeni napon 5V, „0“ za 0V, te ostale vrijednosti u rasponu „1-1022“

proporcionalno vrijednosti priključenog napon. Za izvor napona se koristi 5V interni napon

mikrokontrolera pa se može izračunati korak kvantizacije 5V / 1024 = 0,0049V ili 4,9mV.

Najveća brzina čitanja je 10000 puta u sekundi jer je procesoru potrebno 100µs da pročita

analogni ulaz. Pritiskom na odgovarajuće tipkalo u otpornoj mreži na analognom ulazu se

dakle generira cjelobrojna vrijednost proporcionalna narinutom naponu. Generiranu brojčanu

vrijednost je moguće ispisati uz pomoć alata „Serial Monitor“, te programski kod prilagoditi

dobivenim vrijednostima za svako tipkalo.

5.2 Regulacija brzine vrtnje

Na sličan način je omogućena regulacija brzine vrtnje putem naponskog djelitelja

ostvarenog sa linearnim potenciometrom vrijednosti 10kΩ, čiji su krajevi spojeni na naponski

izvor 5V, a priključak klizača na analogni ulaz A2. Ovisno o položaju klizača potenciometra,

na analogni ulaz je narinuta odgovarajuća vrijednost napona što generira proporcionalu

brojčanu vrijednost na pripadajućem analognom ulazu.

Slika 10_shema spajanja potenciometra na analogni ulaz

Page 14: UPRAVLJANJE KORA ČNIM MOTORIMA PUTEM · PDF fileTo su dakle sinkroni motori jer rotor sinkrono prati kretanje ... elektromotorni ventili, proto čne pumpe, CNC strojevi, industrijski

14

5.3 Prisilno zaustavljanje motora

Prisilno zaustavljanje je obavezna sigurnosna funkcija različitih pogonskih sustava koja se

aktivira ručno ili automatski uslijed prekoračenja unaprijed zadanih graničnih vrijednosti ili

nastanka incidentne situacije. Kod mikrokontrolera Arduino UNO steper funkcija blokira rad

procesora te je za prisilno zaustavljanje motora potrebno koristiti prekidnu funkciju

integriranu u arduinovoj programskoj podršci. Instanca funkcije prekida se deklarira

slijedećim izrazom: attachInterrupt(pin, function, mode). Digitalni pinovi

2 i 3 su na Arduino UNO kontroleru rezervirani za prvi parametar funkcije. Drugim

parametrom se poziva izvršna funkcija prekida, a na mjestu trećeg parametra se definira uvjet

okidanja prekida na jedan od slijedećih načina:

• LOW – okidanje prekida kad je pin postavljen nisko

• CHANGE – okidanje prekida uvijek kad pin promijeni vrijednost

• RISING – okidanje prekida na pozitivan brid promjene vrijednosti pina

• FALLING – okidanje prekida na negativan brid promjene vrijednosti pina

Za potrebe ovog projekta korišten je mod CHANGE.

Varijabla u koju se sprema promjena stanja prilikom okidanja prekida mora imati prefiks

volatile što govori kompajleru da se ista nalazi u RAM memoriji, a ne u memorijskim

registrima. Razlog tome je što bi varijabla mogla pod određenim uvjetima imati netočnu

vrijednost uslijed izvođenja trenutnog procesa kad bi se ista čuvala u memorijskim registrima.

Slika 11_shema spajanja elemenata za potrebe Interrupt funkcije

Page 15: UPRAVLJANJE KORA ČNIM MOTORIMA PUTEM · PDF fileTo su dakle sinkroni motori jer rotor sinkrono prati kretanje ... elektromotorni ventili, proto čne pumpe, CNC strojevi, industrijski

15

5.4 Električna shema spajanja

Slijedi prikaz kompletne električne i montažne sheme spajanja. Sve sheme u ovom

projektu su izrađene u desktop aplikaciji „Fritzing“ (ima GNU GPL licencu za slobodan

softver) koja ima veliku bazu predefiniranih elemenata, no nedostajao je montažni element

korištenog motor drivera, te je isti bilo potrebno dodatno generirati. To je učinjeno tako da je

.jpg datoteka s fotografijom motor drivera konvertirana u .svg datoteku (vektorski grafički

format), te je nakon importiranja u Fritzing programsku aplikaciju prilagođena za korištenje

putem integriranog editora novih elemenata na način da su na odgovarajućim pozicijama na

slici definirane virtualne priključnice na koje se kasnije mogu „lijepiti“ spojne veze.

Slika 12_električna shema spajanja praktičnog dijela projekta

Page 16: UPRAVLJANJE KORA ČNIM MOTORIMA PUTEM · PDF fileTo su dakle sinkroni motori jer rotor sinkrono prati kretanje ... elektromotorni ventili, proto čne pumpe, CNC strojevi, industrijski

16

5.5 Montažna shema spajanja

Slika 13_montažna shema spajanja praktičnog dijela projekta

Page 17: UPRAVLJANJE KORA ČNIM MOTORIMA PUTEM · PDF fileTo su dakle sinkroni motori jer rotor sinkrono prati kretanje ... elektromotorni ventili, proto čne pumpe, CNC strojevi, industrijski

17

5.6 Problem s radom tipkala

Prilikom izrade projekta uočeni su standardni tehnički problemi u radu tipkala, za koja je

karaktiristačan takozvani „bouncing“ ili titranje kontakata kad se uključuju strujni krugovi

koji traju vrlo kratko (mjereno u ms ili još kraćim vremenskim jedinicama). U konkretnom

slučaju pokretanje motora za jedan korak rezultiralo bi okretanjem motora za dva-tri koraka.

Ovo je riješeno ubacivanjem linije koda koja za definirano vrijeme stavlja procesor u

mirovanje, a nakon odrađenog prvog kontakta tipkala. Pokusom je utvrđeno da kašnjenje od

250ms uglavnom rješava navedeni problem u ovom projektu. Kod pokretanja motora za cijeli

krug ovog problema nema jer se motor okreće najmanje 0,5s i za to vrijeme procesor ne

reagira na promjene stanja tipkala.

Slika 14_fotografija gotovog modela projekta

Page 18: UPRAVLJANJE KORA ČNIM MOTORIMA PUTEM · PDF fileTo su dakle sinkroni motori jer rotor sinkrono prati kretanje ... elektromotorni ventili, proto čne pumpe, CNC strojevi, industrijski

18

5.7 Problem s istovremenim pokretanjem oba motora

Problem se je pojavio i pri pokušaju pokretanja dva motora istovremeno jer bi drugi motor

započeo s okretanjem tek kad bi prvi završio, a razlog tome je što je stepper ciklus blokirajuća

funkcija za mikrokontroler. Ovaj problem je donekle riješen pokretanjem oba motora za po

jedan korak u while petlji koja ima unaprijed zadani broj ponavljanja, a koji odgovara

željenom kutu vrtnje motora. Iako za ljudsko oko izgleda da se oba motora vrte istovremeno,

u stvarnosti okret drugog motora kasni za okretom prvog za vrijeme potrebno da procesor

obradi i pošalje upravljački impuls na motor driver.

5.8 Programski kod

Upravljački program je napisan u originalnoj arduinovoj programskoj podršci otvorenog

koda, u programskom jeziku vrlo sličnom C-u. Arduinova programska podrška između ostalih

sadrži knjižnicu naredbi namjenjenih upravo upravljanju koračnim motorima što izradu

glavnog programa čini jednostavnom a napisani programski kod lako razumljivim.

/*Programski kod za upravljanje bipolarnim steper m otorima

putem Arduino mikrokontrolera. Omogu ćava pokretanje dva motora

za jedan korak ili cijeli krug u smjeru kazaljke na satu

odnosno obrnuto, uz mogu ćnost regulacije brzine okretanja te

prisilno zaustavljanje motora putem funkcije prekid a*/

#include <Stepper.h>

// uklju čivanje Arduino knjižnice

#define KORAK 48

// broj koraka za puni krug = 360 / kut jednog ko raka korištenog motora

#define OMJER 5

// omjer dijeljenja analogne vrijednosti potencio metra => brzina vrtnje

int pbIn = 0;

//Interrupt 0 je na Arduino UNO-u na digitalnom p inu 2

volatile int stanje = LOW;

/* deklaracija i inicijalizacija varijable za upr avljanje prekidom,

prefiks volatile govori kompajleru da se varijabla čuva u RAM memoriji

umjesto u memorijskom registru gdje bi ista u odre đenim uvjetima mogla biti

neto čna uslijed trenutnog izvo đenja programa*/

int potPin = A2;

// definicija pina za priklju čenje potenciometra

int tipkaPin = A1;

// definicija pina za priklju čenje tipkala

Page 19: UPRAVLJANJE KORA ČNIM MOTORIMA PUTEM · PDF fileTo su dakle sinkroni motori jer rotor sinkrono prati kretanje ... elektromotorni ventili, proto čne pumpe, CNC strojevi, industrijski

19

int tipkaVrijednost = 0;

/* deklaracija i inicijalizacija varijable za poh ranu

trenutne vrijednosti tipkala*/

int potVrijednost;

/* deklaracija varijable za pohranu trenutne vrij ednosti

potenciometra*/

int brzina;

// deklaracija varijable za pohranu izra čunate vrijednosti brzine

Stepper mojSteper1(KORAK, 4, 5, 6, 7);

Stepper mojSteper2(KORAK, 8, 9, 10, 11);

/*deklaracija instance steper motora uklju čuje broj koraka

za puni krug i priklju čne pinove*/

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 pi nu 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) //podešavanje brzin e 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

Page 20: UPRAVLJANJE KORA ČNIM MOTORIMA PUTEM · PDF fileTo su dakle sinkroni motori jer rotor sinkrono prati kretanje ... elektromotorni ventili, proto čne pumpe, CNC strojevi, industrijski

20

potVrijednost = analogRead(potPin);

//spremanje u varijablu trenutne vrijednosti na pinu A2

if (tipkaVrijednost > 500 && tipkaVrijednost <5 20)

// okretanje za puni krug u smjeru kazaljke na satu

stanje = HIGH;

Serial.println("Vrtnja u smijeru kazaljke na satu");

Serial.print("tipka = ");

Serial.println(tipkaVrijednost);

//ispis vrijednosti na A1 prilikom pritisk a tipkala S1

Serial.print("brzina = ");

Serial.println(brzina);

int i=0;

while(stanje == HIGH && i<48)

mojSteper1.step(1);

mojSteper2.step(1);

i++;

if (tipkaVrijednost > 600 && tipkaVrijednost < 620)

// okretanje za puni krug obrnuto od kazaljk e na satu

stanje = HIGH;

Serial.println("Vrtnja obrnuto od kazaljke n a satu");

Serial.print("tipka = ");

Serial.println(tipkaVrijednost);

Serial.print("brzina = ");

Serial.println(brzina);

int i=0;

while(stanje == HIGH && i<48)

mojSteper1.step(-1);

mojSteper2.step(-1);

i++;

if (tipkaVrijednost > 670 && tipkaVrijednost < 690)

// okretanje za jedan korak u smjeru kazaljk e na satu

stanje = HIGH;

Serial.println("Korak u smijeru kazaljke na satu");

Serial.print("tipka = ");

Serial.println(tipkaVrijednost);

Serial.print("brzina = ");

Page 21: UPRAVLJANJE KORA ČNIM MOTORIMA PUTEM · PDF fileTo su dakle sinkroni motori jer rotor sinkrono prati kretanje ... elektromotorni ventili, proto čne pumpe, CNC strojevi, industrijski

21

Serial.println(brzina);

mojSteper1.step(1);

mojSteper2.step(1);

delay(250);

if (tipkaVrijednost > 720 && tipkaVrijednost < 740)

// okretanje za jedan korak u smjeru kazaljk e 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 izvršne funkcije preki da

stanje = LOW;

mojSteper1.step(0);

mojSteper2.step(0);

Serial.print("stanje = ");

Serial.println(stanje);

Page 22: UPRAVLJANJE KORA ČNIM MOTORIMA PUTEM · PDF fileTo su dakle sinkroni motori jer rotor sinkrono prati kretanje ... elektromotorni ventili, proto čne pumpe, CNC strojevi, industrijski

22

6. ZAKLJU ČAK Arduino platforma je široko primjenjiv mikrokontroler brojnih mogućnosti s posebnim

naglaskom na jednostavnost njegova korištenja i bogatu programsku podršku za realizaciju

različitih projektnih rješenja. Njegova primjena je i u ovom projektu ispunila sva očekivanja i

omogućila realizaciju jednostavnog sustava za upravljanje dvama koračnim motorima uz

minimalnu upotrebu dodatnih elemenata. Prikazani ogledni sustav može biti dijelom nekog

većeg sustava u kojem se traži precizno upravljanje pokretnim elemenatima, bilo da se radi o

računalnoj opremi, industrijskim strojevima, robotici, sustavima pametnih kuća, i sl.

Arduino mikrokontroler ima ograničen broj digitalnih ulaza-izlaza i analognih ulaza, a na

primjeru ovog projekta prikazana je mogućnost dodatne uštede u korištenju analognih ulaza

kada se više tipkala za različite zadaće spaja na isti ulaz. Priključenjem većeg broja različitih

senzora na mikrokontroler moguće je postići i potpuno autonoman rad sustava.

Kao nedostatak može se istaknuti nemogućnost višedretvenog rada Arduino UNO

mikrokontrolera, što se u nekim slučajevima može kompenzirati Interrupt funkcijom, a što je

pokazano i na primjeru ovog projekta. No s obzirom na nisku tržišnu cijenu arduino modula,

jednostavnost njegova korištenja, besplatnu programsku podršku i brojne druge mogućnosti

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. Koračni motori, URL:

http://www.fer.unizg.hr/_download/repository/EAP_VIII_dio_KM%5B1%5D.pdf

6. Koračni 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

Page 23: UPRAVLJANJE KORA ČNIM MOTORIMA PUTEM · PDF fileTo su dakle sinkroni motori jer rotor sinkrono prati kretanje ... elektromotorni ventili, proto čne pumpe, CNC strojevi, industrijski

23

8. POPIS SLIKA Slika 1_reluktantni koračni motor ......................................................................................... 8

Slika 2_permanentnomagnetski koračni motor ..................................................................... 8

Slika 3_hibridni koračni motor .............................................................................................. 9

Slika 4_različite konstrukcije namotaja koračnih motora ..................................................... 9

Slika 5_shematski prikaz upravljanja bipolarnim koračnim 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_električna shema spajanja praktičnog dijela projekta ........................................... 15

Slika 13_montažna shema spajanja praktičnog dijela projekta ........................................... 16

Slika 14_fotografija gotovog modela projekta .................................................................... 17