You are viewing an older revision! See the latest version
Controlling DC motor
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 tereta | Struja (mA) |
|---|---|---|
| 3.7 | 7300 | 145 |
| 6 | 12000 | 170 |
| 7.2 | 14000 | 180 |
| 12 | 23000 | 260 |
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.
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).
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 su vam 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 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. Ukoliko potenciometar okrenemo u lijevu stranu, tj ukoliko je vrijednost manja od 0.5 motor se mora početi okretati u jednu stranu, a ukoliko je vrijednost veća od 0.5 motor se mora početi kretati u drugu stranu.
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. Proučite navedenu klasu i biblioteku RateLimiter unutar nje.
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.
Čestitke!
Završili ste sve vježbe iz teme Upravljanje istosmjernim motorom.
Povratak na naslovnu stranicu TVZ Mechatronics Team-a.