Sunteți pe pagina 1din 66

PROIECTAREA UNUI SISTEM DE ACŢIONARE CU MOTOR DE CURENT CONTINUU...........................

2
INTRODUCERE.......................................................................................................................................................2
SISTEME DE ACŢIONARE ELECTRICĂ. GENERALITĂŢI..............................................................................2
LANŢURI CINEMATICE........................................................................................................................................2
Caracteristicile lanţurilor cinematice....................................................................................................................3
Asocierea lanţurilor cinematice.............................................................................................................................5
MAŞINI ELECTRICE..............................................................................................................................................7
ACŢIONĂRI CU MAŞINI SINCRONE..................................................................................................................8
Generalităţi............................................................................................................................................................8
MOTORUL SINCRON............................................................................................................................................9
Pornirea motorului sincron....................................................................................................................................9
Frânarea motorului sincron.................................................................................................................................10
Motoare sincrone speciale...................................................................................................................................10
Motoare sincrone reactive (MSR).......................................................................................................................10
Motoarele pas cu pas (MPP)...............................................................................................................................11
ACŢIONĂRI CU MAŞINI ASINCRONE.............................................................................................................12
Generalităţi..............................................................................................................................................................12
MOTORUL ASINCRON.......................................................................................................................................12
Pornirea motorului asincron trifazat....................................................................................................................12
Pornirea motorului asincron monofazat..............................................................................................................13
ACŢIONĂRI CU MOTOARE DE CURENT CONTINUU..................................................................................13
DESCRIEREA ŞI FUNCŢIUONAREA MOTORULUI DE CC...........................................................................14
Ecuaţiile de funcţionare.......................................................................................................................................14
Caracteristicile de funcţionare ale motorului de curent continuu.......................................................................15
A. Motorul cu excitaţie în derivaţie................................................................................................................15
Motorul cu excitaţie serie........................................................................................................................................18
La acest motor înfăşurarea rotorică este în serie cu înfăşurarea de excitaţie, (fig. 1.5)..................................18
Motorul cu excitaţie mixtă......................................................................................................................................18
Pornirea motoarelor de curent continuu..................................................................................................................19
Regimul de frânare la motorul de curent continuu..............................................................................................21
Regimul de frânare la motorul de curent continuu cu excitaţie în derivaţie...................................................21
Frânarea cu recuperare....................................................................................................................................22
Frânarea în contracurent..................................................................................................................................22
Frânarea dinamică...........................................................................................................................................23
Regimul de frânare la motorul de curent continuu cu excitaţie serie..................................................................23
Frânarea cu recuperare de energie...................................................................................................................23
Frânarea dinamică...........................................................................................................................................23
Frânarea în contracurent..................................................................................................................................24
REGLARE A TURAŢIEI MOTORULUI DE CURENT CONTINUU.................................................................25
Reglajul turaţiei mcc cu excitaţie derivaţie.............................................................................................................25
Reglajul turaţiei motorului de curent continuu cu excitaţie serie.......................................................................27
Sisteme de reglare a vitezei m.c.c. alimentate prin impulsuri.............................................................................29
PROIECTUL TEHNIC...........................................................................................................................................32
Generalităţi..............................................................................................................................................................32
Părţile componente ale schemei..............................................................................................................................33
Microcontroller PIC16F874....................................................................................................................................35
ALGORITMUL DE PROGRAMARE...................................................................................................................59
Schema algoritmului...........................................................................................................................................59

1
PROIECTAREA UNUI SISTEM DE ACŢIONARE CU
MOTOR DE CURENT CONTINUU

INTRODUCERE

SISTEME DE ACŢIONARE ELECTRICĂ. GENERALITĂŢI

Un sistem de acţionare electrică reprezintă o mulţime de obiecte interconectate şi


interdependente în scopul realizării conversiei electromagnetice a energiei pentru un anumit
proces tehnologic.
Componentele principale ale unui sistem de acţionare electrică sunt : motorul electric,
maşina de lucru, transmisia si elementul de execuţie (fig.1).

Figura 1. Componentele unui sistem de acţionare


Motorul electric realizează transformarea puterii electrice în putere mecanică.
Maşina de lucru ML este antrenată de motorul electric M şi realizează anumite operaţii
dintr-un proces tehnologic.
Transmisia T reprezintă legătura mecanică dintre motor şi maşina de lucru, cu rolul de
a realiza transferul de putere mecanică, şi eventual, de a schimba parametrii acestei puteri
(viteza unghiulară, cuplu).
Elementul de execuţie EE are drept scop alimentarea cu energie electrică a motorului
si comanda funcţionarii motorului în conformitate cu anumite cerinţe.
Realizarea si funcţionarea optimă a unui sistem de acţionare electrică presupune, în
primul rând, cunoaşterea foarte exactă a procesului tehnologic şi a maşinii de lucru folosite,
funcţie de care se vor alege sau calcula si construi motorul electric, elementul de execuţie şi
elementul de transmisie, avându-se în vedere asigurarea unui cost cât mai redus şi a unei mari
fiabilităţi în funcţionare.

LANŢURI CINEMATICE

În lanţului cinematic. schemele cinematice structurale mecanismele care realizează


funcţii identice, dar sunt de naturi diferite se reprezintă prin acelaşi simbol convenţional.
Schema fluxului cinematic este o reprezentare intuitivă a modului de transmitere a
mişcării prin mecanismele

2
Caracteristicile lanţurilor cinematice

Ecuaţia de transfer:
x e  xi  i

Figura 2. Schema bloc-Funcţia de transfer


unde:
i – raport de transfer
xi – mărime de intrare
xe – mărime de ieşire

Figura 3. Mecanismul şurub-piuliţă

xe = vav =ns psc


xi  n s
unde:
vav – viteza de avans
ns – turaţia şurubului
psc – pasul şurubului conducător
v av  n s  p sc ;
v av ns  p sc
i   p sc
ns ns

Figura 4. Cinematica mişcării


xi  n1 x e  n2

3
n2
 i
n1

Figura 5. Raportul de transfer


xek
iT   i1  i2  i3  i4    ik ;
xi 1
y
iT  e
yi
Notăm: iC  i1  i2 ; iR  i3  i4 ; i D  i5    ik
Rezultă: iT  iC  iR  iD
unde:
iT – raport total de transfer
iC – raport constant
iR - raport reglabil
iD – raport dimensional

Ecuaţia de transfer a lanţului cinematic:


y e  yi .i T  yi .i C .i R .i D
Ecuaţia de reglare a lanţului cinematic:
y 1
iR  e 
yi iC  iD

Mărimile de ieşire a lanţurilor cinematice pot să aibă la o anumită maşină-unealtă valori


diferite:
ye1 y e1  y e min    y e max y e1  y e min ....y e max
y e1  y e min    y e max

Raportul de reglare a mărimii de ieşire:


y
i ye  e max
y e min
Domeniul de reglare a mărimilor de intrare:
yi1 y i1  y i min    y i max y i1  y i min ....y i max
y i1  y i min    y i max

Raportul de reglare al mărimilor de intrare:


yi max
i yi 
yi min

Capacitatea de reglare a lanţului cinematic:

4
i T max i R max
CR  sau CR 
iT min i R min

Mărimea capacităţii de reglare CR a lanţurilor cinematice caracterizează complexitatea


mecanismului de reglare a lanţurilor cinematice.

Asocierea lanţurilor cinematice

Pentru a putea asocia lanţurile cinematice se impune ca două viteze ale mărimilor de
ieşire din lanţurile cinematice să păstreze un anumit raport între ele.
Condiţia economică, dar şi condiţiile de precizie şi fiabilitate, impun ca într-un lanţ
cinematic să existe un număr minim de mecanisme.
Există trei moduri de asociere:
Asocierea serie:

Figura 6. Metode de asocierea lanţurilor cinematice


Două sau mai multe lanţuri cinematice sunt asociate sau legate în serie (fig.6) atunci
când, prin intermediul unui mecanism C, se transmite mărimea de ieşire y e1 dintr-un lanţ
cinematic sub formă de mărime de intrare yi2 în lanţul cinematic următor.
Datorită raportului de transfer iC al mecanismului C de legătură, între cele două mărimi există
y i2
relaţia:  iC
y e1
b) Asocierea paralel:

5
Figura 7. Asocierea în parallel a lanţurilor cinematice
Două sau mai multe lanţuri cinematice sunt asociate în paralel (fig.7) atunci când între
mărimile de ieşire trebuie să existe anumite relaţii, sau când între mărimile de intrare există
anumite relaţii.
Lanţurile cinematice asociate în paralel se pot subgrupa, în ceea ce priveşte legătura
dintre mărimile de ieşire, ca fiind:
lanţuri cinematice cu legătură condiţionată cinematic (fig.7.a) – lanţuri cinematice care
asigură mişcarea de rotaţie şi de translaţie pentru obţinerea directoarei elicoidale, ale căror
viteze să satisfacă raportul vT / vA = tg.
lanţuri cinematice cu legătură necondiţionată cinematic – lanţuri cinematice care
asigură viteza de aşchiere şi de avans, între care nu există o condiţionare ca în cazul
precedent.
În figura 7.b este prezentată o variantă de asociere în paralel rezultă din considerente
economice.

Asocierea mixtă:

6
Figura 8. Asocierea mixtă a lanţurilor cinematice
Asocierea mixtă a lanţurilor cinematice reprezintă o asociere între lanţurile cinematice
legate în serie şi lanţurile cinematice legate în paralel.
În funcţie de numărul mărimilor de ieşire furnizate la capătul de ieşire avem:
 asociere mixtă cu o mărime de ieşire (fig.8.a);
 asociere mixtă cu două sau mai multe mărimi de ieşire (fig.8.b)
Asocierea mixtă cu o singură mărime de ieşire (fig.8.a), constă în lanţuri cinematice
asociate în paralel, ale căror mărimi se însumează pentru a furniza o singură mărime de ieşire
lanţului următor, care este legat în serie cu precedentele, ceea ce ar permite şi denumirea de
asociere paralel-serie.
Însumarea algebrică a mărimilor de ieşire se obţine printr-un mecanism de însumare,
care poate fi: mecanism diferenţial, mecanism cu clichet, cuplaj cu role, etc. ca mecanisme
mecanice sau diferite tipuri de sertăraşe hidraulice care permit însumarea debitelor, precum şi
orice alt mecanism care permite însumarea a două mărimi de aceeaşi natură sau de natură
diferită.
Asocierea mixtă cu două sau mai multe mărimi de ieşire (fig.8.b), constă în asocierea
de lanţuri cinematice în serie cu lanţuri cinematice în paralel, astfel aceasta poate fi denumită
şi asociere serie-paralel.

MAŞINI ELECTRICE

Prin maşină electrică se înţelege o maşină, în general, rotativă, care transformă puterea
mecanică în putere electrică sau invers. Maşinile electrice se împart în maşini de curent
continuu şi maşini de curent alternativ, după felul energiei electrice ce ia parte în conversia
electromecanică realizată de maşină.
Orice maşină electrică este reversibilă din punct de vedere al conversiei energiei
realizate; ea poate funcţiona fie ca generator, fie ca motor. Prin generator electric se înţelege o
maşină electrică, care transformă puterea mecanică în putere electrică. Prin motor electric se
defineşte o maşină electrică care transformă puterea electrica în putere mecanică. Unele
maşini pot funcţiona si ca frâna electrică şi în această situaţie maşina primeşte atât putere
mecanică cât şi putere electrică, pe care le transformă în timp în căldură, realizând în acelaşi
timp un cuplu electromecanic realizat la arbore.
Maşinile de curent alternativ se împart în doua mari clase: sincrone si asincrone.
Maşina sincronă se caracterizează prin faptul că în regim permanent frecvenţa curentului
schimbat cu reţeaua de curent alternativ se afla în raport constant cu viteza unghiulară de
rotaţie a maşinii, indiferent de gradul de încărcare al maşinii. Maşina asincronă se

7
caracterizează printr-o viteză unghiulară care nu se menţine în raport constant cu frecventa
reţelei electrice, ci variază odată cu schimbarea regimului de funcţionare sau cu modificarea
gradului de încărcare al maşinii.

ACŢIONĂRI CU MAŞINI SINCRONE.

Generalităţi

Maşina sincronă se cunoaşte în două forme constructive: 1) cu poli aparenţi; 2) cu poli


plini. În cazul maşinii sincrone cu poli aparenţi se manifestă anizotropia magneticã pe două
axe şi anume: a) pe axa longitudinală “d” care este axa polilor inductorului; b) pe axa
transversală “q” care este axa interpolară şi prin urmare este ortogonală electric faţă de axa
longitudinală.
Schemele echivalente şi diagramele fazoriale simplificate ale MS prin neglijarea
rezistenţei pe fază a indusului pentru factor de putere inductiv sunt reprezentate în figurile
următoare. Semnul minus în faţa lui E semnifică regimul de motor când tensiunea este
contraelectromotoare.

Figura 9. Schema electrică a indusului şi diagramele fazoriale pentru maşina sincronă cu poli aparenţi

Figura 10. Cu poli plini

