upravljanjekoracnimmotorimaputemarduinoplatforme

Upload: nod69ass

Post on 19-Oct-2015

49 views

Category:

Documents


1 download

DESCRIPTION

Upravljanje koracnim Motorima Arduinom

TRANSCRIPT

  • VELEUILITE U RIJECI ODJEL TELEMATIKA

    STUDENT Marin Simi

    UPRAVLJANJE KORANIM MOTORIMA PUTEM ARDUINO PLATFORME

    PROJEKTNA DOKUMENTACIJA

    Rijeka, 2013.

  • 2

    VELEUILITE U RIJECI ODJEL TELEMATIKA

    UPRAVLJANJE KORANIM MOTORIMA PUTEM ARDUINO PLATFORME

    PROJEKTNA DOKUMENTACIJA

    Kolegij: Projekt u telematici Mentor: Marino Franui, predava Student: Marin Simi Matini broj: 2427005016/10 Studij: Telematika

    Rijeka, sijeanj, 2013.

  • 3

    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

  • 4

    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.

    Kljune rijei: korani motor, mikrokontroler, motor-driver, bipolarni, upravljanje, tipkalo, bouncing.

  • 5

    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.

  • 6

    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.

  • 7

    Statiki moment moment dranja je ovisnost uspostavljenog momenta u motoru o pomaku rotora. Krutost koranog motora moe se poveati poveanjem statikog momenta.

    Dinamiki moment ovisnost srednje vrijednosti momenta u motoru o brzini vrtnje. Predstavlja maksimalnu vrijednost momenta tereta kojom se u stacionarnom stanju moe opteretiti korani motor na odreenoj brzini vrtnje, a da rotor ne ispadne iz sinkronizma s upravljakim impulsima i motor se ne zaustavi.

    Start-stop moment moment tereta s kojim motor moe krenuti pri zadanoj frekvenciji koranih impulsa, a da ne izgubi korak.

    2.2. Podjela koranih motora

    Korani motori se mogu podijeliti na vie naina: Prema vrsti uzbude

    o Prema nainu stvaranja uzbude Elektromagnetska uzbuda Uzbuda permanentnim magnetima

    o Prema smjetaju uzbude Uzbuda na rotoru Uzbuda na statoru

    Prema izvedbi rotora o Nazubljeni elini rotor (rotor s varijabilnom reluktancijom) o Rotor sa permanentnim magnetima o Hibridni motori kombinacija prethodna dva

    Prema broju faza najee 2-6 faza Prema broju pari polova

    o Korani motori s permanentnim magnetima na rotoru imaju 1 do 4 pari polova o Ostali serijski proizvedeni korani motori imaju 1 do 90 pari polova

    Prema nainu kretanja o Rotacijski o Translacijski

    Prema konstrukciji namotaja odnosno napajanju o Unipolarni o Bipolarni

    2.2.1 Reluktantni korani motori

    Sastoji se od nazubljenog viefazno namotanog statora i nazubljenog (viepolnog) 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 inae dolo 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 tei poloaju

  • 8

    minimalnog magnetskog otpora (reluktancije), a postie ga poklapanjem simetrale uzbuenog para statorskih polova i simetrale samo jednog para rotorskih polova. Kad namoti nisu napajani, statiki moment motora jednak je nuli. Kut koraka ovisi o broju zuba statora i rotora, o naina namatanja statorskih faza te nainu njihove pobude. Reluktantni korani motori se dijele:

    Prema broju paketa namota o Jednopaketni o Viepaketni

    Prema nainu kretanja o Rotacijski o Translacijski

    Prema vrsti zranog raspora o Radijalni o Aksijalni

    2.2.2 Korani motori s permanentnim magnetom

    Sastoji se od radijalno magnetiziranog permanentnomagnetskog rotora i viefaznog statora. Smjetaj permanentnih magneta na rotoru omoguava jednostavniju izvedbu koranog motora. Uslijed uzastopnog ukapanja ili okratanja smjera struje pojedinih faza (ili njihova kombinacija po odreenom 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 koranu rotaciju. Kut koji pripada jednom koraku kod koranog motora s permanentnim magnetima zavisi od odnosa broja magnetskih polova na statoru i broja magnetskih polova na rotoru. Ovi motori imaju malu rezoluciju, tipini korani kutovi su izmeu 7,5o i 15o, a postiu vee snage i momente od reluktantnih.

    2.2.3 Hibridni korani motori

    Hibridni korani 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 uzduno orjentiranog permanentnog magneta koji na svakom polu ima nazubljeni disk. Jedan disk je na junom, a drugi na sjevernom polu i meusobno su zarotirani za pola zuba ime je postignuta visoka rezolucija koraanja.

    Slika 1_reluktantni korani motor

    Slika 2_permanentnomagnetski korani motor

  • 9

    Statorski namotaji su podjeljeni u najmanje dvije faze. Ovaj tip motora ima visoku preciznost i veliki moment, a moe se konfigurirati i za korane kuteve od 1,8o.

    2.3 Bipolarni i unipolarni korani motori

    Korani motor moe imati 4, 5, 6 ili 8 prikljunih ica. Za razliku od unipolarne izvedbe, statorski namotaji bipolarnog koranog motora nemaju srednji izvod na pojedinom statorskom namotaju. Umjesto izmjenine uzbude jedne pa druge polovice namotaja za postizanje promjene struje, a time i magnetskog polja, kod bipolarnih je to mogue izvesti samo promjenom vrijednosti napona na oba kraja namotaja. Korani motor sa 4 prikljune ice je dakle iskljuivo bipolarni i zahtjeva bipolarni kontroler. Ostali motori se mogu pokretati i unipolarnom i bipolarnom uzbudom jer se srednji statorski izvod moe jednostavno zanemariti.

    2.4 Upravljanje bipolarnim koranim motorom

    U praktinom dijelu ovog projektnog rada se koriste bipolarni korani motori. Razlikuju se dva osnovna naina upravljanja koranim motorom:

    Upravljanje puni korak Upravljanje polukorak

    Slika 3_hibridni korani motor

    Slika 4_razliite konstrukcije namotaja koranih motora (http://www.stepperworld.com/Tutorials/pgBipolarTutorial.htm)

  • 10

    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

    Slika 5_shematski prikaz upravljanja bipolarnim koranim motorom (http://powerelectronics.com/images/Versatile-Microstepper-Driver-fig-1.jpg)

  • 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 gaenja ureaja, kao u malom hard disku. Za proirenje arduina dostupni su brojni shildovi koji imaju dodatne mogunosti 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 odgovarajueg izvora napajanja, a na pobudu upravljakih impulsa iz kontrolera. Pored toga da bi DC motor mijenjao smjer okretanja potrebno je promijeniti smjer struje u motor, a to se najlake postie H-mostom. U ovom projektu se koristi sklop sa integriranim krugom L298N, dvostrukim H-bridge DC motor driverom, koji moe upravljati sa dva odvojena istosmjerna motora ili jednim bipolarnim dvofaznim koranim motorom.

    Tehnika specifikacija koritenog sklopa: Ulazni napon: 7-35V Izlazni napon: 5-35V Vrna izlazna struja: 2A Napon napajanja drivera: 5-7V Raspon upravljakog napona: -0,3-2,3V Maksimalna izlazna snaga: 20W

    Slika 6_Arduino UNO razvojna platforma

  • 12

    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.

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

    Slika 9_shema spajanje 4 tipkala na jedan analogni ulaz

  • 13

    Arduino naime ima ugraen 10-bitni analogno-digitalni pretvornik koji vrijednost prikljuenog istosmjernog napona na analogni ulaz pretvara u cjelobrojnu vrijednost i to 1023 za prikljueni napon 5V, 0 za 0V, te ostale vrijednosti u rasponu 1-1022 proporcionalno vrijednosti prikljuenog napon. Za izvor napona se koristi 5V interni napon mikrokontrolera pa se moe izraunati korak kvantizacije 5V / 1024 = 0,0049V ili 4,9mV. Najvea brzina itanja je 10000 puta u sekundi jer je procesoru potrebno 100s da proita analogni ulaz. Pritiskom na odgovarajue tipkalo u otpornoj mrei na analognom ulazu se dakle generira cjelobrojna vrijednost proporcionalna narinutom naponu. Generiranu brojanu vrijednost je mogue ispisati uz pomo alata Serial Monitor, te programski kod prilagoditi dobivenim vrijednostima za svako tipkalo.

    5.2 Regulacija brzine vrtnje

    Na slian nain je omoguena regulacija brzine vrtnje putem naponskog djelitelja ostvarenog sa linearnim potenciometrom vrijednosti 10k, iji su krajevi spojeni na naponski izvor 5V, a prikljuak klizaa na analogni ulaz A2. Ovisno o poloaju klizaa potenciometra, na analogni ulaz je narinuta odgovarajua vrijednost napona to generira proporcionalu brojanu vrijednost na pripadajuem analognom ulazu.

    Slika 10_shema spajanja potenciometra na analogni ulaz

  • 14

    5.3 Prisilno zaustavljanje motora

    Prisilno zaustavljanje je obavezna sigurnosna funkcija razliitih pogonskih sustava koja se aktivira runo ili automatski uslijed prekoraenja unaprijed zadanih graninih 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 podrci. Instanca funkcije prekida se deklarira slijedeim izrazom: attachInterrupt(pin, function, mode). Digitalni pinovi 2 i 3 su na Arduino UNO kontroleru rezervirani za prvi parametar funkcije. Drugim parametrom se poziva izvrna funkcija prekida, a na mjestu treeg parametra se definira uvjet okidanja prekida na jedan od slijedeih naina:

    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 koriten 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 odreenim uvjetima imati netonu vrijednost uslijed izvoenja trenutnog procesa kad bi se ista uvala u memorijskim registrima.

    Slika 11_shema spajanja elemenata za potrebe Interrupt funkcije

  • 15

    5.4 Elektrina shema spajanja

    Slijedi prikaz kompletne elektrine i montane sheme spajanja. Sve sheme u ovom projektu su izraene u desktop aplikaciji Fritzing (ima GNU GPL licencu za slobodan softver) koja ima veliku bazu predefiniranih elemenata, no nedostajao je montani element koritenog motor drivera, te je isti bilo potrebno dodatno generirati. To je uinjeno tako da je .jpg datoteka s fotografijom motor drivera konvertirana u .svg datoteku (vektorski grafiki format), te je nakon importiranja u Fritzing programsku aplikaciju prilagoena za koritenje putem integriranog editora novih elemenata na nain da su na odgovarajuim pozicijama na slici definirane virtualne prikljunice na koje se kasnije mogu lijepiti spojne veze.

    Slika 12_elektrina shema spajanja praktinog dijela projekta

  • 16

    5.5 Montana shema spajanja

    Slika 13_montana shema spajanja praktinog dijela projekta

  • 17

    5.6 Problem s radom tipkala

    Prilikom izrade projekta uoeni su standardni tehniki problemi u radu tipkala, za koja je karaktiristaan takozvani bouncing ili titranje kontakata kad se ukljuuju strujni krugovi koji traju vrlo kratko (mjereno u ms ili jo kraim vremenskim jedinicama). U konkretnom sluaju pokretanje motora za jedan korak rezultiralo bi okretanjem motora za dva-tri koraka. Ovo je rijeeno ubacivanjem linije koda koja za definirano vrijeme stavlja procesor u mirovanje, a nakon odraenog prvog kontakta tipkala. Pokusom je utvreno da kanjenje od 250ms uglavnom rjeava navedeni problem u ovom projektu. Kod pokretanja motora za cijeli krug ovog problema nema jer se motor okree najmanje 0,5s i za to vrijeme procesor ne reagira na promjene stanja tipkala.

    Slika 14_fotografija gotovog modela projekta

  • 18

    5.7 Problem s istovremenim pokretanjem oba motora

    Problem se je pojavio i pri pokuaju pokretanja dva motora istovremeno jer bi drugi motor zapoeo s okretanjem tek kad bi prvi zavrio, a razlog tome je to je stepper ciklus blokirajua funkcija za mikrokontroler. Ovaj problem je donekle rijeen 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 poalje upravljaki impuls na motor driver.

    5.8 Programski kod

    Upravljaki program je napisan u originalnoj arduinovoj programskoj podrci otvorenog koda, u programskom jeziku vrlo slinom C-u. Arduinova programska podrka izmeu ostalih sadri knjinicu naredbi namjenjenih upravo upravljanju koranim motorima to izradu glavnog programa ini jednostavnom a napisani programski kod lako razumljivim.

    /*Programski kod za upravljanje bipolarnim steper motorima putem Arduino mikrokontrolera. Omoguava pokretanje dva motora za jedan korak ili cijeli krug u smjeru kazaljke na satu odnosno obrnuto, uz mogunost regulacije brzine okretanja te prisilno zaustavljanje motora putem funkcije prekida*/

    #include

    // 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

  • 19

    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

    Stepper mojSteper1(KORAK, 4, 5, 6, 7); Stepper mojSteper2(KORAK, 8, 9, 10, 11); /*deklaracija instance steper motora ukljuuje broj koraka za puni krug i prikljune 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 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

  • 20

    potVrijednost = analogRead(potPin); //spremanje u varijablu trenutne vrijednosti na pinu A2

    if (tipkaVrijednost > 500 && tipkaVrijednost

  • 21

    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); }

  • 22

    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

  • 23

    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