Sunteți pe pagina 1din 6

Limbaje de programarea pentru roboţi L6

Lucrare de laborator nr. 6

PROGRAMAREA ACŢIONĂRII MICROMOTORULUI DE


CURENT CONTINUU

1. Introducere

În prima etapă a dezvoltării sistemelor mecanice mobile, controlul poziţiei şi al vitezei se


asigurau prin soluţii costisitoare şi consum de timp bazate în exclusivitate pe componente mecanice:
came, roţi dinţate, robinete etc. Frecvent, alte dispozitive, cum ar fi: cilindrii hidraulici sau
pneumatici, electromagneţi, dispozitive mecanice diverse, s-au utilizat în acelaşi scop. Perioada în
care s-au folosit aceste dispozitive a fost numită perioada mecanizării.
Dezvoltarea industrială ulterioară a necesitat noi forme de control a mişcării în operaţii
complexe integrate. Automatizarea rigidă a fost un pas mare realizat nu numai în creşterea
productivităţii dar şi în ceea ce priveşte controlul mişcării.
Apariţia microprocesorului a definit debutul unei noi etape, cel al automatizărilor flexibile. În
sistemele electronice o mare varietate a parametrilor pot fi modificaţi prin schimbarea soft-ului din
sistem. De exemplu a modifica o viteză înseamnă acum a introduce câteva linii de cod, sau a selecta
un nou profil de viteză din memoria sistemului.
Controlul programabil al mişcării este definit ca şi o aplicaţie hardware şi software – împreună
cu elemente senzoriale, de acţionare, dispozitive de reglare – pentru controlul uneia sau a mai
multor mişcări liniare sau de rotaţie.
În ultimii ani, partea de comandă a suportat modificări majore. Ele se referă în principal la
creşterea ponderii comenzilor în logică programată, caracterizată prin flexibilitate funcţională
ridicată, consumuri de energie reduse, volum şi greutate minime, fiabilitate mărită, posibilitatea
implementării unor strategii de comandă performante.

2. Consideraţii teoretice

Motorul de c.c. (curent continuu), în principal este construit din două părţi componente: stator
şi rotor (Fig. 1).
Partea fixă a unui motor electric de c.c este statorul. În general, statorul este partea exterioară a
motorului şi include şi carcasa 1. În partea din interior a carcasei se află magneţii permanenţi 2.

1
Limbaje de programarea pentru roboţi L6
Rotorul este partea mobilă a motorului, care este plasat în interior, de obicei. Rotorul motorului
este format dintr-un ax şi o armătură care susţine înfăşurarea electrică a căilor de curent 3.

Fig. 1
Pe axul motorului se găseşte, de asemenea, şi un colector 4 ce schimbă sensul curentului prin
înfăşurarea căii de curent. Tensiunea de alimentare este aplicată înfăşurărilor electrice aflate pe
rotor prin intermediul unui sistem de perii fixate pe capacul 5. Distanţa care există între stator şi
rotor se numeşte întrefier.
Turaţia motorului este proporţională cu tensiunea aplicată înfăşurării electrice de pe rotor şi
invers proporţională cu câmpul magnetic de excitaţie. Câmpul magnetic de excitaţie există dacă
avem o bobină alimentată separat ce creează acest câmp. În cazul utilizării magneţilor permanenţi,
această comandă nu este posibilă. Turaţia se poate regla prin variaţia tensiunii aplicate motorului de
la o valoare minimă până la valoarea nominală. Cuplul dezvoltat de motor poate fi reglat prin
variaţia curentului ce trece prin înfăşurarea electrică aflată pe rotor. Schimbarea sensului de rotaţie
se face prin schimbarea polarităţii tensiunii de alimentare.
În general vorbind, circuitul electric al unui motor de curent continuu se compune din trei
componente: E – tensiunea electromotoare indusă, L – inductanţa indusului şi R – rezistenţa
indusului motorului.
Tensiunea electromotoare indusă e este tensiunea de la bornele motorului determinată de
mişcarea de rotaţie a rotorului în câmpul magnetic al inductorului.