8
Maşina sincronă cu poli aparenţi dezvoltă un cuplu de anizotropie magnetică chiar şi
dacă maşina nu este excitată (E0 = 0), care stă la baza funcţionării maşinii sincrone reactive.
Maşina sincronă dezvoltă un cuplu numai dacă rotorul se roteşte sincron cu câmpul
magnetic învârtitor rezultant şi în acelaşi sens. În concluzie: maşina sincronă nu poate porni
singură pentru că nu dezvoltă cuplu.
Există următoarele tipuri constructive de MS:
a) cu excitaţie electromagnetică, formată din bobine concentrate pe miez de fier
alimentate în curent continuu şi piese polare pentru fiecare pol, asemănătoare constructiv cu
excitaţia motorului de curent continuu. În construcţie normală excitaţia maşinii este în rotor,
dar există şi construcţii inversate;
b) excitată static cu magneţi permanenţi. Se renunţă la cele două perii şi inelele
colectoare necesare pentru alimentarea rotorului în curent continuu. Maşinile sincrone excitate
cu magneţi permanenţi (MSMP ) sunt la fel de robuste ca şi MAS.
c) cu reluctanţă variabilă (MSRV), (bariere nemagnetice); rolul barierelor nemagnetice
este de a mări anizotropia magnetică pe cele două axe ale maşinii.
Problemele MSMP sunt: deprecierea proprietăţilor magneţilor permanenţi odată cu
creşterea temperaturii şi compensarea reacţiei indusului pentru a păstra punctul de funcţionare
optim al magnetului permanent.
Problemele MSRV sunt legate de realizarea unei construcţii rigide a rotorului în
condiţiile extinderii barierelor nemagnetice.

MOTORUL SINCRON

Pornirea motorului sincron

Motoarele sincrone nu dezvoltă cuplu de pornire. Metodele de pornire sunt:


a) cu motor auxiliar;
b) în asincron;
c) prin convertor de frecvenţă.
Ca motor auxiliar se poate utiliza fie un MCC fie un MAS.
Pornirea în asincron se poate face dacă maşina are în tălpile polare o înfăşurare în
scurtcircuit.

Figura 11. Pornirea în asincron a MS


Pentru pornirea în asincron se realizează schema principială din fig.10. Cât timp
rotorul este antrenat de un cuplu asincron excitaţia nealimentată este conectată (contactul K1
închis) pe un rezistor Rp sau este scurtcircuitată.

9
Când alunecarea s<350,05 se alimentează excitaţia (contactul K2 se închide şi
simultan se deschide contactul K1). Apare un regim tranzitoriu de accelerare a rotorului în
decursul căruia acesta este atras în sincronism de cuplul sincron - Ms. Colivia de pornire iese
din funcţionare, iar MS se prinde în sincronism.

Frânarea motorului sincron

La maşina sincronă se aplică frânarea reostatică sau dinamică, care reprezintă un


regim de generator fără recuperarea energiei.
Statorul se deconectează de la reţea şi se cuplează pe o rezistenţă RF de frânare
trifazată. Înfăşurarea rotorului rămâne alimentată în curent continuu. La alimentarea excitaţiei
de la un redresor static comandat se poate realiza forţarea excitaţiei care duce la o creştere
importantă a cuplului de frânare.

Figura 12. Schema electrică a frânării MS

Motoare sincrone speciale

Motoare sincrone reactive (MSR)

Un MS cu rotor anizotrop (întrefier neuniform), de exemplu MS cu poli aparenţi, care


funcţionează fără excitaţie (E0 = 0), se numeşte maşină reactivă. MS cu bariere nemagnetice
în rotor reprezintă o construcţie care urmăreşte realizarea unui cuplu de anizotropie
electromagnetică maxim. Cuplul electromagnetic care are tendinţă să orienteze rotorul în
poziţia de reluctanţă minimă a întrefierului, deci de flux magnetic maxim sau energie
magnetică maximă, se numeşte cuplu reactiv.

Motoarele pas cu pas (MPP)

Motoarele pas cu pas au înfăşurări statorice concentrate (ca la MCC) care transformă
impulsurile de tensiune în deplasări unghiulare sau liniare discrete numite paşi. Motoarele pas

10
cu pas sunt convertoare-amplificatoare de informaţie numerică. Clasificarea motoarelor pas cu
pas: active, care sunt excitate cu magneţi permanenţi şi reactive;

Figura 13. MPP reactive cu rotor bipolar şi stator cu 12 poli


Bobinele statorice sunt alimentate printr-un comutator electronic de la o sursă de
curent continuu. Pentru ca energia magnetică a sistemului să fie maximă rotorul ocupă poziţia
în care reluctanţa (Rm) echivalentă a circuitului este minimă.
A. La alimentarea înfăşurărilor corespunzătoare polilor 1-1' rotorul se situează în
lungul axei acestora.
B. Înfăşurările corespunzătoare polilor 1-1' şi 2-2' alimentate fac rotorul să se situeze
pe bisectoarea unghiului dintre axele polilor 1-1' şi 2-2’, deci dintre axele geometrice a doi
poli consecutivi, rezultând un unghi de pas de 15°.
C. Alimentarea înfăşurărilor 2-2' face rotorul să se alinieze pe axa 2-2' rezultând un
pas unghiular de 30° = 15° + 15°.
Motoarele pas cu pas se utilizează pentru acţionarea mecanismelor de poziţionare.

ACŢIONĂRI CU MAŞINI ASINCRONE

11
Generalităţi

Maşinile asincrone (MAS) trifazate, numite şi maşini de inducţie, au o largă utilizare


în sistemele de acţionare electrică (SAE) datorită următoarelor avantaje: construcţie simplă şi
robustă, siguranţă în exploatare, preţ de cost scăzut, alimentare direct de la reţea.
Dezavantajele lor sunt: modificarea vitezei se face greoi cu investiţii ridicate, absorb
putere reactivă, prin urmare duc la scăderea factorului de putere.
Cea mai răspândită este MAS cu rotorul în scurtcircuit, celălalt tip constructiv îl
reprezintă maşina asincronă cu inele (MASI). Dacă la MASI se include în rezistenţa fazei
rotorice şi rezistenţa reostatului exterior, atunci ecuaţiile ce descriu funcţionarea obţin o formă
unică.
Ca şi în cazul transformatorului, pentru ca mărimile rotorice să poată fi comparate
direct cu cele statorice, maşina reală se înlocuieşte cu o maşină echivalentă.
Maşina echivalentă are atât în stator cât şi în rotor acelaşi număr de faze, de înfăşurări
şi de spire ale înfăşurărilor şi este echivalentă energetic cu maşina reală. În plus are rotor
imobil, deci frecvenţa din rotor este egală cu frecvenţa din stator, iar pentru că şi tensiunea
electromotoare din stator este egală cu tensiunea electromotoare din rotor cele două înfăşurări
pot fi conectate galvanic între ele.

MOTORUL ASINCRON

Pornirea motorului asincron trifazat

La pornirea motoarelor asincrone trebuie să se asigure următoarele condiţii:


- Cuplul electromagnetic la pornire să fie suficient de mare pentru a se realiza pornirea
în gol sau în sarcină în funcţie de condiţiile de funcţionare ale maşinii.
- Curentul de pornire al maşinii să nu depăşească valoarea limită admisibilă
determinată de reţeaua de alimentare pentru a se evita căderile mari de tensiune din reţea, care
provoacă deranjamente în funcţionarea altor consumatori. Curenţii mari de pornire în primarul
maşinii provoacă încălziri ale înfăşurării, precum şi scăderea randamentului energetic în
perioada de pornire.
- Durata procesului de pornire să fie cât mai scurtă, pentru a nu se produce încălziri
însemnate ale înfăşurării primare.
Pornirea motoarelor asincrone poate avea loc direct prin cuplarea maşinii direct la o
reţea trifazată având tensiunea şi frecvenţa nominală, sau indirect, maşina fiind cuplată mai
întâi la o tensiune redusă, care în decursul pornirii este mărită treptat până la valoarea
nominală.
La alegerea metodei de pornire, trebuie să se ţină seama de condiţiile impuse de
reţeaua de alimentare şi de mecanismul acţionat de motor.
Cuplarea directă a maşinii la reţea este aplicată la maşinile asincrone cu rotorul
bobinat la care pornirea se efectuează cu ajutorul unui reostat conectat în rotor, precum şi la
maşinile asincrone cu rotorul în colivie în cazul în care reţeaua de alimentare este suficient de
puternică încât şocurile de curent la pornire să nu prezinte importanţă, iar mecanismul
acţionat poate să suporte şocul de cuplu electromagnetic.
Cuplarea indirectă a maşinii asincrone în perioada pornirii este aplicată la motoarele
asincrone cu colivie în rotor, alimentate de la reţele electrice relative slabe.

12
Pornirea motorului asincron monofazat

Motorul asincron monofazat prezintă un însemnat avantaj prin faptul că pentru


alimentarea acestuia este necesară o sursă monofazată, dar motorul asincron monofazat nu are
cuplu de pornire. Dacă se aplică în exterior un cuplu mecanic de acţionare motorul poate
porni în sensul cuplului aplicat. Desigur această pornire este dificilă, deoarece trebuie să fie
lansat rotorul de fiecare dată când urmează să fie pornit motorul asincron monofazat.
Pentru a depăşi această dificultate motorul monofazat se echipează în stator cu o
înfăşurare auxiliară decalată faţă de înfăşurarea principală şi alimentată de la aceeaşi sursă de
curent alternativ, curentul prin această înfăşurare auxiliară trebuie să fie defazat faţă de
curentul prin înfăşurarea principală. În acest fel se produce în maşină un câmp magnetic
învârtitor şi maşina poate dezvolta un cuplu electromagnetic de pornire diferit de zero.

ACŢIONĂRI CU MOTOARE DE CURENT CONTINUU

În ultimul timp motoarele de curent continuu au revenit în actualitate, deşi motorul


asincron este folosit în circa 95% din sistemele de acţionare electromecanică. Această
revenire se datorează avantajelor oferite de motorul de curent continuu prin caracteristica
mecanică naturală liniară şi suficient de rigidă, precum şi a progreselor realizate în domeniul
mutatoarelor cu comutaţie naturală şi forţată.
Dacă generatoarele de curent continuu se construiesc actual mai puţin, deoarece
funcţiile lor au fost preluate de dispozitivele semiconductoare în schimb motoarele de curent
continuu continuă să aibă o arie de aplicabilitate largă şi anume:
a) în tracţiune electrică: pentru acţionarea tramvaielor, troleibuzelor, electrocarelor;
b) în metalurgie: pentru acţionările principale şi auxiliare ale laminoarelor de ţevi şi
tablă;
c) pentru acţionarea maşinilor unelte, în special a lanţurilor cinematice de avans;
d) pentru antrenarea unor instalaţii de ridicat şi transportat, etc.
Aprecierea calităţilor tehnice ale unui motor de curent continuu se face ţinând cont de
următoarele caracteristici :
a) Pornire
b) Funcţionare
c) Reglarea vitezei
d) Frânarea
În comparaţie cu motorul asincron, motorul de curent continuu permite reglajul
turaţiei în limite largi, în mod continuu şi mai economicos. Regimurile tranzitorii de pornire,
frânare şi inversarea sensului de mişcare au durată mai scurtă, iar caracteristica mecanică
poate fi dură în cazul excitaţiei separate sau paralel, moale în cazul excitaţiei serie sau poate fi
modificată conform cerinţelor acţionării prin dimensionarea corespunzătoare a excitaţiilor în
cazul motoarelor cu excitaţie mixtă
Avantajele enumerate determină menţinerea în competiţie a motorului de curent
continuu în pofida avantajelor evidente ale motoarelor asincrone: construcţie robustă,
alimentare directă de la reţeaua de curent alternativ, preţ de cost şi gabarit mai scăzut pe
unitatea de putere.
a) Caracteristicile de pornire se referă la:
Ip
 In şi Ip = f(t)

13
Mp
 Mn şi Mp =f(t)
durata procesului tranzitoriu
economicitatea pornirii din punct de vedere al energiei disipate, al costului aparatajului şi al
fiabilităţii.
b) Caracteristicile de funcţionare sunt : Ω = f(M) şi n = f(I) în condiţiile menţinerii
constante a UA=UN, Re, RA.
Se adaugă caracteristica mecanică n = f(M) esenţială pentru studiul acţionărilor
electrice.
c) Caracteristici de reglare a vitezei:
domeniul (plaja) de reglare nmax / nmin
modul de reglare : continuu sau în trepte
economicitatea reglării din punct de vedere al pierderii de energie, costul aparatajului şi a
fiabilităţii.
d) Caracteristicile de frânare: constau în extinderea caracteristicii mecanice n=f(M)
pentru trei regimuri speciale de lucru: frână propriu-zisă, generator supraturat şi frânare
dinamică în regim de generator.

DESCRIEREA ŞI FUNCŢIUONAREA MOTORULUI DE CC

Ecuaţiile de funcţionare

Figura 14. MCC-conexiuni


a) – cu excitaţie în derivaţie;
b) - cu excitaţie serie;
c) - cu excitaţie mixtă;
PC – poli auxiliari, IC – înfăşurare de compensaţie; Exd - înfăşurare de excitaţie derivaţie.
Exs - înfăşurare de excitaţie serie; Re – reostate de excitaţie; Rp-reostat de pornire.
În figura 14 sunt indicate schemele electrice ale motoarelor de curent continuu cu
excitaţie derivaţie (separată), serie şi mixtă.
Regimurile de funcţionare tranzitorii şi permanente ale motorului de curent continuu
sunt determinate de ecuaţiile referitoare la: tensiunea la borne, tensiunea electromotoare,
cuplul electromagnetic, ecuaţia cuplurilor şi fluxul magnetic de excitaţie.

14
diA
UA = RAIA + LA dt
-E
E = -KeØn
M = KØI (1)
d
M - Mrε = J
dt
Ø = f(I, ie) ,

în care:
Mrε = Mr + Mm + MFe - reprezintă cuplul rezistent total ce se opune antrenării
rotorului compus din cuplul rezistent Mr, dat în general grafic sau analitic, cuplul datorat
frecărilor în lagăre şi frecării vâscoase cu aerul şi cuplul corespunzător pierderilor în fier.
În regim staţionar de funcţionare, când mărimile electrice şi mecanice obţin valori
constante, ecuaţiile de funcţionare devin:

