TVZ Mechatronics Team


Zagreb University of Applied Sciences, Professional Study in Mechatronics

You are viewing an older revision! See the latest version

Upravljanje istosmjernim motorom

U ovoj vježbi upravljat ćete brzinom i smjerom vrtnje istosmjernog motora koristeći predupravljač L298N. Istosmjerni motor postavljen je na maketu automobila zajedno s tiskanom pločicom na kojoj se nlazi navedeni predupravljač, istomjerni pretvarač, baterije i mbed platforma LPC1768.

Ovo je najčešće korišteni motor na robotskim autićima - pogonjen naponom od 3 do 6 V, vrti se brzinom do 90 RPM-a, a prijenos mu daje dodatnu snagu i zakreće os rotacije za 90° pa je na njega jednostavno montirati kotač tj. u našem slučaju monitirana je osovina na koju su spojeni stražnji kotači makete.

https://os.mbed.com/media/uploads/dfraj/motor_medium_vYFfeBn.jpg

Tikana pločica iliti modul na kojem se nalazi predupravljač L298N, koji koristimo u ovoj vježbi, prikazan je na sljedećoj slici te je relativno jeftina i moguće ju je kupiti na ebay-u ili drugim internet trgovinama za 2-3 USD.

https://os.mbed.com/media/uploads/dfraj/500116604-1.jpg

Na sljedećoj slici prikazana je shema gore prikazanog modula te je potrebno primjetiti da su na njemu postavljena tri jumper-a (CON5, ENA i ENB).

https://os.mbed.com/media/uploads/dfraj/l298n_shematic.png

Za istosmjerne motore čiji su iznosi napajanja manjih vrijednosti, potrebno je ukloniti jumper CON5 i spojiti napajanje s baterija (5-6 V) na konektore +5V i GND. Napajanja veća od 7 V potrebno je spojiti na konektore +12V i GND s time da jumper CON5 mora biti postavljen na pločicu. Za detaljnije upute na raspolaganju vam je podatkovni list predupravljača L298N i stranica E-radionice.

Budući da se na maketi automobila nalaze dvije serijski spojene baterije, njihov napon napajanja iznosi 8,4 V. Stoga je na modulu predupravljača spojen jumper CON5.

https://os.mbed.com/media/uploads/dfraj/shema_makete.png

Upravljanje brzinom vrtnje motora

Napravite program koji upravlja brzinom vrtnje motora pomoću PWM izlaza. Brzinu podešavajte korištenjem potenciometra Pot ili utipkavanjem putem terminala. Također, možete dodati LED1 čijom svjetlinom ćete upravljati kao u zadatku 6.2, a ovdje služi kao signalizacija rada programa. Budući da predupravljačem upravljamo s dva pina, razmislite kako je potrebno konfigurirati drugi pin, ako preko prvog upravljamo s brzinom vrtnje motora. Također, probajte u programu zamjeniti pinove te frekvenciju periode i primjetiti promjenu na motoru.

Upravljanje brzinom i smjerom vrtnje motora

Modificirajte program tako da potenciometrom Pot i dalje upravljate brzinom vrtnje motora, a pritiskom na tipkalo mjenjate smjer vrtnje motora. Za detekciju rastućeg brida signala prilikom pritiska tipkala potrebno je koristiti klasu InterruptIn. Budući da bi pri izvođenju takvog programa prilikom pritiska na tipkalo motor naglo promjenio smjer, potrebno je u program uvesti klasu RateLimiter koja usporava navedenu naglu promjenu smjera uvođenjem principa rampe, koji postepeno ubrzava ili usporava motor na brzinu vrtnje određenu potenciometrom Pot. Proučite navedenu klasu te razmislite na koji način bi je implementirali u vlastitiom programu tj. koju od klasa iz 7. laboratorijske vježbe trebate iskoristiti.

Upravljanje brzinom i smjerom vrtnje motora korištenjem klase HBridgeDCMotor

U nastavku je prikazan program koji upravlja brzinom i smjerom vrtnje motora koristeći klasu HBridgeDCMotor. U navedenoj klasi uvezena je i klasa RateLimiter iz prethodnog zadatka.

Napravite novi program, uvezite klasu HBridgeDCMotor u Vaš prevoditelj te testirajte dolje napisani kôd:

 #include "mbed.h"
 #include "HBridgeDCMotor.h"
 
 HBridgeDCMotor motor(p23, p24);
 
 int main() {
     float sampleTime = 10e-3, switchingFrequency = 25e3, rampTime = 5;
     motor.configure(sampleTime, switchingFrequency, rampTime, rampTime);
     while(true) {
         motor.setDutyCycle(1);
         wait(15);
         motor.setDutyCycle(-1);
         wait(15);
     }
 }

Vaš motor bi se trebao ponašati kao i motor prikazan u sljedećem videu:

Modificirajte program tako da se Vaš motor najprije vrti deset sekundi pri 25% PWM-a te se zatim poveća na 50% i vrti pri tom postotku deset sekundi i tako do 100%. Zatim je potrebno motor zavrtiti u suprotnu stranu bilo to stepenastim putem kako je napravljeno za prvu stranu ili naglim skokom na 100 % u suprotnu stranu. Probajte oba slučaja s time da kad stavljate nagli skok iz jedog u drugi smjer stavite da se trajanje vrtnje prilikom prebacivanja iz jednog u drugi smjer traje petnaest sekundi.

Upravljanje brzinom i smjerom vrtnje motora - dodatni zadatak

Napišite program tako da potenciometrom Pot osim brzinom upravljate i smjerom vrtnje motora pomoću PWM izlaza. Potrebno je napraviti skaliranje veličine koju mbed očitava s analognog ulaza tako da kad potenciometar na ulaz šalje vrijednost 0.5, motor mora mirovati. Ako potenciometar okrenemo u lijevu stranu, tj ako je vrijednost manja od 0.5 motor se mora početi okretati u jednu stranu, a ako je vrijednost veća od 0.5 motor se mora početi kretati u drugu stranu.

Modificirajte program tako da uvezete klasu RateLimiter i implementirate njen princip rampe.

Čestitke!

Završili ste sve vježbe iz teme Upravljanje istosmjernim motorom.

Povratak na naslovnu stranicu TVZ Mechatronics Team-a.


All wikipages