TVZ Mechatronics Team


Zagreb University of Applied Sciences, Professional Study in Mechatronics

Upravljanje istosmjernim motorom

U ovoj vježbi upravljat ćete brzinom i smjerom vrtnje istosmjernog motora koristeći predupravljač L298N. Model istosmjernog motora je RP 280CN-2485-45, čiji raspon napajanja iznosi od 3 do 12 V. Budući da nema podatkovnog lista za motor, u nastavku je prikazana tablica, nađena na ebay-u, u kojoj je prikazana brzina vrtnje ovisno o iznosu napona s kojim pogonimo motor te iznos struje koju motor vuče:

Napon (V)Brzina (rpm) - bez teretaStruja (mA)
3.77300145
612000170
7.214000180
1223000260

Pločica na kojoj se nalazi predupravljač, koji koristimo, prikazana je na sljedećoj slici te je relativno jeftina i moguće ju je kupiti na ebay-u ili nekoj drugoj internet trgovini za 2-3 USD.

/media/uploads/tbjazic/l298n_breakout_board.jpg

Na sljedećoj slici prikazana je shema pločice te je potrebno primjetiti da su na njoj postavljena tri jumper-a (CON5, ENA i ENB).

/media/uploads/tbjazic/l298n_breakout_schematics.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 +12V. Napajanja veća od 7 V potrebno je spojiti samo na konektor +12V 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.

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