i
U

Fig. 2
2
Limbaje de programarea pentru roboţi L6
Tensiunea electromotoare indusă este strict proporţională cu viteza şi are o rezistenţă internă
nulă. Polaritatea aceste tensiuni reprezintă direcţia mişcării, independent de tensiunea aplicată
motorului.
Inductanţa indusului L este inductanţa înfăşurării rotorului. La trecerea curentului prin rotorul
unui motor, este generat un câmp magnetic care determină o forţă electromagnetică, şi ca rezultat
rotorul se roteşte. Rotaţia rotorului induce o tensiune în înfăşurarea rotorului. Această tensiune
indusă are sens opus tensiunii exterioare aplicată rotorului. În timp ce motorul se roteşte cu viteză
mai mare, tensiunea rezultată este aproape egală cu cea indusă. Curentul este mic, şi viteza
motorului va rămâne constantă atât timp cât asupra motorului nu acţionează nici o sarcină, sau
motorul nu efectuează alt lucru mecanic decât cel efectuat pentru învârtirea rotorului. Când asupra
rotorului se aplică o sarcină, tensiunea va fi redusă şi un curent mai mare va putea să treacă prin
rotor. Astfel, motorul este capabil să primească mai mult curent de la sursa care îl alimentează, şi
astfel să efectueze mai mult lucru mecanic.
Pentru comanda motorului de curent continuu sunt multe căi:
∑ comanda curentului în buclă deschisă, care acţionează asupra cuplului motorului, protejând
astfel circuitul de alimentare al motorului şi motorul;
∑ comanda tensiunii variabile în buclă deschisă, care acţionează asupra turaţiei motorului;
∑ comanda tensiunii variabile cu limitarea curentului în circuit este cea mai simplă cale de
variaţie a vitezei motorului.
Relaţii matematice principale pentru circuitul electric al motorului din figura de mai sus sunt
prezentate într-o formă simplificată.
Relația care reprezintă legătura dintre tensiunea exterioară aplicată rotorului, căderea de
tensiune pe rezistența rotorului și tensiunea electromotoare indusă este prezentată mai jos.
,
din care se obţine relaţia curentului care trece prin circuitul indusului (rotorului)
.
Cuplul conducător la arborele motorului este proporţional cu curentul i care trece prin circuitul
indusului.

3. Interfaţarea motoarelor de curent continuu la microcontroler

Microcontrolerele furnizează la ieşire lor tensiunii şi curenţi de valori foarte mici. Din acest
motiv, pentru acţionarea motoarelor de curent continuu este nevoie de circuite de amplificare. O
schemă simplă şi eficientă pentru comanda acestor motoare este reprezentată de „puntea H” (în
engleză H – bridge).
3
Limbaje de programarea pentru roboţi L6

Fig. 3
O punte H este construită din patru întrerupătoare. Când întrerupătoarele S1 şi S4 sunt închise
şi întrerupătoarele S2 şi S3 sunt deschise, atunci o tensiune pozitivă va fi aplicată motorului. Prin
deschiderea întrerupătoarelor S1 şi S4 şi închiderea întrerupătoarelor S2 şi S3, aceasta tensiune este
inversată, făcând posibilă rotirea motorului în sensul opus.

Fig. 4
Aranjarea de tip punte H este în general folosită pentru a inversa polaritatea motorului, însă
poate fi folosită şi pentru frânarea motorului (motorul se opreşte brusc datorită scurtcircuitării
terminalelor sale). Puntea H se mai poate folosi pentru a lăsa motorul să se rotească liber până la
oprire.
Întrerupătoare
Rezultate
S1 S2 S3 S4
1 0 0 1 Rotire în sens orar
0 1 1 0 Rotire în sens antiorar
0 0 0 0 Rotire liberă
0 1 0 1 Frânare
1 0 1 0 Frânare
Punţile H pot fi construite din componente electronice sau se găsesc într-un singur circuit
integrat.
Circuitul integrat L293D conţine 2 astfel de punţi care pot comanda motoare alimentate cu
max. 35 V şi 600 mA. Fiecare din cele două punţi H are două terminale de intrare (INput) şi un
terminal de activare (ENable).
4
Limbaje de programarea pentru roboţi L6