UA = RAIA – E
M = Mrε (2)
Prin eliminarea variabilei E între primele două ecuaţii ele sistemului (1) se obţine
ecuaţia caracteristicii turaţie-curent.
UA  R AIA UA R I
n  (1  A A ) (3)
Ke Ke UA
Substituind curentul prin cuplul corespunzător rezultă ecuaţia caracteristicii turaţie-
cuplu.
UA RA
n  M (4)
Ke KeK 2
Explicarea relaţiei fluxului magnetic în cazul diferitelor tipuri de motoare conduce la
ecuaţii particularizate ale caracteristicilor.
Aceste ecuaţii sunt parametrice, deci pot fi modificate prin acţiunea directă în scopul
obţinerii caracteristicilor artificiale necesare regimurilor tranzitorii (pornirea, reglarea vitezei,
frânare) urmate de funcţionarea stabilă a motorului pe caracteristica naturală.

Caracteristicile de funcţionare ale motorului de curent continuu

A. Motorul cu excitaţie în derivaţie

Schema de conexiune a acestui motor, prevăzut cu excitaţie derivaţie sau separată


(independentă) este indicată în figura 15.

15
Figura 15. MCC compensată cu excitaţie independentă
– circuitele electrice; b) – schema electrică echivalentă rotorică; 1 – poli principali; 2 – poli
auxiliari; 3 – înfăşurare de compensaţie.
Din schema echivalentă a motorului rezultă:
V = kΦW + RaI (5)
unde constanta electrică k este:

(6)
în care: p este numărul de perechi de poli, N – numărul total de conductoare pe periferia
maşinii, a – numărul de căi de curent, Φ – fluxul considerat constant la curentul de excitaţie Ie
constant, I –curentul rotoric, W- viteza rotorică şi Ra- rezistenţa înfăşurării rotorice. În cazul
Φ = const, se poate scrie kΦ = K, unde K este denumită constanta electromagnetică a
maşinii. Momentul electromagnetic al maşinii este proporţional cu curentul rotoric:
M = kΦI = KI. (7)
În aceste condiţii rezultă:

(8)
care este o variaţie liniară şi constituie ecuaţia caracteristicii mecanice naturale a motorului de
curent continuu cu excitaţie derivaţie prezentată sub forma f(I), respectiv W = f (M). În aceste
relaţii s-a notat:

(9)
Dacă se intercalează o rezistenţă Rx în serie cu rezistenţa rotorică Ra, se obţin caracteristicile
mecanice artificiale, sub forma:

(10)

16
Figura 16. Caracteristica mecanică naturală a mcc cu excitaţie independentă
1 - caracteristica compensată; 2 - caracteristica insuficient compensată.

Figura 17. Caracteristica de sarcină a mcc cu excitaţie independentă


a) – de tensiune ; b) – de flux ; c) – reostatice.
În figura 16 este prezentată caracteristica mecanică naturală, iar în figura 1.4,
caracteristicile artificiale de tensiune (a), de flux (b) şi reostatice (c). În cazul figurii 17, a,
caracteristicile de tensiune se deplasează prin translaţie faţă de caracteristica mecanică
naturală.
 dacă V1 > VN , caracteristica se deplasează în sus cu ΔW01 = (V1 –
VN)/K > 0,
 dacă V2 < VN , deplasarea se realizează în jos cu ΔW02 = (V2 –
VN)/K < 0.

17
În cazul figurii 17, b, prin slăbire de flux Φ2 < Φ1 caracteristica de tensiune se
deplasează prin translaţie în sus şi invers.
În cazul figurii 1.4, c, prin intercalare de rezistenţe se obţin caracteristici din ce în ce mai moi,
ajungând să frâneze şi să oprească motorul.

Motorul cu excitaţie serie

La acest motor înfăşurarea rotorică este în serie cu înfăşurarea de excitaţie, (fig.


18).

Figura 18. Caracteristicile universale ale mcc serie


Ca urmare a fenomenului de saturare magnetică, nu este posibil studiul analitic al
caracteristicilor mecanice. Aceste caracteristici sunt prezentate în cataloage pentru fiecare
serie de motoare sub formă de caracteristici raportate care indică dependenţa dintre viteza de
rotaţie, puterea şi randamentul maşinii în funcţie de cuplul de sarcină sau de curentul absorbit
de la reţea. În figura 1.6 sunt date caracteristicile universale ale unui tip constructiv de maşină
de curent continuu cu excitaţie serie constând din:
viteza relativă ν= W/WN = f (i), unde i = I / IN;
cuplul redus m = f (i), puterea redusă π = P/PN = f (i)
randamentul redus η/ηN = f (i).
Formal, caracteristica mecanică este identică cu cea a motorului de curent continuu
derivaţie, cu observaţia că mărimea K = k Φ nu mai este o constantă.
O proprietate esenţială a motorului serie constă în aceea că funcţionează la putere
constantă, astfel că nu există posibilitatea de supraîncărcare, motorul serie fiind autoreglator.

Motorul cu excitaţie mixtă

Motoarele de curent continuu cu excitaţie mixtă au comportare intermediară între


MCC cu excitaţie derivaţie şi MCC cu excitaţie serie.
Turaţia are expresia:

18
UA  R A IA
n (11)
Ke( d   s )
Această expresie ilustrează diversitatea caracteristicilor ce pot fi obţinute, cuprinse
între caracteristicile motorului serie şi caracteristicile motorului derivaţie. Caracteristica
mecanică este semimoale, scăzând cu creşterea cuplului la solenaţii de acelaşi semn
(compund) şi crescând la solenaţii opuse ale înfăşurărilor de excitaţie (anticompund).
În figura 19 s-au reprezentat sintetic următoarele caracteristici mecanice: 1 - motor cu
excitaţie mixtă; 2 – motorul serie; 3 – motorul derivaţie

3
1 2

Figura 19. Caracteristica mcc cu excitaţie mixtă

Pornirea motoarelor de curent continuu

Pornirea motoarelor de curent continuu se face manual sau prin comandă automată, prin
controlul uneia din mărimile care pot fi măsurate şi care variază în acest interval: curent,
viteză, timp.

19
Figura 20. Comanda pornirii a mcc cu excitaţie independentă funcţie de viteză
a) – schema de forţă; b) – schema de comandă.
Se prezintă în figura 20 schema de forţă şi de comandă în funcţie de viteză. Vitezele W1
, W2 , W3, indicate în diagramă sunt proporţionale cu tensiunile electromotoare e1 = KWi , i =1,
2, 3, tensiuni care pot fi evidenţiate de releele de tensiune d1, d2 şi d3, care anclanşează la
atingerea acestor nivele. Se apasă pe butonul a1, contactorul c închide contactele principale
1c şi 2c din circuitul rotoric şi maşina porneşte. La atingerea vitezei W1 anclanşează d1 şi astfel
contactorul c1 anclanşează şi scurtcircuitează prin contactul său 1d1 tronsonul R3 al reostatului,
ş.a.m.d. Releele termice d4 şi d5 au rol de protecţie la suprasarcină.
Pornirea motorului de curent continuu serie se realizează utilizând trepte de rezistenţe
conectate în serie cu circuitul rotoric, ca şi la motorul derivaţie.
Acest motor este utilizat cu precădere în acţionările electromecanice din tracţiunea
minieră, urbană şi feroviară.

Pornire prin conectare directă la reţea: este cea mai simplă metodă de pornire.
În procesul pornirii:
UA = RAIA + KeØn
diA
UA = RAIA + LA dt
+ KeØn
în care:
LA, RA, reprezintă parametrii electrici ai întregului circuit al rotorului.

20
Ecuaţia de cupluri în regim dinamic este:
d
M - Mrε = J
dt
în care:
Mrε = Mr + Mm + MFe reprezintă cuplul rezistent total la arbore.
Ecuaţiile de funcţionare în regim dinamic dovedesc că procesul de pornire al
motorului este caracterizat de două regimuri tranzitorii:
regimul tranzitoriu electromagnetic determinat de variaţia în timp a mărimilor electrice prin
circuitele motorului (indus plus excitaţie).
regimul tranzitoriu mecanic determinat de creşterea turaţiei n.
Motoarele cu excitaţie serie pornesc cel mai repede pentru că odată cu curentul
indusului creşte şi fluxul de excitaţie.
Pornirea motoarelor cu excitaţie mixtă se face similar cu a motoarelor cu excitaţie în
derivaţie.

Pornire cu reostat: este utilizată la motoare de puteri medii şi mari şi constă din înscrierea
unui reostat de pornire în circuitul rotoric, care se scoate treptat din circuit pe măsură ce
motorul se turează. Reostatul este metalic, cu ploturi, deci cu rezistenţă variabilă în trepte, şi
numai în cazuri speciale prezintă o rezistenţă variabilă continuu.
În studiul procesului pornirii cu reostat se neglijează regimul tranzitoriu electric, deci
se admite că la modificarea rezistenţei indusului se modifică brusc curentul prin indus, dar
turaţia îşi păstrează valoarea anterioară, deşi se modifică lent.
Pornirea oricărui motor se poate efectua în sarcină sau în gol.
La pornirea în gol cu reostat se restrânge domeniul de variaţie al curentului în timpul
pornirii, iar la pornire în sarcină se utilizează dimensionarea rezistenţei de pornire.
Pornirea prin alimentare cu tensiune progresiv corespunzătoare: se utilizează la maşini de
mare putere sau instalaţii speciale. Instalaţia electrică necesită acelaşi aparataj ca şi la reglarea
turaţiei.
În tracţiunea electrică se utilizează conectarea în serie a mai multor motoare de curent
continuu. După intrarea în turaţie motorul de curent continuu se conectează automat la
tensiunea reţelei.

Regimul de frânare la motorul de curent continuu

Regimul de frânare la motorul de curent continuu cu excitaţie în derivaţie

Maşinile electrice posedă însuşirea de a funcţiona în regim de motor sau în regim de


frână, după cum produc mişcarea sau se opun mişcării. În regim de motor cedează putere
mecanică : P = MΩ > 0, în regim de frână primeşte putere mecanică pe care o transformă în
căldură : P = MΩ < 0

21
Figura 21. Regimurile de funcţionare în cele patru cadrane a) şi funcţionarea în regim de motor la: b)
mecanism de ridicare-coborâre şi c) mecanismul de translaţie
. Se deosebesc următoarele metode de frânare:
1. Frânare cu recuperare
2. Frânare în contracurent
3. Frânare reostatică
Frânarea cu recuperare

Se presupune că vehiculul coboară în sens direct până la Ω > Ω0, iar curentul prin
indus îşi modifică sensul de circulaţie:
UA - EA K ( 0   )
IA   0
RA RA
IA < 0
M = KIA < 0
În consecinţă cuplul electromagnetic îşi schimbă sensul iar efectul este de frânare.
La frânarea în sens direct P = EAIA < 0, deci este cedată în reţea, iar motorul de curent
continuu funcţionează în regim de generator.
La mecanismul de ridicare-coborâre frânarea cu recuperare se realizează la coborârea
greutăţii. Dacă se inversează sensul (polaritatea) tensiunii de alimentare a indusului rezultă Ω’
UA - EA
şi Ω au sensurile inverse, deci I A  0.
'

RA
Prin urmare curentul din indus IA are sens invers, deci M = KI A < 0 are sens invers.
Regimul de funcţionare este de motor cu sens invers.

Frânarea în contracurent

Cuplul rezistent opus de mecanismele de lucru la arborele motorului poate fi de două


tipuri:
a) potenţial (de exemplu: mecanismul de ridicare - coborâre)
b) reactiv (de exemplu: mecanismul de translaţie).

22
a) La mecanismul ridicare – coborâre, frânarea se comandă prin mărirea rezistenţei conectată
în serie cu indusul. Cuplul electromagnetic şi curentul îşi păstrează sensul, dar se inversează
sensul tensiunii electromotoare rezultând:
U  EA
I AF  A
RA  RF
Curentul de frânare IAF scade odată cu creşterea rezistenţei de frânare RF.
b) La mecanismul de tip reactiv frânarea se realizează prin inversarea polarităţii tensiunii U =
UA de alimentare a indusului (rotorului) concomitent cu înserierea unei rezistenţe RF. Frânarea
în contracurent este foarte puternică dar poate produce şocuri în transmisie care periclitează
părţile mecanice ale instalaţiei.

Frânarea dinamică

Indusul se deconectează de la reţea şi se conectează pe o rezistenţă de


frânare RF. Motorul de curent continuu funcţionează în regim de generator, deci
curentul din indus îşi schimbă semnul.
UA - EA K
 IA  
RA  RF RA  RF

Regimul de frânare la motorul de curent continuu cu excitaţie serie

Frânarea cu recuperare de energie

Funcţionarea unui motor de curent continuu cu excitaţie în serie nu poate trece din
cadranul I în cadranul II prin mărirea vitezei pentru a se obţine tensiunea electromotoare E >
U, deoarece odată cu creşterea vitezei cuplul va scădea, deci şi curentul prin indus va scădea,
va scădea şi fluxul de excitaţie, şi tensiunea electromotoare, prin urmare viteza de rotaţie se va
menţine aproximativ constantă. Excitaţia se poate conecta separat la reţea printr-o rezistenţă
tampon sau se poate alimenta de la o sursă de tensiune redusă.
În cazul motorului de curent continuu cu excitaţie mixtă înfăşurarea de excitaţie în
derivaţie permite frânarea cu recuperare. Deoarece curentul prin indus îşi schimbă sensul
înfăşurarea de excitaţie serie va avea acţiune demagnetizantă. În practică se aplică două
soluţii:
a) la frânare se inversează conexiunea bornelor înfăşurării de excitaţie serie;
b) înfăşurarea de excitaţie serie se deconectează de la alimentare;

Frânarea dinamică

Indusul se deconectează de la reţea şi se conectează pe o rezistenţă, iar motorul de


