View
286
Download
9
Category
Preview:
Citation preview
PROIECTAREA UNUI SISTEM DE ACŢIONARE CU MOTOR DE CURENT CONTINUU...........................2INTRODUCERE.......................................................................................................................................................2SISTEME DE ACŢIONARE ELECTRICĂ. GENERALITĂŢI..............................................................................2LANŢURI CINEMATICE........................................................................................................................................2
Caracteristicile lanţurilor cinematice....................................................................................................................3Asocierea lanţurilor cinematice.............................................................................................................................5
MAŞINI ELECTRICE..............................................................................................................................................7ACŢIONĂRI CU MAŞINI SINCRONE..................................................................................................................8
Generalităţi............................................................................................................................................................8MOTORUL SINCRON............................................................................................................................................9
Pornirea motorului sincron....................................................................................................................................9Frânarea motorului sincron.................................................................................................................................10Motoare sincrone speciale...................................................................................................................................10Motoare sincrone reactive (MSR).......................................................................................................................10Motoarele pas cu pas (MPP)...............................................................................................................................11
ACŢIONĂRI CU MAŞINI ASINCRONE.............................................................................................................12Generalităţi..............................................................................................................................................................12MOTORUL ASINCRON.......................................................................................................................................12
Pornirea motorului asincron trifazat....................................................................................................................12Pornirea motorului asincron monofazat..............................................................................................................13
ACŢIONĂRI CU MOTOARE DE CURENT CONTINUU..................................................................................13DESCRIEREA ŞI FUNCŢIUONAREA MOTORULUI DE CC...........................................................................14
Ecuaţiile de funcţionare.......................................................................................................................................14Caracteristicile de funcţionare ale motorului de curent continuu.......................................................................15
A. Motorul cu excitaţie în derivaţie................................................................................................................15Motorul cu excitaţie serie........................................................................................................................................18
La acest motor înfăşurarea rotorică este în serie cu înfăşurarea de excitaţie, (fig. 1.5)..................................18Motorul cu excitaţie mixtă......................................................................................................................................18Pornirea motoarelor de curent continuu..................................................................................................................19
Regimul de frânare la motorul de curent continuu..............................................................................................21Regimul de frânare la motorul de curent continuu cu excitaţie în derivaţie...................................................21Frânarea cu recuperare....................................................................................................................................22Frânarea în contracurent..................................................................................................................................22Frânarea dinamică...........................................................................................................................................23
Regimul de frânare la motorul de curent continuu cu excitaţie serie..................................................................23Frânarea cu recuperare de energie...................................................................................................................23Frânarea dinamică...........................................................................................................................................23Frânarea în contracurent..................................................................................................................................24
REGLARE A TURAŢIEI MOTORULUI DE CURENT CONTINUU.................................................................25Reglajul turaţiei mcc cu excitaţie derivaţie.............................................................................................................25
Reglajul turaţiei motorului de curent continuu cu excitaţie serie.......................................................................27Sisteme de reglare a vitezei m.c.c. alimentate prin impulsuri.............................................................................29
PROIECTUL TEHNIC...........................................................................................................................................32Generalităţi..............................................................................................................................................................32Părţile componente ale schemei..............................................................................................................................33Microcontroller PIC16F874....................................................................................................................................35ALGORITMUL 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:
Figura 2. Schema bloc-Funcţia de transfer
unde:i – raport de transferxi – mărime de intrarexe – mărime de ieşire
Figura 3. Mecanismul şurub-piuliţă
xe = vav =ns psc
unde:vav – viteza de avansns – turaţia şurubuluipsc – pasul şurubului conducător
;
Figura 4. Cinematica mişcării
3
Figura 5. Raportul de transfer
;
Notăm: ; ;Rezultă:unde:
iT – raport total de transferiC – raport constantiR - raport reglabiliD – raport dimensional
Ecuaţia de transfer a lanţului cinematic:
Ecuaţia de reglare a lanţului cinematic:
Mărimile de ieşire a lanţurilor cinematice pot să aibă la o anumită maşină-unealtă valori diferite:
ye1
Raportul de reglare a mărimii de ieşire:
Domeniul de reglare a mărimilor de intrare:yi1
Raportul de reglare al mărimilor de intrare:
Capacitatea de reglare a lanţului cinematic:
4
sau
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 ye1 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ă
relaţia:
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 caracterizează printr-o viteză unghiulară care nu se menţine în raport constant cu frecventa
7
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
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.
8
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ă.
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
9
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 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;
10
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) Pornireb) Funcţionarec) Reglarea vitezeid) 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:
şi Ip = f(t)
13
şi Mp =f(t) durata procesului tranzitoriueconomicitatea 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 trepteeconomicitatea 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
UA = RAIA + LA - EE = -KeØn M = KØI (1)
M - Mrε = J
Ø = 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.
)
(3)Substituind curentul prin cuplul corespunzător rezultă ecuaţia caracteristicii turaţie-
cuplu.
(4)
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
(11)
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
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 UA = RAIA + LA + KeØn
în care: LA, RA, reprezintă parametrii electrici ai întregului circuit al rotorului.
20
Ecuaţia de cupluri în regim dinamic este:
M - Mrε = J
î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 recuperare2. Frânare în contracurent3. 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:
IA < 0M = 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ă Ω’
şi Ω au sensurile inverse, deci .
Prin urmare curentul din indus IA are sens invers, deci M = KIA < 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:
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.
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:
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:
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=MR. Ecuaţia caracteristicii mecanice este:
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:
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 FI1. 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ţă ur, î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 pinului
Pin capsulă
Tipul pinului
Tipul Buffer -ului
Descriere
OSC1\CLKIN
13 I ST\CMOS
Intrarea oscilatorului
OSC2\CLKOUT
14 O - Ieşirea oscilatorului
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/VREF-
4 I/O TTL Poate fi folosit şi ca intrare analogica (canalul 2) sau ca referinţă negativă de tensiune
RA3/AN3/VREF+
5 I/O TTL Poate fi folosit şi ca intrare analogica (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/TTL
Poate fi folosit ca întrerupere externă
RB1 34 I/O TTLRB2 35 I/O TTLRB3/PGM 36 I/O TTLRB4 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/
TTLPin 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
RC0/T1OSO/T1CKI
15 I/O ST Intrare de ceas pentru TIMER1 sau ieşirea 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/ 18 I/O ST Intrare/Ieşire de ceas pentru portul
37
SCL serial SPI sau RC4/SDI/SDA
23 I/O ST Intrare de date pentru SPI sau intrare/ieşire de date pentru
RC5/SDO 24 I/O ST Ieşire de date pentru SPIRC6/TX/CK 25 I/O ST Transmisie asincrona USART sau ceas
pentru modul sincronRC7/RX/DT 26 I/O ST Recepţie asincrona USART sau date
pentru modul sincronRD0/PSP0 19 I/O ST/
TTLBit 0 de date pentru portul paralel
RD1/PSP1 20 I/O ST/TTL
Bit 1 de date pentru portul paralel
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
8 I/O ST/TTL
Controlul citirii pentru PSP (portul paralel)Poate fi folosit şi ca intrare analogica (canalul 5)
9 I/O ST/TTL
Controlul scrierii pentru PSP (portul paralel)Poate fi folosit şi ca intrare analogica (canalul 6)
10 I/O ST/TTL
CS (cip select) pentru PSP (portul paralel)Poate fi folosit şi ca intrare analogica (canalul 7)
VSS 12,31 P - masaVDD 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 memorieiMemoria 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 dateDescriere 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 RP0
Banc
0 0 00 1 11 0 21 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ţiilorAdresa
Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Bancul 000h INDF Folosit pentru adresarea indirecta a memoriei de date cu ajutorul registrului
FSR01h TMR0 Registrul TIMER0 (8 biţi)02h PCL Cei mai puţin semnificativi 8 biţi ai PC03h STATU
SIRP RP1 RP0 Z DC C
04h FSR Adresarea indirecta a memoriei de date05h PORTA - - Portul A06h PORTB Portul B07h PORTC Portul C08h PORTD Portul D09h PORTE - - - - - Portul E0Ah PCLAT
H- - - Cei mai semnificativi 5 biţi ai PC
0Bh INTCON
GIE PEIE T0IE INTE RBIE T0IF INTIF RBIF
0Ch PIR1 PSPIF ADIF RCIF TXIF SSPIF CCP1IF
TMR2IF
TMR1IF
0Dh PIR2 - - EEIF BCLIF - - CCP2IF
0Eh TMR1L Cei mai puţin semnificativi 8 biţi ai registrului TIMER10Fh TMR1H Cei mai semnificativi 8 biţi ai registrului TIMER110h T1CON - - T1CKP
S1T1CKPS0
T1OSCEN
T1SYNC
TMR1CS
TMR1ON
11h TMR2 Registrul TIMER2 (8 biţi)12h T2CON - TOUT
PS3TOUTPS2
TOUTPS1
TOUTPS0
TMR2ON
T2CPS1
T2CPS0
13h SSPBUF
Buffer-ul portului serial sincron
14h SSPCON
WCOL
SSPOV
SSPEN CKP SSPM3
SSPM2
SSPM1
SSPM0
15h CCPR1L
Captură1 / comparare1 / PWM1 (LSB)
16h CCPR1H
Captură1 / comparare1 / PWM1 (MSB)
17h CCP1CON
- - CCP1X CCP1Y CCP1M3
CCP1M2
CCP1M1
CCP1M0
18h RCSTA SSPEN
RX9 SREN CREN ADDEN
FERR OERR RX9D
19h TXREG Registrul de transmisie USART1Ah RCREG Registrul de recepţie USART1Bh CCPR2
LCaptură2 / comparare2 / PWM2 (LSB)
1Ch CCPR2H
Captură2 / comparare2 / PWM2 (MSB)
44
1Dh CCP2CON
- - CCP2X CCP2Y CCP2M3
CCP2M2
CCP2M1
CCP2M0
1Eh ADRESH
Cei mai semnificativi 8 biţi ai rezultatului conversiei A/D
1Fh ADCON0
ADCS1
ADCS0
CHS2 CHS1 CHS0 GO - ADON
Bancul 180h INDF Folosit pentru adresarea indirecta a memoriei de date cu ajutorul registrului
FSR81h OPTIO
N_REG
INTEDG
TOCS TOSE PSA PS2 PS1 PS0
82h PCL Cei mai puţin semnificativi 8 biţi ai PC83h STATU
SIRP RP1 RP0 Z DC C
84h FSR Adresarea indirecta a memoriei de date85h 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
DE- Direcţia datelor prin
portul E (I/O)8Ah PCLAT
H- - - Cei mai semnificativi 5 biţi ai PC
8bh INTCON
GIE PEIE T0IE INTE RBIE T0IF INTIF RBIF
8Ch PIE1 PSPIE ADIE RCIE TXIE SSPIE CCP1IE
TMR2IE
TMR1IE
8Dh PIE2 - - EEIE BCLIE
- - CCP2IE
8Eh PCON - - - - - -8Fh - Registru neimplementat fizic90h - Registru neimplementat fizic91h SSPCO
N2GCEN ACKS
TATACKDT ACKE
NRCEN PEN RSEN SEN
92h PR2 Perioadă TIMER 293h SSPAD
DAdresa portului serial sincron (în mod )
94h SSPSTAT
SMP CKE D/A P S R/W UA BF
95h - Registru neimplementat fizic96h - Registru neimplementat fizic97h - Registru neimplementat fizic98h TXSTA CSRC TX9 TXEN SYNC - BRGH TRMT TX9D99h SPBRG Generator “baud rate”9Ah - Registru neimplementat fizic9Bh - Registru neimplementat fizic9Ch - Registru neimplementat fizic9Dh - Registru neimplementat fizic
45
9Eh ADRESL
Cei mai puţin semnificativi 8 biţi ai rezultatului conversiei A/D
9Fh ADCON1
ADFM
- - - PCFG3
PCFG2
PCFG1
PCFG0
Bancul 2 100h INDF Folosit pentru adresarea indirecta a memoriei de date cu ajutorul registrului
FSR101h TMR0 Registrul TIMER0 (8 biţi)102h PCL Cei mai puţin semnificativi 8 biţi ai PC103h STATU
SIRP RP1 RP0 Z DC C
104h FSR Adresarea indirecta a memoriei de date105h - Registru neimplementat fizic106h PORTB Portul B107h - Registru neimplementat fizic108h - Registru neimplementat fizic109h - Registru neimplementat fizic10Ah
PCLATH
- - - Cei mai semnificativi 5 biţi ai PC
10Bh
INTCON
GIE PEIE T0IE INTE RBIE T0IF INTIF RBIF
10Ch
EEDATA
Registrul de date EEPROM (cei mai puţin semnificativi 8 biţi)
10Dh
EEADR Registrul de adrese EEPROM (cei mai puţin semnificativi 8 biţi)
10Eh
EEDATH
- - Registrul de date EEPROM (cei mai semnificativi 6 biţi)
10Fh EEADRH
- - - Registrul de adrese EEPROM (cei mai semnificativi 5 biţi)
Bancul 3180h INDF Folosit pentru adresarea indirecta a memoriei de date cu ajutorul registrului
FSR181h OPTIO
N_REG
INTEDG
TOCS TOSE PSA PS2 PS1 PS0
182h PCL Cei mai puţin semnificativi 8 biţi ai PC183h STATU
SIRP RP1 RP0 Z DC C
184h FSR Adresarea indirecta a memoriei de date185h - Registru neimplementat fizic186h TRISB Direcţia datelor prin portul B (intrare/ieşire)187h - Registru neimplementat fizic188h - Registru neimplementat fizic189h - Registru neimplementat fizic18Ah
PCLATH
- - - Cei mai semnificativi 5 biţi ai PC
18Bh
INTCON
GIE PEIE T0IE INTE RBIE T0IF INTIF RBIF
18C EECON EEPG - - - WRE WRE WR RD
46
h 1 D RR N18Dh
EECON2
Registru control EEPROM (nu este un registru fizic)
18Eh
- Registru neimplementat fizic
18Fh - Registru neimplementat fizicMemoria 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 RAMRegistrul 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 EEPROMAdresa
Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
18Bh INTCON GIE PEIE
T0IE INTE RBIE T0IF INTIF
RBIF
18Ch EECON1 EEPGD
- - - WRERR
WREN
WR RD
18Dh EECON2 Registru control EEPROM (nu este un registru fizic)10Ch EEDAT
ARegistrul de date EEPROM (cei mai puţin semnificativi 8 biţi)
10Dh EEADR Registrul de adrese EEPROM (cei mai puţin semnificativi 8 biţi)10Eh EEDAT
H- - Registrul de date EEPROM (cei mai semnificativi 6
biţi)10Fh EEADR
H- - - Registrul de adrese EEPROM (cei mai
semnificativi 5 biţi)0Dh PIR2 - - EEIF BCLIF - - CCP2I
F8Dh PIE2 - - EEIE BCLIE - - CCP2I
ECitirea 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, RP0BSF STATUS, RP1 ;bancul 2 de regiştriMOVLW adresa ;adresa de la care citescMOVWF EEADR
47
BSF STATUS, RP0 ;bancul 3 de regiştriBCF EECON1, EEPGDBSF EECON1, RD ;pornesc operaţia de citire din EEPROMBCF STATUS, RP0 ;bancul 2 de regiştriMOVF EEDATA, w
Scrierea memoriei de date EEPROMPentru 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, RP0BSF STATUS, RP1 ;bancul 3 de regiştri
TESTBTFSC EECON1, WR ;aştept sa se încheie ciclul anterior de scriereGOTO TESTBCF STATUS, RP0 ;bancul 2 de regiştriMOVF adresa_eeprom, wMOVWF EEADRMOVF data_eeprom, wMOVWF EEDATABSF STATUS, RP0 ;bancul 3 de regiştriBCF EECON1, EEPGDBSF EECON1, WRENMOVLW 0x55MOVWF EECON2MOVLW 0xAAMOVWF EECON2BSF EECON1, WRBCF EECON1, WRENBCF STATUS, RP0BCF 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şirePIC16F874 are cinci porturi: PORTA, PORTB, PORTC, PORTD şi PORTE
PORT APORTA 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
n Tip pin
Tip Buffer
Descriere
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:Adresa
Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
05h PORTA - - Portul A85h TRISA - - Direcţia datelor prin portul A (intrare/ieşire)9Fh ADCON
1ADFM
- - - PCFG3 PCFG2 PCFG1
PCFG0
Exemplu:CLRF PORTA; iniţializarea portului ABSF STATUS, RP0; selectăm bancul 1MOVLW 0X0F; w 00001111MOVWF 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 pinului
Pin Tip pin Tip Buffer
Descriere
RB0/INT 33 I/O ST/TTL Poate fi folosit ca întrerupere externă RB1 34 I/O TTLRB2 35 I/O TTLRB3/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/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 306h PORTB Portul B86h TRISB Direcţia datelor prin portul B (intrare/ieşire)81h OPTIO
N_REG
INTEDG
TOCS
TOSE
PSA PS2 PS1 PS0
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
n Tip pin
Tip Buffer
Descriere
RC0/T1OSO/T1CKI
15 I/O ST Intrare de ceas pentru TIMER1 sau ieşirea 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
RC4/SDI/SDA 23 I/O ST Intrare de date pentru SPI sau intrare/ieşire de date pentru
RC5/SDO 24 I/O ST Ieşire de date pentru SPIRC6/TX/CK 25 I/O ST Transmisie asincrona USART sau ceas pentru
modul sincronRC7/RX/DT 26 I/O ST Recepţie asincrona USART sau date pentru
modul sincronRegiştri asociaţi portului C:Adresa
Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
07h PORTC
Portul C
87h TRISC Direcţia datelor prin portul C (intrare/ieşire)
PORT DPORTD 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 pinului
Pin Tip pin Tip Buffer
Descriere
RD0/PSP0 19 I/O ST/TTL Bit 0 de date pentru portul paralelRD1/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 paralelRD3/PSP3 22 I/O ST/TTL Bit 3 de date pentru portul paralelRD4/PSP4 27 I/O ST/TTL Bit 4 de date pentru portul paralelRD5/PSP5 28 I/O ST/TTL Bit 5 de date pentru portul paralelRD6/PSP6 29 I/O ST/TTL Bit 6 de date pentru portul paralelRD7/PSP7 30 I/O ST/TTL Bit 7 de date pentru portul paralel
Regiştri asociaţi portului D:Adresa
Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
08h PORTD
Portul D
88h TRISD Direcţia datelor prin portul D (intrare/ieşire)89h TRISE IBF OBF IBOV PSPMOD
E- Direcţia datelor prin
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 pinului
Pin Tip pin Tip Buffer
Descriere
8 I/O ST/TTL Controlul citirii pentru PSP (portul paralel)Poate fi folosit şi ca intrare analogica (canalul5)
9 I/O ST/TTL Controlul scrierii pentru PSP (portul paralel)Poate fi folosit şi ca intrare analogica (canalul6)
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:Adresa
Nume Bit 7 Bit 6
Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
09h PORTE - - - - - Portul E89h TRISE IBF OB
FIBOV
PSPMODE
- Direcţia datelor prin portul E (I/O)
9Fh ADCON1
ADFM
- - - PCFG3
PCFG2
PCFG1
PCFG0
Timer-ePIC16F874 are 3 timer-e: Timer0
Timer1
51
Timer2Timer0
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 negativRegiştri asociaţi cronometrului Timer0:
Adresa
Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
0Bh INTCON
GIE PEIE T0IE INTE RBIE T0IF INTIF RBIF
81h OPTION_REG
INTEDG
TOCS
TOSE
PSA PS2 PS1 PS0
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:Adresa
Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
0Bh INTCON
GIE PEIE T0IE INTE RBIE T0IF INTIF RBIF
0Ch PIR1 PSPIF ADIF RCIF TXIF SSPIF
CCP1IF
TMR2IF TMR1IF
8Ch PIE1 PSPIE ADIE RCIE TXIE SSPIE
CCP1IE
TMR2IE
TMR1IE
0Eh TMR1L Cei mai puţin semnificativi 8 biţi ai registrului TIMER10Fh TMR1H Cei mai semnificativi 8 biţi ai registrului TIMER110h T1CON - - T1CKPS
1T1CKPS0
T1OSCEN
T1SYNC
TMR1CS
TMR1ON
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 116 perioade
Regiştri asociaţi cronometrului Timer2:Adresa Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
52
0Bh INTCON
GIE PEIE T0IE INTE RBIE T0IF INTIF RBIF
0Ch PIR1 PSPIF ADIF RCIF TXIF SSPIF CCP1IF
TMR2IF
TMR1IF
8Ch PIE1 PSPIE ADIE RCIE TXIE SSPIE CCP1IE
TMR2IE
TMR1IE
11h TMR2 Registrul TIMER2 (8 biţi)12h T2CO
N- TOUT
PS3TOUTPS2
TOUTPS1
TOUTPS0
TMR2ON
T2CPS1
T2CPS0
92h PR2 Perioadă TIMER 2
Modulul de generare a tensiunii PWMPWM = 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 PWMAtunci când sunt folosite ambele module PWM tensiunile de ieşire vor avea aceeaşi frecvenţă.Regiştri asociaţi modulului PWM:
Adresa
Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
0Bh INTCON
GIE PEIE T0IE INTE
RBIE T0IF INTIF RBIF
0Ch PIR1 PSPIF
ADIF
RCIF TXIF
SSPIF CCP1IF
TMR2IF
TMR1IF
53
8Ch PIE1 PSPIE
ADIE
RCIE TXIE
SSPIE CCP1IE
TMR2IE
TMR1IE
11h TMR2 Registrul TIMER2 (8 biţi)12h T2CO
N- TOUT
PS3TOUTPS2
TOUTPS1
TOUTPS0
TMR2ON
T2CPS1
T2CPS0
92h PR2 Perioadă TIMER 28Dh PIE2 - - EEIE BCLI
E- - CCP2I
E0Dh PIR2 - - EEIF BCLI
F- - CCP2I
F15h CCPR
1LCaptură1 / comparare1 / PWM1 (LSB)
16h CCPR1H
Captură1 / comparare1 / PWM1 (MSB)
17h CCP1CON
- - CCP1X
CCP1Y
CCP1M3
CCP1M2
CCP1M1
CCP1M0
1Bh CCPR2L
Captură2 / comparare2 / PWM2 (LSB)
1Ch CCPR2H
Captură2 / comparare2 / PWM2 (MSB)
1Dh CCP2CON
- - CCP2X
CCP2Y
CCP2M3
CCP2M2
CCP2M1
CCP2M0
87h TRISC
Direcţia datelor prin portul C (intrare/ieşire)
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>).
Schema bloc
54
Figura 42. Schema explicativă
Regiştri asociaţi transmisiei asincroneAdresa
Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
0Bh INTCON
GIE PEIE T0IE INTE RBIE
T0IF INTIF RBIF
0Ch PIR1 PSPIF
ADIF
RCIF TXIF SSPIF
CCP1IF
TMR2IF
TMR1IF
18h RCSTA
SSPEN
RX9 SREN CREN ADDEN
FERR OERR RX9D
19h TXREG
Registrul de transmisie USART
8Ch PIE1 PSPIE
ADIE
RCIE TXIE
SSPIE CCP1IE
TMR2IE
TMR1IE
98h TXSTA
CSRC
TX9 TXEN SYNC
- BRGH TRMT TX9D
99h SPBRG
Generator “baud rate”
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 asincroneAdresa
Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
0Bh INTCON
GIE PEIE T0IE INTE RBIE
T0IF INTIF RBIF
0Ch PIR1 PSPIF
ADIF
RCIF TXIF SSPIF
CCP1IF
TMR2IF
TMR1IF
18h RCSTA
SSPEN
RX9 SREN CREN - FERR OERR RX9D
1Ah RCREG
Registrul de recepţie USART
8Ch PIE1 PSPIE
ADIE
RCIE TXIE
SSPIE CCP1IE
TMR2IE
TMR1IE
98h TXSTA
CSRC
TX9 TXEN SYNC
- BRGH TRMT TX9D
99h SPBRG
Generator “baud rate”
Regiştri pentru starea vitezei de comunicareAdresa
Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
98h TXSTA
CSRC
TX9 TXEN SYNC - BRGH TRMT TX9D
99h SPBRG
Generator “baud rate”
Setarea vitezei de comunicare pentru Fosc = 4MHzBRGH BAUD
RATE(K)
SPBRG Eroare%
56
0
0,3 207 01,2 51 0,172,4 25 0,179,6 6 6,9919,2 2 8,5128,8 1 8,5133,6 - -57,6 0 8,51
1
0,3 - -1,2 207 0,172,4 103 0,179,6 25 0,1619,2 12 0,1628,8 8 3,5533,6 6 6,2957,6 3 8,51
ÎntreruperiPIC16F874 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 întreruperilorAdresa
Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
0Bh INTCON
GIE PEIE T0IE INTE RBIE
T0IF INTIF RBIF
0Ch PIR1 PSPIF
ADIF
RCIF TXIF SSPIF
CCP1IF
TMR2IF
TMR1IF
0Dh PIR2 - - EEIF BCLIF
- - CCP2IF
8Ch PIE1 PSPIE
ADIE
RCIE TXIE SSPIE
CCP1IE
TMR2IE
TMR1IE
8Dh PIE2 - - EEIE BCLIE
- - CCP2IE
81h OPTION
INTEDG
TOCS TOSE PSA PS2 PS1 PS0
57
_REG
Schema bloc
Figura 44. Schema logică
OscilatorulTipuri de oscilatoarePIC16F874 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 PIC16F874Pentru 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 octetADDWF f,d w + f → d (destinaţie)ANDWF f,d w & f → d (destinaţie)CLRF f Şterge fCLRW Ş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ă 0INCF f,d f +1 → d (destinaţie)INCFSZ f,d f +1 → d (destinaţie) daca nu rezultă 0IORWF f,d w sau f → d (destinaţie)MOVF f,d f → d (destinaţie)MOVWF f w → fNOP 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 bitBCF 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>=0BTFSS f,b Sare o instrucţiune dacă f<b>=1Instrucţiuni literale şi de controlADDLW k w + k → wANDLW k w & f → wCALL k Cheamă subrutina kCLRWDT - Şterge watchdog timerGOTO k Salt necondiţionat la kIORLW k w sau k → wMOVLW k k → wRETFIE - Revenire din întrerupereRETLW k Revenire din întrerupere şi k → wRETURN - Revenire din subrutinăSLEEP - Standby SUBLW k k – w → wXORLW k w sau exclusiv k → w
d=0 → destinaţia este wd=1 → destinaţia este f
60
ALGORITMUL DE PROGRAMARE
Schema algoritmului
Figura 47. Schema algoritmului de programare
Explicarea algoritmului de programareSe 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 startInstrucţ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ţializareProcesul de iniţializare se realizează la pornireIniţializarea porturilor A, B şi CSe 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/DDeoarece 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 PWMRegistrul 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 comparareRegistrul CCP2 este folosit pentru comparare celor două semnale şi generează
întreruperi periodice (o dată la 10 ms).Iniţializarea întreruperilorDatorită 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 vitezeiDacă rezultatul obţinut este mai mare microcontrolerul scade curentul trimis motorului
şi astfel se micşorează viteza.Procesul de mărire a vitezeiDacă 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 ledurilorDacă 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 întreruperiiSfâ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 movlw b'11111111' ;Max duty (low speed)
63
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 registerwait goto $ ;Interruption wait; Interruption Process int clrf PIR2 ;Clear interruption flagad_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 ? goto led_cont ;Yes. Jump to LED control
64
;--- 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 endled1 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 endled2 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 endled3 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 endled4 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 endled5 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 endled6 movlw b'11000000' ;Set compare data subwf led,w ;LED - data btfsc STATUS,C ;Under ?
65
goto led7 ;No. movlw b'00111111' ;Set LED control data goto int_end ;Jump to interrupt endled7 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 endled8 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
Recommended