Fig. 5
Când terminalul EN este legat la 5 V, puntea H este activă. Dacă intrarea IN1 este în 0 logic (+
5 V), iar intrarea IN2 este 1 logic (0 V) motorul se roteşte. În cazul în care stările celor două intrări
sunt inversate, atunci motorul se va roti în sens contrar. Când ambele intrări sunt în 1 logic motorul
se opreşte, iar dacă ambele intrări sunt în 0 logic, atunci axul motorului este frânat.
Un exemplu de conectare a circuitului L293 la microcontroler este prezentat în figura de mai
jos.

Fig. 6
Comanda unui motor de curent continuu poate fi analizată din punct de vedere dinamic în
timpul diferitelor faze ale mişcării. Fundamental pentru condiţiile de lucru ale circuitului integrat
(IC – microcircuit, microchip) este tipul de încărcare care comandă motorul.
De fapt, dacă încărcarea este determinată de frecare, faza de decelerare nu afectează serios
circuitul integrat, deoarece încărcarea însăşi furnizează un cuplu de frânare. În cazul în care
încărcarea este inerţială, atunci pentru circuitul integrat va apărea ca un cuplu motor generator,

5
Limbaje de programarea pentru roboţi L6
determinat de o circulaţie inversă a curentului prin motorul de curent continuu. Aceasta ar putea
determina condiţii critice de acţionare, care pot conduce la defectarea circuitului integrat.
Faza de acceleraţie: În această fază, curentul creşte, transmite un cuplu care permite motorului
să accelereze către viteza maximă sau până când curentul este stabilizat prin comanda buclei. Tipul
de încărcare principal determină curentul cerut.
Viteză constantă: În acest caz viteza cerută este mai mică decât cea maximă. Curentul este
limitat de circuitul integrat. Aceasta poate fi făcută prin deschiderea şi închiderea diagonalei unei
punţi cu diode care conduce.
Faza de deceleraţie: Când un motor de c.c. trebuie să fie încetinit, tipul de încărcare devine
important. În cazul încărcării de frecare motorul este frânat la încărcarea principală. Astfel, ar putea
să fie suficient să anulez cuplu motor prin deschiderea punţii cu diode. În cazul unei încărcări
inerţiale, cuplul de frânare este furnizat de circuitul integrat. Situaţia aceasta prezintă cel mai mare
interes. Orice schimbare a direcţiei de funcţionare a motorului implică o fază de frânare.

4. Aplicaţii
Aplicaţia 1.
Scopul aplicaţiei este acţionarea unui motor de c.c. în sens orar. Pentru alimentarea motorului
se foloseşte pinul RC2, iar pentru schimbarea sensului de rotaţie se foloseşte pinul RC3 sau RB7.
Porturile B şi C trebuiesc setate ca ieşire.
Programul are următoarea forma scris în pseudocod:
comentarii despre aplicaţie: motorul este alimentat de la pinul RC2 și sensul de rotație se
schimbă funcție de valoarea logică a pinului RB7;
instrucţiunea principala (main)
{
setarea registrului TRISC ca ieşire; TRISC = 0b11111011;
setarea registrului TRISB ca ieşire; TRISB = 0b10111111;
deschide bucla de ciclare continua
{
pinul RB7 ia valoarea 0 logică (comutare sens motor);
pinul RC2 ia valoarea 0 logică (activare tensiune alimentare motor);
}
}

5. Probleme propuse

1. Se cere să se realizeze un program care comandă funcționarea unui motor de c.c. în sens
orar sau antiorar.
2. Se cere să se realizeze un program care comandă rotația motorului de c.c. în sens orar timp
de ta secunde și apoi în sens antiorar timp de tb secunde.

S-ar putea să vă placă și