curent continuu trece să funcţioneze în regim de generator. Se aplică două metode:
a) excitaţia rămâne conectată în serie, dar se păstrează sensul curentului în regim de
motor (se inversează legarea bornelor înfăşurării de excitaţie la indus);
b) excitaţia se alimentează separat de la reţea printr-o rezistenţă de limitare a
curentului.

23
Expresia caracteristicii mecanice este:
R A  R Fd
 IA
k

Frânarea în contracurent

Are modalităţi diferite de realizare, după cum sarcina este de tip potenţial sau rezistiv.
a) Pentru sarcini reactive la frânarea în contracurent se schimbă bornele de alimentare ale
indusului, iar sensul fluxului de excitaţie se menţine neschimbat. Rezistenţa RF conectată în
serie cu indusul va limita curentul de frânare. Caracteristica mecanică are ecuaţia:
U R A  R Fd
  I AF
k k
b) Pentru sarcini potenţiale: rezistenţa de frânare este: RF > RF0. Rezistenţa de frânare limită
este rezistenţa pentru care caracteristica mecanică intersectează axa cuplului la M=M R.
Ecuaţia caracteristicii mecanice este:
U RA  RF
  2 2
k k 

24
REGLARE A TURAŢIEI MOTORULUI DE CURENT
CONTINUU

În industrie există maşini care lucrează cu viteză variabilă. Reglajul vitezei maşinii se
realizează de multe ori cu dispozitive mecanice, de exemplu cutii de viteze, dar reglajul prin
variaţia turaţiei motorului este de cele mai multe ori avantajos tehnologic şi economic. Spre
exemplu automatizarea unor procese industriale este foarte greu de conceput cu folosirea
metodelor mecanice de reglaj a vitezei.
Principalele criterii de apreciere a metodei de reglaj a turaţie motoarelor sunt:
1. Intervalul de reglaj;
2. Fineţea reglajului;
3. Economicitatea reglajului;
4. Stabilitatea funcţionării la turaţia dorită;
5. Sensul reglajului;
1. Intervalul de reglaj reprezintă raportul turaţiei maxime şi minime ce se poate obţine
prin metoda abordată.
2. Fineţea reglajului exprimă posibilitatea de a modifica cu valori mici turaţia de lucru.
Astfel la motorul asincron cu inele nu se poate obţine o fineţe prea mare a reglajului cu
rezistenţe în circuitul rotoric, pentru că numărul acestor rezistenţe nu poate fi prea mare.
3. Economicitatea reglajului se referă la cheltuielile necesare punerii în practică a
metodei de reglaj, cât şi la cheltuielile legate de consumul de energie şi întreţinere a
dispozitivelor de reglaj.
4. Stabilitatea reglajului reprezintă capacitatea motorului de a menţine turaţia dorită
atunci când sarcina variază. Acest lucru se exprimă prin factorul:
M
KS 
n
Expresia reprezintă panta caracteristicii mecanice n = f(M), unde M reprezintă
diferenţa între momentul motor şi cel de sarcină pentru o turaţie dată. Dacă presupunem că
momentul de sarcină nu variază prea mult odată cu turaţia, stabilitatea reglajului se poate
aprecia după înclinarea caracteristicii mecanice.
5. Sensul reglajului precizează dacă modificarea turaţiei prin metoda analizată se face
prin creşterea sau scăderea turaţiei faţă de funcţionarea pe caracteristica naturală a motorului.

Reglajul turaţiei mcc cu excitaţie derivaţie

Metodele de reglaj a turaţiei motoarelor de curent continuu cu excitaţie derivaţie sunt:


a) – reglajul cu ajutorul rezistenţelor în circuitul rotoric;
b) – reglajul prin modificarea fluxului;
c) – reglajul prin varierea tensiunii de alimentare;
a) Intervalul de reglaj depinde de valoarea rezistenţelor şi a cuplului de sarcină.
Fineţea nu este prea mare deoarece numărul de rezistenţe ce se pot utiliza este limitat de
obicei 3 – 4. Economicitatea este slabă datorită pierderilor mari de putere pe rezistenţe,
stabilitatea este mică turaţii mici, reglajul vitezei se face în dauna stabilităţii funcţionării,
turaţia poate fi doar micşorată. Caracteristicile mecanice în cazul folosirii rezistenţelor
adiţionale în circuitul rotoric sunt ca în fig. 22.

25
Figura 22. Caracteristicile mecanice ale motorului de curent continuu cu excitaţie derivaţie pentru diferite
rezistenţe Rp înseriate în rotor la tensiune şi flux constant.
b) Metoda de reglaj cu variaţia fluxului este mai avantajoasă sub toate aspectele, dat
fiind că reglajul se face în circuitul de excitaţie unde trece cam a zecea parte din curentul
motorului. Reglajul se face în sensul creşterii turaţiei, dar aceasta nu poate depăşii 1,6 – 2 ori
turaţia nominală, fiind posibilă distrugerea motorului. Caracteristicile mecanice sunt acelea
din fig. 2.2.

Figura 23. Caracteristicile mecanice ale motorului de curent continuu cu excitaţie derivaţie obţinute prin
scăderea curentului statoric pentru tensiunea U constantă şi fără rezistenţe înseriate rotorului
c) Metoda de reglaj prin variaţia tensiunii de alimentare este superioară celorlalte în ce
priveşte intervalul de reglaj, la fineţea şi stabilitatea reglajului apar dificultăţi în asigurarea
sursei de tensiune variabilă. Caracteristicile mecanice sunt de forma unor drepte paralele
aflate sub caracteristica naturală, ca în fig. 24.

26
Figura 24. Caracteristicile mecanice ale mcc cu excitaţie derivaţie

Reglajul turaţiei motorului de curent continuu cu excitaţie serie

Metodele de reglaj a turaţiei motoarelor de curent continuu cu excitaţie serie sunt:


a) – metoda de introducere de rezistenţe înseriate;
b) – metoda variaţiei tensiunii;
c) – şuntarea indusului;
a) În fig.25 sunt trasate caracteristicile mecanice ale motoarelor de curent continuu cu
excitaţie serie, obţinute prin înserierea de rezistenţe. Din punct de vedere al indicatorilor
calităţii, această metodă nu se deosebeşte de reglajul turaţiei motoarelor derivaţie cu ajutorul
rezistenţelor în circuitul rotoric.

Figura 25. Caracteristicile mecanice ale motorului de curent continuu cu excitaţie serie obţinute
introducând rezistenţe în circuitul rotoric
b) Reglarea tensiunii de alimentare a motoarelor serie se face prin legarea lor în serie
sau în paralel la reţea sau prin alimentarea acestora de la o sursă de tensiune reglabilă.
Intervalul de reglaj şi fineţea în această situaţie nu sunt prea bune, însă economicitatea şi
stabilitatea reglajului sunt bune. Caracteristicile mecanice sunt prezentate în fig 26.

27
Figura 26. Caracteristicile mecanice ale mcc serie –variaţiile tensiunii
c) Reglajul turaţiei prin şuntarea indusului produce mărirea fluxului de excitaţie la
momente de sarcini mici.

Figura 27. Caracteristicile mecanice ale mcc prin suntarea indusului


Rs reprezintă o rezistenţă cu posibilitatea modificării valorii acesteia, ea poate lua
valorile Rs1, Rs2, Rs3 etc., (fig.27).
Intervalul de reglaj, fineţea şi economicitatea sunt scăzute deoarece reglajul se face în
curenţi mari. Stabilitatea reglajului este mai bună decât în cadrul folosirii rezistenţelor
înseriate.
Se poate proceda şi la şuntarea excitaţiei prin care se obţin turaţii mai mari decât pe
caracteristica naturală.

28
Figura 28. Reglajul turaţiei motorului serie prin şuntarea excitaţiei
Această metodă are economicitate mai mare dar se sporeşte pericolul atingerii unor
turaţii prea mari, (fig.28).

Sisteme de reglare a vitezei m.c.c. alimentate prin impulsuri

Instalaţiile de reglare automată a vitezei cu limitare de curent sunt realizate pe aceleaşi


principii ca şi instalaţiile cu redresoare comandate, reglarea efectuându-se prin variaţia duratei
relative de conectare a tiristorului principal prin care se alimentează indusul motorului.
Schema de reglare cuprinde (fig.29) un regulator de viteză RW, care primeşte la
intrare tensiunea de referinţă de la potenţiometru P şi tensiunea de reacţie furnizată de
tahogeneratorul T. Curentul iA din circuitul rotoric, măsurat prin şuntul f, este controlat de
regulatorul de curent RI. Reglarea duratei relative de conectare este realizată de generatorul
de tact GT şi de două formatoare de impulsuri FI1 şi FI2.

29
Figura 29. Schema de reglare
Generatorul de tact dă la ieşire impulsuri dreptunghiulare de tensiune, cu perioada T
(fig.30 a) care se aplică formatorului de impulsuri FI 1. Aceasta comandă aprinderea
tiristorului auxiliar de stingere TS ori de câte ori tensiunea uGT începe cu un nou impuls.
Acelaşi dispozitiv FI1 generează şi un semnal de referinţă u r, în formă de dinţi de fierăstrău,
având aceeaşi frecvenţă ca a generatorului de tact. (fig.30 c). Acest semnal este introdus prin
blocul logic BL în formatorul FI2 împreună cu mărimea de comandă uc obţinută de la
regulatorul de curent. Formatorul FI2 produce un impuls de comandă u1 pentru aprinderea
tiristorului principal TP, ori de câte ori semnalul ur este egal cu tensiunea de comandă uc.
(fig.30 d). În felul acesta, prin variaţia semnalului de comandă uc se reglează momentul de
amorsare al tiristorului principal determinând variaţia duratei de conducţie a acestuia şi
obţinerea unor tensiuni dreptunghiulare, cu durată de acţionare reglabilă, care se aplică
indusului motorului. (fig.30 e).

30
Figura 30. Formele de undă ale semnalelor de reglare

31
PROIECTUL TEHNIC

Generalităţi

În figura 31 este prezentată schema de principiu a standului. Acest circuit păstrează


constantă viteza unui motor de curent continuu cu ajutorul unui microcontraller PIC16F874,
chiar dacă sarcina acestuia variază. În circuit, pe lângă motorul principal M1, se mai foloseşte
un motor M2 pe post de generator, care are rolul de a detecta viteza de rotaţie a lui M1.

Figura 31. Păstrarea constantă a vitezei unui motor de curent continuu cu ajutorul microcontrolerului
PIC16F874.

Microcontrollerul are rolul de a compara tensiunea circuitului de intrare, adică


tensiunea dată de motorul M2 cu tensiunea de referinţă. Dacă valoare comparată este mai
mică PIC – ul trimite curent motorului M1 până se ajunge la viteză constantă, iar dacă
valoarea este mai mare PIC – ul scade curentul trimis motorului M1 până viteza devine
constantă
Dacă se doreşte o modificare a vitezei de rotaţie a motorului principal, se reglează
potenţiometrul VR1, astfel se modifică tensiunea circuitului de intrare, adică cea care este
comparată de microcontroller. Prin modificarea acestei tensiuni PIC – ul creşte sau scade
curentul trimis motorului M1 şi astfel se obţine mărirea sau micşorarea vitezei de rotaţie a
motorului principal.

32
Valoarea vitezei de rotaţie a motorului va fi afişată în binar pe cele 8 leduri ale
microcontrollerului. Astfel, dacă motorul nu este pornit toate ledurile sunt stinse, iar dacă
motorul funcţionează la viteză maximă toate ledurile sunt aprinse.
Aprinderea ledurilor începe cu ledul 1 şi creşte odată cu creşterea curentului trimis
motorului principal.

Părţile componente ale schemei

Controlul tensiunii de intrare

Figura 32. Circuitul de intrare


Acesta este circuitul care controlează tensiunea de intrare în PIC, tensiune creată de
rotirea motorului M2. Această tensiune este convertită de un convertor A/D. Modificarea
tensiunii se face PWM de CCP (capture, compare, PWM) şi ajută la controlul funcţionării
motorului.
Tensiunea de intrare în microcontroller se modifică proporţional cu numărul de rotaţii
făcute de motor.
Microcontrollerul controlează curentul electric transmis motorului, astfel dacă
tensiunea de intrare este mare, PIC-ul scade curentul transmis motorului, acesta scade
numărul de rotaţii până se ajunge la viteza dorită. Dacă tensiunea de intrare este mică, PIC-ul
creşte curentul trimis motorului şi astfel creşte numărul de rotaţii ale motorului şi se menţine
constantă viteza la valoarea dorită.
Dioda D1 are un rol protector pentru PIC, mai ales în momentul când tensiunea de
intrare este mare. Din potenţiometrul VR1 se poate modifica numărul de rotaţii ale motorului
astfel dacă potenţiometrul este în poziţia 1 tensiunea de intrare va deveni minimă, iar PIC-ul
creşte curentul transmis motorului pentru a-i păstra constantă viteza, dar de fapt prin creşterea
curentului transmis motorului el măreşte numărul de rotaţii şi astfel măreşte viteza motorului
principal. Dacă potenţiometrul este în poziţia 3 tensiunea de intrare va fi maximă, iar PIC-ul
va scade curentul transmis motorului având acelaşi scop de a păstra viteza constantă, dar de
fapt prin micşorarea curentului transmis motorului el scade numărul de rotaţii şi astfel se
micşorează viteza.

33
Funcţionarea motorului în circuit

Figura 33. Schema de alimentare a motorului


Funcţia PWM este folosită pentru controlarea funcţionării motorului în circuit, control
care se face în funcţie de curentul electric. PWM poate să schimbe durata pulsului de ieşire
din CCP1 în funcţie de date. Când timpul nivelului H al pulsului este scurt, timpul nivelului L
devine lung în tranzistorul 2, adică valoarea curentului electric transmis motorului creşte. În
sens invers, când timpul nivelului H este mare, timpul de deschidere al tranzistorului 2 devine
scurt şi valoarea curentului transmisă motorului scade, (fig.33).
Durata pulsului din CCP1 este controlată în tensiune în funcţie de tensiunea circuitului
de intrare. Când valoarea tensiunii de intrare este mai mare decât valoarea comparată, timpul
nivelului H este mai mare şi astfel numărul de rotaţii ale motorului este micşorat. Când
valoarea tensiunii de intrare este mai mică decât valoarea comparată, timpul nivelului H este
mic şi astfel creşte numărul de rotaţii ale motorului.

Figura 34. Comanda tranzistorilor


Dacă valoarea curentului din motor este mare există gravitatea ca motorul să nu mai
poată detecta viteza. De aceea se pune în circuit un rezistor legat în serie pentru micşorarea
curentului electric.

34
Figura 35. Rezonator de 10 MHz
În circuit se foloseşte un rezonator de 10 MHz, dar acesta nu este direct implicat.

Figura 36. Legarea ledurilor la PIC


Ledurile au rolul să te ţină la curent cu funcţionarea motorului. Trei biţi de rang
superior ai datelor de control PWM sunt folosiţi pentru aprinderea ledurilor.
În condiţia în care motorul nu este pornit, toate ledurile sunt oprite. Numărul de
aprinderi a ledurilor creşte de la ledul 1 o dată cu creşterea curentului. Când motorul ajunge la
turaţie maximă sunt aprinse toate ledurile.

Figura 37. Regulator cu trei terminale


Acest regulator cu trei terminale este folosit pentru operarea tensiunii de intrare în
microcontroller. Aproximativ 70 mA sunt consumaţi când toate ledurile sunt aprinse, adică
motorul funcţionează la turaţie maximă.

Microcontroller PIC16F874

Descriere generală
PIC 16F8XX este un grup în familia microcontrollerelor PIC16CXXX, caracterizat
prin costuri reduse, performanţe înalte, structură de tip CMOS şi operare statică. Toate aceste
microcontrollere folosesc arhitectura de tip RISC (Reduced Instruction Set Computing).

35
Caracteristic pentru această familie este arhitectura internă în care bus-urile de
instrucţiuni şi de date sunt separate, cel de instrucţiuni cu lărgime de 14 biţi, iar cel de date cu
lărgimea de 8 biţi. Această arhitectură permite execuţia într-un singur ciclu maşină al
instrucţiunilor cu excepţia ramurilor de program care necesită două cicluri. Sunt disponibile
un număr total de 35 de instrucţiuni. O altă caracteristică importantă pentru dezvoltarea de
aplicaţii este existenţa a două tipuri de memorie program pentru acelaşi tip de circuit. Primul
tip de memorie este de tip FLASH şi permite scrierea ei de un număr foarte mare de ori,
facilitate utilă în dezvoltarea de aplicaţii. Al doilea tip este o memorie CMOS inscriptibilă o
singură dată, utilă pentru lucrul în serie de produse cu aplicaţie. Caracteristica de bază a
acestui microcontroller este reprogramarea electrică a acestuia de un număr infinit de ori.
Caracteristici principale:
 frecvenţa maxima de operare 20MHz
 memoria program (FLASH) 8KB
 memoria de date (RAM) 368B
 memoria de date EEPROM 256B
 întreruperi 14
 porturi intrare - ieşire 5 (A,B,C,D,E)
 timer-e 3
 module captură / comparare / PWM 2
 interfaţă serială USART, MSSP
 interfaţă paralelă PSP (parallel slave port)
 convertor analog – digital (10biţi) 8 canale de intrare
 set de instrucţiuni 35 instrucţiuni (RISC)
Microcontrollerul conţine o unitate aritmetică logică ALU de 8 biţi şi un registru de lucru.
ALU efectuează funcţii aritmetice şi booleene între datele din registrul de lucru şi oricare alt
registru. Registrul de lucru este notat cu w. Acumulatorul nu este un registru adresabil. În
funcţie de instrucţiunea executată, unitatea aritmetico logică (ALU) afectează valorile biţilor
CARRY (C), DIGIT CARRY (DC) şi ZERO (Z) din registrul de stare (STATUS).
Microcontroller-ul PIC16F874 este disponibil într-o capsulă de 40 pini:

36
Numele Pin Tipul Tipul Descriere
pinului capsu pinul Buffer
lă ui -ului
OSC1\CLKI 13 I ST\CM Intrarea oscilatorului
N OS
OSC2\CLKO 14 O - Ieşirea oscilatorului
UT
MCLR 1 I ST Intrare de iniţializare (reset)
RA0/AN0 2 I/O TTL Poate fi folosit şi ca intrare analogica
(canalul 0)
RA1/AN1 3 I/O TTL Poate fi folosit şi ca intrare analogica
(canalul 1)
RA2/AN2/V 4 I/O TTL Poate fi folosit şi ca intrare analogica
REF- (canalul 2) sau ca referinţă negativă de
tensiune
RA3/AN3/V 5 I/O TTL Poate fi folosit şi ca intrare analogica
REF+ (canalul 3) sau ca referinţă pozitiva de
tensiune
RA4/TOCK1 6 I/O ST Poate fi folosit şi ca intrare de ceas
pentru Timer 0. Ieşirea este de tip open
drain.
RA5/AN4 7 I/O TTL Poate fi folosit şi ca intrare analogica
(canalul 4)
RB0/INT 33 I/O ST/TT Poate fi folosit ca întrerupere externă
L
RB1 34 I/O TTL
RB2 35 I/O TTL
RB3/PGM 36 I/O TTL
RB4 37 I/O TTL Generează o întrerupere la schimbarea
valorii
RB5 38 I/O TTL Generează o întrerupere la schimbarea
valorii
RB6/PGC 39 I/O ST/TT Pin de ceas pentru programarea serială
L a microcontroller-ului.
Generează o întrerupere la schimbarea
valorii
RB7/PGD 40 I/O ST/TT Pin de date pentru programarea serială
L a microcontroller-ului.
Generează o întrerupere la schimbarea
valorii
RC0/T1OSO/ 15 I/O ST Intrare de ceas pentru TIMER1 sau
T1CKI ieşirea oscilatorului TIMER1
RC1/1OSI/C 16 I/O ST Ieşirea oscilatorului TIMER1, intrarea
CP2 de captură 2, ieşirea de comparare 2
sau ieşirea PWM 2
RC2/CCP1 17 I/O ST Intrarea de captură 1, ieşirea de
comparare 1 sau ieşirea PWM 1
RC3/SCK/SC 18 I/O ST Intrare/Ieşire de ceas pentru portul
L serial SPI sau I 2C

37
RC4/SDI/SD 23 I/O ST Intrare de date pentru SPI sau
A intrare/ieşire de date pentru I 2C
RC5/SDO 24 I/O ST Ieşire de date pentru SPI
RC6/TX/CK 25 I/O ST Transmisie asincrona USART sau ceas
pentru modul sincron
RC7/RX/DT 26 I/O ST Recepţie asincrona USART sau date
pentru modul sincron
RD0/PSP0 19 I/O ST/TT Bit 0 de date pentru portul paralel
L
RD1/PSP1 20 I/O ST/TT Bit 1 de date pentru portul paralel
L
RD2/PSP2 21 I/O ST/TT Bit 2 de date pentru portul paralel
L
RD3/PSP3 22 I/O ST/TT Bit 3 de date pentru portul paralel
L
RD4/PSP4 27 I/O ST/TT Bit 4 de date pentru portul paralel
L
RD5/PSP5 28 I/O ST/TT Bit 5 de date pentru portul paralel
L
RD6/PSP6 29 I/O ST/TT Bit 6 de date pentru portul paralel
L
RD7/PSP7 30 I/O ST/TT Bit 7 de date pentru portul paralel
L
RE 0 / RD / AN 58 I/O ST/TT Controlul citirii pentru PSP (portul
L paralel)
Poate fi folosit şi ca intrare analogica
(canalul 5)
RE1 / WR / AN 69 I/O ST/TT Controlul scrierii pentru PSP (portul
L paralel)
Poate fi folosit şi ca intrare analogica
(canalul 6)
RE 2 / CS / AN 7 10 I/O ST/TT CS (cip select) pentru PSP (portul
L paralel)
Poate fi folosit şi ca intrare analogica
(canalul 7)
VSS 12,31 P - masa
VDD 11,32 P - Potenţialul de alimentare +5V
I – intrare; O – ieşire; I/O – intrare/ieşire; TTL – intrare TTL; TS – intrare Trigger Schmitt (cu
histerezis); P – alimentare (power)

38
Schema bloc a microcontroller-ului

39
Figura 38. Structura unui microcontroler

Organizarea memoriei
Memoria acestui microcontroller este împărţită în două părţi:

40
 memoria program
 memoria de date
Fiecare din aceste blocuri de memorie are propriul său bus. Acest lucru permite aducerea
într-un singur ciclu a instrucţiunilor respectiv datelor din memorie.
Memoria de date se împarte în:
 regiştri cu funcţii speciale (SFR)
 memoria RAM generală
 memoria EEPROM
Organizarea memoriei program (FLASH)
PIC16F874 are un PC (“program counter”) de 13 biţi, capabili să adreseze 8kx14
spaţii de memorie program (0000h – 1FFFh),
Vectorul de reset este 0000h şi vectorul de întreruperi este 0004h.

Figura 39. Memoria de date


Observaţie: Adresa instrucţiunilor de salt (GOTO, CALL) este codificată pe 11 biţi. Ceilalţi 2
biţi trebuie setaţi manual (dacă este cazul) în registrul PCLATH.

Organizarea memoriei de date


Descriere generală

41
Memoria de date este organizată în 4 bancuri. Selecţia bancului cu care se lucrează se
face cu ajutorul biţilor RP1 şi RP0, aparţinând registrului STATUS, al regiştrilor SFR. Fiecare
banc este împărţit în două zone: prima zonă este alocată regiştrilor cu funcţiuni speciale
(SFR), în timp ce a doua zonă este alocată regiştrilor cu funcţiuni generale (GFR).

RP1 Banc
RP0
0 0 0
0 1 1
1 0 2
1 1 3
Primele locaţii din fiecare banc sunt rezervate regiştrilor cu funcţii speciale (SFR):
● 00h  1Fh pentru bancul 0 (32octeţi)
● 80h  9Fh pentru bancul 1 (32octeţi)
● 100h  10Fh pentru bancul 2 (16octeţi)
● 180h  18Fh pentru bancul 3 (16octeţi)
Ei sunt folosiţi de PC şi periferice pentru a controla diferite operaţii.
Restul memoriei de date este alocată regiştrilor de uz general:
● 20h  7Fh pentru bancul 0 (96octeţi)
● A0h  EFh pentru bancul 1 (80octeţi)
● 110h  16Fh pentru bancul 2 (96octeţi)
● 190h  1EFh pentru bancul 3 (96octeţi)

Regiştri din memoria de date sunt implementaţi fizic ca memorie RAM statica
(bistabili).

Regiştri cu funcţii speciale

42
Figura 40. Regiştrii

43
Descriere generală a funcţiilor
Adre Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
sa
Bancul 0
00h INDF Folosit pentru adresarea indirecta a memoriei de date cu ajutorul registrului
FSR
01h TMR0 Registrul TIMER0 (8 biţi)
02h PCL Cei mai puţin semnificativi 8 biţi ai PC
03h STATU IRP RP1 RP0 TO PD Z DC C
S
04h FSR Adresarea indirecta a memoriei de date
05h PORTA - - Portul A
06h PORTB Portul B
07h PORTC Portul C
08h PORTD Portul D
09h PORTE - - - - - Portul E
0Ah PCLAT - - - Cei mai semnificativi 5 biţi ai PC
H
0Bh INTCO GIE PEIE T0IE INTE RBIE T0IF INTIF RBIF
N
0Ch PIR1 PSPIF ADIF RCIF TXIF SSPIF CCP1I TMR2 TMR1
F IF IF
0Dh PIR2 - - EEIF BCLIF - - CCP2I
F
0Eh TMR1L Cei mai puţin semnificativi 8 biţi ai registrului TIMER1
0Fh TMR1H Cei mai semnificativi 8 biţi ai registrului TIMER1
10h T1CON - - T1CKP T1CKP T1OS T1SY TMR1 TMR1
S1 S0 CEN NC CS ON
11h TMR2 Registrul TIMER2 (8 biţi)
12h T2CON - TOUT TOUTP TOUTP TOUT TMR2 T2CP T2CP
PS3 S2 S1 PS0 ON S1 S0
13h SSPBU Buffer-ul portului serial sincron
F
14h SSPCO WCO SSPO SSPEN CKP SSPM SSPM SSPM SSPM
N L V 3 2 1 0
15h CCPR1 Captură1 / comparare1 / PWM1 (LSB)
L
16h CCPR1 Captură1 / comparare1 / PWM1 (MSB)
H
17h CCP1C - - CCP1X CCP1Y CCP1 CCP1 CCP1 CCP1
ON M3 M2 M1 M0
18h RCSTA SSPE RX9 SREN CREN ADDE FERR OERR RX9D
N N
19h TXREG Registrul de transmisie USART
1Ah RCREG Registrul de recepţie USART
1Bh CCPR2 Captură2 / comparare2 / PWM2 (LSB)
L
1Ch CCPR2 Captură2 / comparare2 / PWM2 (MSB)
H

44
1Dh CCP2C - - CCP2X CCP2Y CCP2 CCP2 CCP2 CCP2
ON M3 M2 M1 M0
1Eh ADRES Cei mai semnificativi 8 biţi ai rezultatului conversiei A/D
H
1Fh ADCO ADCS ADCS CHS2 CHS1 CHS0 GO - ADO
N0 1 0 N
Bancul 1
80h INDF Folosit pentru adresarea indirecta a memoriei de date cu ajutorul registrului
FSR
81h OPTIO RBPU INTE TOCS TOSE PSA PS2 PS1 PS0
N DG
_REG
82h PCL Cei mai puţin semnificativi 8 biţi ai PC
83h STATU IRP RP1 RP0 TO PD Z DC C
S
84h FSR Adresarea indirecta a memoriei de date
85h TRISA Direcţia datelor prin portul A (intrare/ieşire)
86h TRISB Direcţia datelor prin portul B (intrare/ieşire)
87h TRISC Direcţia datelor prin portul C (intrare/ieşire)
88h TRISD Direcţia datelor prin portul D (intrare/ieşire)
89h TRISE IBF OBF IBOV PSPMO - Direcţia datelor prin
DE portul E (I/O)
8Ah PCLAT - - - Cei mai semnificativi 5 biţi ai PC
H
8bh INTCO GIE PEIE T0IE INTE RBIE T0IF INTIF RBIF
N
8Ch PIE1 PSPIE ADIE RCIE TXIE SSPIE CCP1I TMR2 TMR1
E IE IE
8Dh PIE2 - - EEIE BCLI - - CCP2I
E E
8Eh PCON - - - - - - POR BOR
8Fh - Registru neimplementat fizic
90h - Registru neimplementat fizic
91h SSPCO GCEN ACKS ACKDT ACKE RCEN PEN RSEN SEN
N2 TAT N
92h PR2 Perioadă TIMER 2
93h SSPAD Adresa portului serial sincron (în mod I C )
2

D
94h SSPST SMP CKE D/A P S R/W UA BF
AT
95h - Registru neimplementat fizic
96h - Registru neimplementat fizic
97h - Registru neimplementat fizic
98h TXSTA CSRC TX9 TXEN SYNC - BRGH TRMT TX9D
99h SPBRG Generator “baud rate”
9Ah - Registru neimplementat fizic
9Bh - Registru neimplementat fizic
9Ch - Registru neimplementat fizic
9Dh - Registru neimplementat fizic

45
9Eh ADRES Cei mai puţin semnificativi 8 biţi ai rezultatului conversiei A/D
L
9Fh ADCO ADF - - - PCFG PCFG PCFG PCFG
N1 M 3 2 1 0
Bancul 2
100h INDF Folosit pentru adresarea indirecta a memoriei de date cu ajutorul registrului
FSR
101h TMR0 Registrul TIMER0 (8 biţi)
102h PCL Cei mai puţin semnificativi 8 biţi ai PC
103h STATU IRP RP1 RP0 TO PD Z DC C
S
104h FSR Adresarea indirecta a memoriei de date
105h - Registru neimplementat fizic
106h PORTB Portul B
107h - Registru neimplementat fizic
108h - Registru neimplementat fizic
109h - Registru neimplementat fizic
10A PCLAT - - - Cei mai semnificativi 5 biţi ai PC
h H
10B INTCO GIE PEIE T0IE INTE RBIE T0IF INTIF RBIF
h N
10C EEDAT Registrul de date EEPROM (cei mai puţin semnificativi 8 biţi)
h A
10D EEADR Registrul de adrese EEPROM (cei mai puţin semnificativi 8 biţi)
h
10E EEDAT - - Registrul de date EEPROM (cei mai semnificativi 6
h H biţi)
10Fh EEADR - - - Registrul de adrese EEPROM (cei mai
H semnificativi 5 biţi)
Bancul 3
180h INDF Folosit pentru adresarea indirecta a memoriei de date cu ajutorul registrului
FSR
181h OPTIO RBPU INTE TOCS TOSE PSA PS2 PS1 PS0
N DG
_REG
182h PCL Cei mai puţin semnificativi 8 biţi ai PC
183h STATU IRP RP1 RP0 TO PD Z DC C
S
184h FSR Adresarea indirecta a memoriei de date
185h - Registru neimplementat fizic
186h TRISB Direcţia datelor prin portul B (intrare/ieşire)
187h - Registru neimplementat fizic
188h - Registru neimplementat fizic
189h - Registru neimplementat fizic
18A PCLAT - - - Cei mai semnificativi 5 biţi ai PC
h H
18B INTCO GIE PEIE T0IE INTE RBIE T0IF INTIF RBIF
h N
18C EECON EEPG - - - WRE WRE WR RD

46
h 1 D RR N
18D EECON Registru control EEPROM (nu este un registru fizic)
h 2
18E - Registru neimplementat fizic
h
18Fh - Registru neimplementat fizic
Memoria EEPROM
Microcontroller-ul PIC16F874 are 256B de memorie reprogramabilă electric
(EEPROM). Această memorie este necesară atunci când se doreşte păstrarea unor valori şi
după ce cip-ul nu mai este alimentat, însă are următoarele dezavantaje:
- memoria nu este direct adresabilă, fiind nevoie a se lucra indirect, prin şase regiştri
din SFR (EECON1, EECON2, EEDATA, EEADR, EEDATH, EEADRH).
- are o latenţă mult mai mare decât memoria RAM
Registrul EEDATA păstrează 8 biţi de date pentru citire / scriere, iar registrul EEADR
păstrează adresa de la locaţia EEPROM – ului. La scrierea unui cuvânt în memorie se şterge
automat locaţia şi se scrie noua dată (se va şterge înainte de scriere), iar timpul de scriere este
controlat de un “timer”.
Registrul EECON1 este registru de control cu cinci biţi mai puţini semnificativi,
implementaţi fizic, iar cei mai semnificativi trei biţi, nu există, fiind citiţi ca zero.
Registrul EECON2 nu este un registru fizic. El este utilizat exclusiv în secvenţe de scriere a
memoriei de date EEPROM
Adres Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
a
18Bh INTCON GIE PEI T0IE INTE RBIE T0IF INTI RBIF
E F
18Ch EECON1 EEPG - - - WRER WRE WR RD
D R N
18Dh EECON2 Registru control EEPROM (nu este un registru fizic)
10Ch EEDAT Registrul de date EEPROM (cei mai puţin semnificativi 8 biţi)
A
10Dh EEADR Registrul de adrese EEPROM (cei mai puţin semnificativi 8 biţi)
10Eh EEDAT - - Registrul de date EEPROM (cei mai semnificativi 6
H biţi)
10Fh EEADR - - - Registrul de adrese EEPROM (cei mai
H semnificativi 5 biţi)
0Dh PIR2 - - EEIF BCLIF - - CCP2I
F
8Dh PIE2 - - EEIE BCLIE - - CCP2I
E
Citirea memoriei de date EEPROM
Pentru a citi o locaţie a memoriei de date EEPROM, utilizatorul trebuie să scrie adresa
în registrul EEADR şi apoi să seteze pe 1 bitul RD (EECON1<0>) (RD=1  iniţializarea
citirii în EEPROM). EEDATA va păstra valoarea până la o nouă citire sau până este scrisă de
către utilizator (de-a lungul operaţiei de scriere).
Exemplu:
BCF STATUS, RP0
BSF STATUS, RP1 ;bancul 2 de regiştri
MOVLW adresa ;adresa de la care citesc
MOVWF EEADR

47
BSF STATUS, RP0 ;bancul 3 de regiştri
BCF EECON1, EEPGD
BSF EECON1, RD ;pornesc operaţia de citire din EEPROM
BCF STATUS, RP0 ;bancul 2 de regiştri
MOVF EEDATA, w

Scrierea memoriei de date EEPROM


Pentru a scrie o locaţie a memoriei de date EEPROM, utilizatorul trebuie să scrie
adresa în registrul EEADR şi data în registrul EEDATA. Apoi utilizatorul trebuie să urmeze
nişte secvenţe speciale pentru a iniţializa, scrierea, pentru fiecare bit.
Exemplu:
BSF STATUS, RP0
BSF STATUS, RP1 ;bancul 3 de regiştri
TEST
BTFSC EECON1, WR ;aştept sa se încheie ciclul anterior de scriere
GOTO TEST
BCF STATUS, RP0 ;bancul 2 de regiştri
MOVF adresa_eeprom, w
MOVWF EEADR
MOVF data_eeprom, w
MOVWF EEDATA
BSF STATUS, RP0 ;bancul 3 de regiştri
BCF EECON1, EEPGD
BSF EECON1, WREN
MOVLW 0x55
MOVWF EECON2
MOVLW 0xAA
MOVWF EECON2
BSF EECON1, WR
BCF EECON1, WREN
BCF STATUS, RP0
BCF STATUS, RP1 ;bancul 0 de regiştri

Observaţie: adresa_eeprom şi data_eeprom sunt doi regiştri de uz general din bancul 2 unde
scriu adresa, respectiv data care trebuie scrisă în memoria EEPROM.
Porturile de intrare / ieşire
PIC16F874 are cinci porturi: PORTA, PORTB, PORTC, PORTD şi PORTE

PORT A
PORTA este bidirecţional şi are 6 biţi. Selectarea intrare/ieşire se face setând respectiv
resetând în registrul TRISA biţii corespunzători portului. Intrările portului A, cu excepţia
RA4, pot fi configurate şi ca intrări analogice, portul A fiind asociat cu un convertor analog -
digital.
Funcţionarea portului A:
Numele pinului Pi Tip Tip Descriere
n pin Buffer
RA0/AN0 2 I/O TTL Poate fi folosit şi ca intrare analogica
(canalul0)
RA1/AN1 3 I/O TTL Poate fi folosit şi ca intrare analogica

48
(canalul1)
RA2/AN2/VREF- 4 I/O TTL Poate fi folosit şi ca intrare analogica
(canalul2) sau ca referinţă negativă de
tensiune
RA3/AN3/VREF 5 I/O TTL Poate fi folosit şi ca intrare analogica
+ (canalul3) sau ca referinţă pozitiva de
tensiune
RA4/TOCK1 6 I/O ST Poate fi folosit şi ca intrare de ceas pentru
Timer 0. Ieşirea este de tip open drain.
RA5/AN4 7 I/O TTL Poate fi folosit şi ca intrare analogica
(canalul4)

Regiştri asociaţi portului A:


Adres Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
a
05h PORTA - - Portul A
85h TRISA - - Direcţia datelor prin portul A (intrare/ieşire)
9Fh ADCON ADF - - - PCFG3 PCFG2 PCFG PCFG0
1 M 1

Exemplu:
CLRF PORTA; iniţializarea portului A
BSF STATUS, RP0; selectăm bancul 1
MOVLW 0X0F; w  00001111
MOVWF TRISA ; setăm RA<3 :0> ca fiind intrări şi RA<5 :4>; ca fiind ieşire.
Întotdeauna TRISA< 7: 5 > sunt ;citite ca fiind pe zero.
PORT B
PORTB este un port bidirecţional pe 8 biţi. Registrul corespunzător direcţiei datelor
este TRISB. Un 1 pe oricare din biţii registrului TRISB, pune ieşirea corespunzătoare în
modul de lucru de înaltă impedanţă, setând bitul ca bit de intrare. Intrarea este de nivel TTL,
iar ieşirea de tip CMOS. Biţii RB4  RB7 pot genera întreruperi la schimbarea stării.
Funcţionarea portului B:
Numele Pin Tip pin Tip Descriere
pinului Buffer
RB0/INT 33 I/O ST/TTL Poate fi folosit ca întrerupere externă
RB1 34 I/O TTL
RB2 35 I/O TTL
RB3/PG 36 I/O TTL
M
RB4 37 I/O TTL Generează o întrerupere la schimbarea valorii
RB5 38 I/O TTL Generează o întrerupere la schimbarea valorii
RB6/PGC 39 I/O ST/TTL Pin de ceas pentru programarea serială a
microcontroller-ului.
Generează o întrerupere la schimbarea valorii
RB7/PGD 40 I/O ST/TTL Pin de date pentru programarea serială a
microcontroller-ului.
Generează o întrerupere la schimbarea valorii
Regiştri asociaţi portului B:
Adres Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit Bit 2 Bit 1 Bit 0

49
a 3
06h PORTB Portul B
86h TRISB Direcţia datelor prin portul B (intrare/ieşire)
81h OPTIO RBPU INTED TOC TOS PSA PS2 PS1 PS0
N G S E
_REG

PORT C
PORTC este un port bidirecţional pe 8 biţi. Registrul corespunzător direcţiei datelor este
TRISC. Un 1 pe oricare din biţii registrului TRISC, pune ieşirea corespunzătoare în modul de
lucru de înaltă impedanţă, setând bitul ca bit de intrare.

Funcţionarea portului C:
Numele pinului Pi Tip Tip Descriere
n pin Buffer
RC0/T1OSO/T1CK 15 I/O ST Intrare de ceas pentru TIMER1 sau ieşirea
I oscilatorului TIMER1
RC1/1OSI/CCP2 16 I/O ST Ieşirea oscilatorului TIMER1, intrarea de
captură 2, ieşirea de comparare 2 sau ieşirea
PWM 2
RC2/CCP1 17 I/O ST Intrarea de captură 1, ieşirea de comparare 1
sau ieşirea PWM 1
RC3/SCK/SCL 18 I/O ST Intrare/Ieşire de ceas pentru portul serial SPI
sau I 2C
RC4/SDI/SDA 23 I/O ST Intrare de date pentru SPI sau intrare/ieşire de
date pentru I 2C
RC5/SDO 24 I/O ST Ieşire de date pentru SPI
RC6/TX/CK 25 I/O ST Transmisie asincrona USART sau ceas pentru
modul sincron
RC7/RX/DT 26 I/O ST Recepţie asincrona USART sau date pentru
modul sincron
Regiştri asociaţi portului C:
Adres Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
a
07h PORT Portul C
C
87h TRISC Direcţia datelor prin portul C (intrare/ieşire)

PORT D
PORTD este un port bidirecţional pe 8 biţi. Registrul corespunzător direcţiei datelor este
TRISD. Un 1 pe oricare din biţii registrului TRISD, pune ieşirea corespunzătoare în modul de
lucru de înaltă impedanţă, setând bitul ca bit de intrare. Portul D poate fi folosit şi ca port
paralel.
Funcţionarea portului D:
Numele Pin Tip pin Tip Descriere
pinului Buffer
RD0/PSP0 19 I/O ST/TTL Bit 0 de date pentru portul paralel
RD1/PSP1 20 I/O ST/TTL Bit 1 de date pentru portul paralel

50
RD2/PSP2 21 I/O ST/TTL Bit 2 de date pentru portul paralel
RD3/PSP3 22 I/O ST/TTL Bit 3 de date pentru portul paralel
RD4/PSP4 27 I/O ST/TTL Bit 4 de date pentru portul paralel
RD5/PSP5 28 I/O ST/TTL Bit 5 de date pentru portul paralel
RD6/PSP6 29 I/O ST/TTL Bit 6 de date pentru portul paralel
RD7/PSP7 30 I/O ST/TTL Bit 7 de date pentru portul paralel

Regiştri asociaţi portului D:


Adres Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
a
08h PORT Portul D
D
88h TRISD Direcţia datelor prin portul D (intrare/ieşire)
89h TRISE IBF OBF IBOV PSPMOD - Direcţia datelor prin
E portul E (I/O)

PORT E
PORTE este un port bidirecţional pe 3 biţi. Registrul corespunzător direcţiei datelor este
TRISE. Un 1 pe oricare din biţii registrului TRISE, pune ieşirea corespunzătoare în modul de
lucru de înaltă impedanţă, setând bitul ca bit de intrare. Portul E poate fi folosit şi ca port de
control atunci când portul D este folosit ca port paralel.

Funcţionarea portului E:
Numele Pin Tip pin Tip Descriere
pinului Buffer
RE 0 / RD / AN 5 8 I/O ST/TTL Controlul citirii pentru PSP (portul paralel)
Poate fi folosit şi ca intrare analogica
(canalul5)
RE1 / WR / AN 6 9 I/O ST/TTL Controlul scrierii pentru PSP (portul
paralel)
Poate fi folosit şi ca intrare analogica
(canalul6)
RE 2 / CS / AN 7 10 I/O ST/TTL CS (cip select) pentru PSP (portul paralel)
Poate fi folosit şi ca intrare analogica
(canalul7)

Regiştri asociaţi portului E:


Adres Nume Bit 7 Bit Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
a 6
09h PORTE - - - - - Portul E
89h TRISE IBF OB IBO PSPMOD - Direcţia datelor prin
F V E portul E (I/O)
9Fh ADCON ADF - - - PCFG PCFG PCFG PCFG
1 M 3 2 1 0

Timer-e
PIC16F874 are 3 timer-e:  Timer0
 Timer1

51
 Timer2
Timer0
 numărător \ cronometru pe 8 biţi (registrul TMR0)
 poate fi scris şi citit
 asociat cu un divizor programabil pe 8 biţi (1 - 256)
 sursa de tact internă (CLKOUT sau WDT) sau externă (oscilator extern)
 generează o întrerupere la trecerea de la FFh la 00h
 atunci când se lucrează cu un oscilator extern se poate selecta tranziţia pe front
pozitiv sau pe front negativ
Regiştri asociaţi cronometrului Timer0:
Adres Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
a
0Bh INTCO GIE PEIE T0IE INTE RBIE T0IF INTIF RBIF
N
81h OPTIO RBPU INTED TOC TOS PSA PS2 PS1 PS0
N G S E
_REG
01h TMR0 Registrul TIMER0 (8 biţi)
Timer1
 numărător \ cronometru pe 16 biţi (TMR1H şi TMR1L)
 poate fi scris şi citit
 asociat cu un divizor programabil (1,2,4,8)
 sursa de tact internă (fosc/4) sau externă (oscilator extern conectat la RC1,RC2)
 poate genera o întrerupere la trecerea de la FFFFh la 0000h

Regiştri asociaţi cronometrului Timer1:


Adres Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
a
0Bh INTCO GIE PEIE T0IE INTE RBIE T0IF INTIF RBIF
N
0Ch PIR1 PSPIF ADIF RCIF TXIF SSPI CCP1I TMR2IF TMR1IF
F F
8Ch PIE1 PSPIE ADIE RCIE TXIE SSPI CCP1I TMR2I TMR1IE
E E E
0Eh TMR1L Cei mai puţin semnificativi 8 biţi ai registrului TIMER1
0Fh TMR1H Cei mai semnificativi 8 biţi ai registrului TIMER1
10h T1CON - - T1CKPS T1CKPS T1OSCE T1SYN TMR1C TMR1O
1 0 N C S N

Timer2
 cronometru pe 8 biţi (registrul TMR2)
 poate fi scris şi citit
 asociat cu un divizor programabil (1,4,16)
 sursa de tact internă (fosc/4)
 poate fi folosit ca bază de timp pentru modulul PWM
 asociat cu un registru care îi stabileşte perioada de resetare (PR2)
 poate genera o întrerupere la 116 perioade

52
Regiştri asociaţi cronometrului Timer2:
Adresa Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
0Bh INTCO GIE PEIE T0IE INTE RBIE T0IF INTIF RBIF
N
0Ch PIR1 PSPIF ADIF RCIF TXIF SSPIF CCP1 TMR TMR1
IF 2IF IF
8Ch PIE1 PSPIE ADIE RCIE TXIE SSPIE CCP1 TMR TMR1
IE 2IE IE
11h TMR2 Registrul TIMER2 (8 biţi)
12h T2CO - TOUT TOUT TOUT TOUT TMR T2CP T2CP
N PS3 PS2 PS1 PS0 2ON S1 S0
92h PR2 Perioadă TIMER 2

Modulul de generare a tensiunii PWM


PWM = Pulse Width Modulation (modularea impulsurilor în durată).
Microcontroller-ul generează o tensiune dreptunghiulară a cărei valoare medie este
proporţională cu factorul de umplere
Umed =5V ∙ Fu
PIC16F874 are doua module PWM identice. Tensiunea de ieşire poate avea o
rezoluţie de pana la 10 biţi.

Figura 41. Structură-funcţionare


Perioada PWM = [(PR2)+1]*4*[valoarea divizorului asociat cu Timer2]
Frecvenţa PWM = 1/ Perioada PWM
Atunci când sunt folosite ambele module PWM tensiunile de ieşire vor avea aceeaşi
frecvenţă.
Regiştri asociaţi modulului PWM:
Adr Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
esa
0Bh INTC GIE PEIE T0IE INT RBIE T0IF INTIF RBIF

53
ON E
0Ch PIR1 PSPI ADI RCIF TXI SSPIF CCP1I TMR2 TMR1
F F F F IF IF
8Ch PIE1 PSPI ADI RCIE TXI SSPIE CCP1I TMR2 TMR1
E E E E IE IE
11h TMR2 Registrul TIMER2 (8 biţi)
12h T2CO - TOUT TOUT TOUT TOUT TMR T2CP T2CP
N PS3 PS2 PS1 PS0 2ON S1 S0
92h PR2 Perioadă TIMER 2
8Dh PIE2 - - EEIE BCLI - - CCP2I
E E
0Dh PIR2 - - EEIF BCLI - - CCP2I
F F
15h CCPR Captură1 / comparare1 / PWM1 (LSB)
1L
16h CCPR Captură1 / comparare1 / PWM1 (MSB)
1H
17h CCP1 - - CCP1 CCP1 CCP1 CCP1 CCP1 CCP1
CON X Y M3 M2 M1 M0
1Bh CCPR Captură2 / comparare2 / PWM2 (LSB)
2L
1Ch CCPR Captură2 / comparare2 / PWM2 (MSB)
2H
1Dh CCP2 - - CCP2 CCP2 CCP2 CCP2 CCP2 CCP2
CON X Y M3 M2 M1 M0
87h TRIS Direcţia datelor prin portul C (intrare/ieşire)
C

Portul serial. Modulul USART


(Universal Synchronus Asynchronus Reciever Transmitter)
USART, cunoscut şi ca ”interfaţă serială de comunicaţie” (SCI), poate fi configurat în trei
moduri:
 mod asincron full duplex
 mod sincron master half duplex
 mod sincron slave half duplex

Modul asincron
În acest mod USART foloseşte un format standard al datelor: un bit de start, 8 sau 9
biţi de date şi un bit de stop. Cel mai uzual format este cel cu 8 biţi de date.
Transmisia începe cu cal mai puţin semnificativ bit (LSB). Partea de transmisie
funcţionează independent faţă de partea de recepţie, dar lucrează la aceeaşi viteză.
Modul asincron se selectează prin ştergerea bitului SYNC (TXSTA <4>)

Modulul de transmisie asincronă


Partea principală a acestui modul este registrul paralel – serie TSR (transmit shift register).
Acest registru primeşte datele de la registrul TXREG care este încărcat prin program. După ce
datele au fost transferate din TXREG în TSR circuitul poate genera o întrerupere.
Transmisia este validată prin setarea bitului TXEN (TXSTA <5>).

54
Schema bloc

Figura 42. Schema explicativă


Regiştri asociaţi transmisiei asincrone
Adr Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
esa
0Bh INTC GIE PEIE T0IE INTE RBI T0IF INTIF RBIF
ON E
0Ch PIR1 PSPI ADI RCIF TXIF SSPI CCP1I TMR2 TMR1
F F F F IF IF
18h RCST SSP RX9 SREN CREN AD FERR OERR RX9D
A EN DEN
19h TXRE Registrul de transmisie USART
G
8Ch PIE1 PSPI ADI RCIE TXI SSPIE CCP1I TMR2 TMR1
E E E E IE IE
98h TXST CSR TX9 TXEN SYN - BRGH TRMT TX9D
A C C
99h SPBR Generator “baud rate”
G

Modulul de recepţie asincronă


Datele sunt recepţionate prin pinul RC7 în blocul de recuperare care este un registru
serie - paralel de mare viteză.
Partea principală a modulului de recepţie este registrul RSR. După eşantionarea bitului de
stop datele sunt transferate în registrul RCREG.
Recepţia este validată prin setarea bitului CREN (RCSTA <4>)
Schema bloc

55
Figura 43. Schema bloc

Regiştri asociaţi recepţiei asincrone


Adr Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
esa
0Bh INTC GIE PEIE T0IE INTE RBI T0IF INTIF RBIF
ON E
0Ch PIR1 PSPI ADI RCIF TXIF SSPI CCP1I TMR2 TMR1
F F F F IF IF
18h RCST SSP RX9 SREN CREN - FERR OERR RX9D
A EN
1Ah RCRE Registrul de recepţie USART
G
8Ch PIE1 PSPI ADI RCIE TXI SSPIE CCP1I TMR2 TMR1
E E E E IE IE
98h TXST CSR TX9 TXEN SYN - BRGH TRMT TX9D
A C C
99h SPBR Generator “baud rate”
G

Regiştri pentru starea vitezei de comunicare


Adr Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
esa
98h TXST CSR TX9 TXEN SYNC - BRGH TRMT TX9D
A C
99h SPBR Generator “baud rate”
G

Setarea vitezei de comunicare pentru Fosc = 4MHz


BRGH BAUD SPBRG Eroare
RATE %
(K)

56
0,3 207 0
1,2 51 0,17
2,4 25 0,17
9,6 6 6,99
0 19,2 2 8,51
28,8 1 8,51
33,6 - -
57,6 0 8,51
0,3 - -
1,2 207 0,17
2,4 103 0,17
9,6 25 0,16
1 19,2 12 0,16
28,8 8 3,55
33,6 6 6,29
57,6 3 8,51

Întreruperi
PIC16F874 are 14 surse de întrerupere:
 întrerupere externă (RB0/INT)
 întrerupere Timer0
 întrerupere Timer1
 întrerupere Timer2
 întrerupere la schimbarea valorii de intrare (PORTB<7:4>)
 întrerupere la scriere EEPROM
 întrerupere generată de portul paralel
 întrerupere generată de convertorul analog – numeric
 întrerupere generată de modulul de transmisie serială asincronă
 întrerupere generată de modulul de recepţie serială asincronă
 întrerupere generată de portul serial sincron
 întrerupere generată de modulul CPP1
 întrerupere generată de modulul CPP2
 întrerupere generată la o eroare pe bus-ul de date

Regiştri folosiţi pentru controlul întreruperilor


Adr Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
esa
0Bh INTC GIE PEIE T0IE INTE RBI T0IF INTIF RBIF
ON E
0Ch PIR1 PSPI ADI RCIF TXIF SSPI CCP1I TMR2 TMR1
F F F F IF IF
0Dh PIR2 - - EEIF BCL - - CCP2I
IF F
8Ch PIE1 PSPI ADI RCIE TXIE SSPI CCP1I TMR2 TMR1
E E E E IE IE
8Dh PIE2 - - EEIE BCL - - CCP2I
IE E
81h OPTI RBPU INT TOCS TOSE PSA PS2 PS1 PS0

57
ON EDG
_REG

Schema bloc

Figura 44. Schema logică


Oscilatorul
Tipuri de oscilatoare
PIC16F874 poate lucra în patru moduri diferite, de oscilaţie:
 LP “LOW POWER CRISTAL”
 XT “CRYSTAL / RESONATOR”
 HS “HIGH SPEED CRYSTAL / RESONATOR”
 RS “RESISTOR / CAPACITOR”
Selectarea unuia din cele patru moduri se face prin setarea celor doi biţi de
configuraţie FOSC1 şi FOSC2 .
Oscilatorul cu cristal de cuarţ
Oscilatorul de mare viteză HS se conectează intre OSC1/CLKIN şi
OSC2/CLKOUT

Figura 45.

58
Figura 46.
Programarea microcontroller-ului PIC16F874
Pentru scrierea programului în microcontroller este nevoie o interfaţă hardware
specializată şi o interfaţă software care să o controleze. Interfaţa hardware se conectează la
calculator (PC), în funcţie de tipul ei, pe un port serial, paralel sau USB. Ca interfaţă software
se foloseşte un program specializat (Pony Prog, PICSTART Plus, PRO MATE 2, etc.).
Setul de instrucţiuni
Microcontroller-ul PIC16F874 poate fi programat folosind un set de 35
de instrucţiuni (limbaj de asamblare). Fiecare instrucţiune este codificată pe 14
biţi.
Cele 35 de instrucţiuni se împart în 3 categorii:
 instrucţiuni la nivel de octet (byte)
 instrucţiuni la nivel de bit
 instrucţiuni literale şi de control
Instrucţiunea Descriere
Instrucţiuni la nivel de octet
ADDWF f,d w + f → d (destinaţie)
ANDWF f,d w & f → d (destinaţie)
CLRF f Şterge f
CLRW Şterge acumulatorul (w)
COMF f,d Complementul lui f → d (destinaţie)
DECF f,d f -1 → d (destinaţie)
DECFSZ f,d f -1 → d (destinaţie) daca nu rezultă 0
INCF f,d f +1 → d (destinaţie)
INCFSZ f,d f +1 → d (destinaţie) daca nu rezultă 0
IORWF f,d w sau f → d (destinaţie)
MOVF f,d f → d (destinaţie)
MOVWF f w→f
NOP f,d Nici o operaţie (întârziere)
RLF f,d Roteşte spre stânga registrul f → d (destinaţie)
RRF f,d Roteşte spre dreapta registrul f → d (destinaţie)
SUBWF f,d f – w → d (destinaţie)
SWAPF f,d f<3;0>→ d<7;4> şi f<7;4>→ d<3;0>

59
XORWF f,d w sau exclusiv f → d (destinaţie)
Instrucţiuni la nivel de bit
BCF f,b Şterge bitul b al registrului f (0→ f<b> )
BSF f,b Setează bitul b al registrului f (1→ f<b> )
BTFSC f,b Sare o instrucţiune dacă f<b>=0
BTFSS f,b Sare o instrucţiune dacă f<b>=1
Instrucţiuni literale şi de control
ADDLW k w+k→w
ANDLW k w&f →w
CALL k Cheamă subrutina k
CLRWDT - Şterge watchdog timer
GOTO k Salt necondiţionat la k
IORLW k w sau k → w
MOVLW k k→w
RETFIE - Revenire din întrerupere
RETLW k Revenire din întrerupere şi k → w
RETURN - Revenire din subrutină
SLEEP - Standby
SUBLW k k–w →w
XORLW k w sau exclusiv k → w
d=0 → destinaţia este w
d=1 → destinaţia este f

60
ALGORITMUL DE PROGRAMARE

Schema algoritmului

Figura 47. Schema algoritmului de programare


Explicarea algoritmului de programare
Se setează tipul procesorului cu directiva LIST (exemplu p = pic 16F874), iar funcţiile
standard ale procesorului sunt citite cu directiva INCLUDE.
Configurarea procesorului se face prin directiva CONFIG.
La microcontrolerul pic 16F874 registrul de funcţii speciale (SFR) este divizat în patru
bank – uri de memorie. Eliminarea alertelor de selectare a bank – urilor de memorie se face
prin error level.
Există funcţii speciale care sunt comune unor anumite bank – uri, dar există şi funcţii
speciale care sunt specifice numai unui bank de memorie.

61
Selectarea bank – urilor de memorie se realizează prin selectarea biţilor RP0 şi RP1
din registrul STATUS. Chiar dacă specificarea bank – urilor în registrul STATUS este realizată
corect mesajul de specificare a bank – lui este afişat.
Definirea etichetelor
În programul nostru sunt definite trei etichete: speed (viteză); change (schimbare);
led.
Prima etichetă speed este valoarea de referinţă a vitezei. Este controlată de valoarea
obţinută din conversia analog – numerică a tensiunii date de circuitul de intrare.
Eticheta change – memorează rezultatul comparării tensiunii circuitului de intrare cu
tensiune de control a motorului (tensiunea de referinţă). În funcţie de această valoare se
modifică valoarea registrului CCPR1 (registru care controlează funcţia PWM).
Compararea dintre semnalul circuitului de intrare şi cel de referinţă se realizează la
fiecare 10 ms.
Când se sesizează o diferenţă între valoarea tensiunii de control şi cea de intrare,
valoarea care a fost specificată de change este adunată sau scăzută din valoarea ciclului
PWM.
Variabila led are rolul de a afişa în binar valoarea vitezei de rotaţie a motorului şi de a
te ţine la curent cu funcţionarea motorului.
Program start
Instrucţiunea este executată de la adresa 0 din memoria program când pic – ul este
alimentat cu tensiune. Când apare o întrerupere procesul începe de la adresa 4. Fiecare salt în
program se face cu instrucţiunea goto.
Procesul de iniţializare
Procesul de iniţializare se realizează la pornire
Iniţializarea porturilor A, B şi C
Se foloseşte primul pin din portul A ca intrare analogică (RA0). Ceilalţi pini sunt setaţi
ca ieşiri pentru a evita influenţa altor porturi de intrare.
Portul B este setat ca ieşire pentru controlul ledurilor.
Portul C este setat ca ieşire pentru realizarea comparării dintre valoarea tensiunii de
intrare şi valoarea de referinţă.
Iniţializarea conversiei A/D
Deoarece frecvenţa este de 10 MHz dată de rezonator, rezultă că frecvenţa
convertorului A/D este setată la 10 MHz/32.
Un canal de intrare este setat la AN0. rezultatul conversiei este setat la stânga pentru a
lua cei mai semnificativi 8 biţi.
Iniţializare PWM
Registrul CCP1 este folosit pentru modulul PWM. Acest registru păstrează valoarea
dată de variabila change, adică valoarea care măreşte sau micşorează mărimea pulsului.
Iniţializarea modului de comparare
Registrul CCP2 este folosit pentru comparare celor două semnale şi generează
întreruperi periodice (o dată la 10 ms).
Iniţializarea întreruperilor
Datorită setării bitului de validare a întreruperii din registrul CCP2 este posibilă
realizarea întreruperii.
Se termină procesul de iniţializare.
Procesul de întrerupere
În momentul în care se realizează o întrerupere se setează flegul de întrerupere pe zero
pentru a nu mai putea intra o altă întrerupere până nu este terminată aceasta.
Se aşteaptă până procesul de conversie A/D este complet. Conversia începe simultan
cu apariţia întreruperii.

62
Compararea cu tensiunea de referinţă
Când conversia A/D s-a terminat cei mai semnificativi 8 biţi ai rezultatului sunt
comparaţi cu valoarea de referinţă a vitezei. Se obţine un rezultat care poate fi mai mare sau
mai mic decât valoarea comparată.
Procesul de încetinire a vitezei
Dacă rezultatul obţinut este mai mare microcontrolerul scade curentul trimis motorului
şi astfel se micşorează viteza.
Procesul de mărire a vitezei
Dacă rezultatul obţinut în urma comparării este mai mic, microcontrolerul creşte
curentul transmis motorului şi astfel se realizează creşterea vitezei.
Ambele decizii, atât cea de creştere a vitezei cât şi cea de micşorare sunt luate de
variabila change.
Controlul ledurilor
Dacă motorul nu este alimentat toate ledurile sunt oprite. Aprinderea ledurilor începe
de la ledul 1 spre ultimul led odată cu creşterea curentului transmis motorului.
Procesul de terminare a întreruperii
Sfârşitul procesului de întrerupere se realizează cu instrucţiunea RETFIE.
La sfârşitul programului se pune instrucţiunea END.

Programul
list p=pic16f874
include p16f874.inc
__config _HS_OSC & _WDT_OFF & _PWRTE_ON & _LVP_OFF
errorlevel -302 ;Suppress bank warnin;
Label Definition
speed equ d'8' ;Reference speed (5x8/256=0.156V)
change equ d'1' ;Change value (2mV/ms)
led equ h'20' ;LED control data save area;
Program Start
org 0 ;Reset Vector
goto init
org 4 ;Interrupt Vector
goto int; Initial Process init;
Port initialization
bsf STATUS,RP0; Change to Bank1
movlw b'00000001' ; AN0 to input mode
movwf TRISA; Set TRISA register
clrf TRISB; Set TRISB to uotput mode
clrf TRISC; Set TRISC to output mode
bcf STATUS,RP0; Change to Bank0
; A/D converter initialization
movlw b'10000001' ;ADCS=10 CHS=AN0 ADON=ON
movwf ADCON0 ;Set ADCON0 register
bsf STATUS,RP0 ;Change to Bank1
movlw b'00001110' ;ADFM=0 PCFG=1110
movwf ADCON1 ;Set ADCON1 register
bcf STATUS,RP0 ;Change to Bank0
; PWM initialization
clrf TMR2 ;Clear TMR2 register

63
movlw b'11111111' ;Max duty (low speed)
movwf CCPR1L ;Set CCPR1L register
bsf STATUS,RP0 ;Change to Bank1
movlw d'255' ;Period=1638.4usec(610Hz)
movwf PR2 ;Set PR2 register
bcf STATUS,RP0 ;Change to Bank0
movlw b'00000110' ;Pst=1:1 TMR2=ON Pre=1:16
movwf T2CON ;Set T2CON register
movlw b'00001100' ;CCP1XY=0 CCP1M=1100(PWM)
movwf CCP1CON ;Set CCP1CON register
; Compare mode initialization
clrf TMR1H ;Clear TMR1H register
clrf TMR1L ;Clear TMR1L register
movlw h'61' ;H'61A8'=25000
movwf CCPR2H ;Set CCPR2H register
movlw h'a8' ;25000*0.4usec = 10msec
movwf CCPR2L ;Set CCPR2L register
movlw b'00000001' ;Pre=1:1 TMR1=Int TMR1=ON
movwf T1CON ;Set T1CON register
movlw b'00001011' ;CCP2M=1011(Compare)
movwf CCP2CON ;Set CCP2CON register
; Interruption control
bsf STATUS,RP0 ;Change to Bank1
movlw b'00000001' ;CCP2IE=Enable
movwf PIE2 ;Set PIE2 register
bcf STATUS,RP0 ;Change to Bank0
movlw b'11000000' ;GIE=ON PEIE=ON
movwf INTCON ;Set INTCON register
wait
goto $ ;Interruption wait
; Interruption Process
int
clrf PIR2 ;Clear interruption flag
ad_check
btfsc ADCON0,GO ;A/D convert end ?
goto ad_check ;No. Again
movfw ADRESH ;Read ADRESH register
sublw speed ;Ref speed - Detect speed
btfsc STATUS,C ;Reference < Detect ?
goto check1 ;No. Jump to > or = check

;--- control to low speed ---


movfw CCPR1L ;Read CCPR1L register
addlw change ;Change value + CCPR1L
btfss STATUS,C ;Overflow ?
movwf CCPR1L ;No. Write CCPR1L
goto led_cont ;Jump to LED control

check1
btfsc STATUS,Z ;Reference = Detect ?

64
goto led_cont ;Yes. Jump to LED control
;--- control to fast speed ---
movlw change ;Set change value
subwf CCPR1L,f ;CCPR1L - Change value
btfsc STATUS,C ;Underflow ?
goto led_cont ;Jump to LED control
clrf CCPR1L ;Set fastest speed

; LED control Process


led_cont
comf CCPR1L,w ;Complement CCPR1L bit
movwf led ;Save LED data
movlw b'00010000' ;Set compare data
subwf led,w ;LED - data
btfsc STATUS,C ;Under ?
goto led1 ;No.
movlw b'00000000' ;Set LED control data
goto int_end ;Jump to interrupt end
led1 movlw b'00100000' ;Set compare data
subwf led,w ;LED - data
btfsc STATUS,C ;Under ?
goto led2 ;No.
movlw b'00000001' ;Set LED control data
goto int_end ;Jump to interrupt end
led2 movlw b'01000000' ;Set compare data
subwf led,w ;LED - data
btfsc STATUS,C ;Under ?
goto led3 ;No.
movlw b'00000011' ;Set LED control data
goto int_end ;Jump to interrupt end
led3 movlw b'01100000' ;Set compare data
subwf led,w ;LED - data
btfsc STATUS,C ;Under ?
goto led4 ;No.
movlw b'00000111' ;Set LED control data
goto int_end ;Jump to interrupt end
led4 movlw b'10000000' ;Set compare data
subwf led,w ;LED - data
btfsc STATUS,C ;Under ?
goto led5 ;No.
movlw b'00001111' ;Set LED control data
goto int_end ;Jump to interrupt end
led5 movlw b'10100000' ;Set compare data
subwf led,w ;LED - data
btfsc STATUS,C ;Under ?
goto led6 ;No.
movlw b'00011111' ;Set LED control data
goto int_end ;Jump to interrupt end
led6 movlw b'11000000' ;Set compare data
subwf led,w ;LED - data

65
btfsc STATUS,C ;Under ?
goto led7 ;No.
movlw b'00111111' ;Set LED control data
goto int_end ;Jump to interrupt end
led7 movlw b'11100000' ;Set compare data
subwf led,w ;LED - data
btfsc STATUS,C ;Under ?
goto led8 ;No.
movlw b'01111111' ;Set LED control data
goto int_end ;Jump to interrupt end
led8 movlw b'11111111' ;Set LED control data

END of Interruption Process


int_end
movwf PORTB ;Set PROTB
retfie

; END of DC motor speed controller

end

66

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