Specializarea Electronică Aplicată LUCRARE DE DIPLOMĂ Profesor Îndrumător : Conferențiar.Dr.Ing.Dan Marius Dobrea Absolvent : Gheorghiță Ciobanu IAȘI… [621073]

Universitatea Tehnică “Gheorghe Asachi” Iași
Facultatea de Electronică, Telecomunicații și Tehnologia Informației
Specializarea Electronică Aplicată

LUCRARE DE DIPLOMĂ

Profesor Îndrumător :
Conferențiar.Dr.Ing.Dan Marius Dobrea

Absolvent: [anonimizat] 2014 -2018

1
Universitatea Tehnică “Gheorghe Asachi” Iași
Facultatea de Electronică, Telecomunicații și Tehnologia Informației
Specializarea Electronică Aplicată

Suport pentru platformă
robotic ă

IAȘI 2018

2
Cuprins
Capitolul 1. Introducere ………………………….. ………………………….. ………………………….. ……………………. 3
1.1 Memoriu justificativ ………………………….. ………………………….. ………………………….. ………………… 3
1.2 Structura lucrării ………………………….. ………………………….. ………………………….. …………………….. 4
Capitolul 2. Fundamentare teoretică ………………………….. ………………………….. ………………………….. ….. 5
2.1 Motoare de curent continuu cu pe rii ………………………….. ………………………….. ……………………… 5
2.2 Comanda motoarelor de curent continuu cu perii ………………………….. ………………………….. …… 8
2.3 Structura în punte H(full bridge) ………………………….. ………………………….. ………………………….. 11
2.4 Comanda PWM cu o comutație bipolară a tenisiunii la ieșirea punții H ………………………….. .. 13
2.5 Circuitul integrat L -298 ………………………….. ………………………….. ………………………….. ………….. 14
2.6 Modulul driver motoare L298N ………………………….. ………………………….. ………………………….. . 16
2.7 Raspberry Pi ………………………….. ………………………….. ………………………….. …………………………. 17
2.8 Convertorul Buck ………………………….. ………………………….. ………………………….. ………………….. 19
2.9 Microcontrolere ………………………….. ………………………….. ………………………….. ……………………. 27
2.9.1.Prezentarea generală a arhitecturii microcontrollerului MSP430 ………………………….. …… 28
2.9.2. Sistemul de întreruperi ………………………….. ………………………….. ………………………….. …… 30
2.9.3. Memoria și spat iul de adresare ………………………….. ………………………….. ……………………. 31
2.10 Bateria ………………………….. ………………………….. ………………………….. ………………………….. …… 33
2.10.1 Clasificare ………………………….. ………………………….. ………………………….. …………………….. 34
2.10.2 Bateriile Litiu -Ion ………………………….. ………………………….. ………………………….. …………… 36
Capitolul 3. Realizarea practică a proiectului ………………………….. ………………………….. …………………. 39
3.1 Comanda motoarelor ………………………….. ………………………….. ………………………….. …………….. 39
3.2 Soluție de încărcare a bateriei Li -Ion utilizând MSP430 ………………………….. ………………………. 44
3.3 Realizarea cablajelor ………………………….. ………………………….. ………………………….. ……………… 50
Capitolul 4. Rezumat. Concluzii ………………………….. ………………………….. ………………………….. ………… 55
4.1 Rezumat ………………………….. ………………………….. ………………………….. ………………………….. ….. 55
4.2 Concluzii ………………………….. ………………………….. ………………………….. ………………………….. ….. 56
Capitolul 5. Anexe ………………………….. ………………………….. ………………………….. ………………………….. 57
5.1 Anexa 1. Cod Raspberry ………………………….. ………………………….. ………………………….. …………. 57
5.2 Anexa 2. Cod MSP430G2543 ………………………….. ………………………….. ………………………….. ….. 60
Capitolul 6. Bibliografie ………………………….. ………………………….. ………………………….. …………………… 64

3
Capitolul 1. Introducere

1.1 Memoriu justificativ

În ultim ii ani domeniul roboticii a cunoscut o mare și foarte importan tă dezvoltare în
activitățile uman e, ca rezultat a dorinței omului de a progresa, de a crea lucruri noi care
să-i ofere precizie, siguranță, rapiditate și randament ridicat în activitate. Astfel calitatea
muncii este mult îmbunătățită, cu un număr de greșeli semnificativ mai mic, decât
executarii aceleași munci de om.
Roboții reușesc să ofere avantaje în multe domenii precum : domeniul medical
(sisteme robotizate pentru intervenții neurochirurgicale), în domeniul militar(ajutând la
explorarea locațiilor greu accesibile și periculoase), în construcții(excavatoare autonome,
sistem robotizat pentru stropirea betonului în construcția tunelurilor), în
agricultură(sistem robotizat pentru culegerea fructelor și a legumelor, sistem robotizat de
plantare a răsadurilor), toate ram urile industriei și multe alte domenii.
Robotica este u n domeniu stiințific care urmărește tehnologia , dezvoltarea ,
proiectarea și construcția sistemelor cu funcții diversificate în scopul realizării sarcinilor
umanoide. Un astfel de sistem poartă numel e de robot. Prin robot percepem un ansamblu
de mai multe elemente :mecanice, module electronice, motoare.
Lucrarea de față își propune studierea unui support pentru o platformă robotică care
poate funcționa atât in mod autonom cât și controlată de la dista nță.
Platforma robotică prezentată în lucrarea de față implică următoarele componente:
– Șasiu metalic
– Patru motoare fără perii
– Driver L298N
– Raspberry Pi 2 Model B
– MSP 430 Launchpad
– Display

4
Platforma poate fi încadrată în rândul roboților exp loratory, care eu o mare
aplicabilitate în domeniul military, în rândul geniștilor. De asemenea poate fi încadrată și
în scop didactic pentru evidențierea funcționali tății sistemelor inteligente.

1.2 Structura lucrării

Lucrarea este structurată în șase capitol, după cum urmează :

 Capitolul 1 – Introducere : cuprinde memoriul justificativ al lucrării, în care
este prezentată tema lucrării, justificarea alegerii făcute și descrierea structurii
lucrării;
 Capitolul 2 – Fundamente teoretice : în aces capitol sunt prezentate
noșiunile teoretice necesare pentru realizarea aplicației;
 Capitolul 3 – Realizarea practică a proiectului : cuprinde o descriere a
etapelor de proiectare și implementare a aplicației;
 Capitolul 4 – Rezumat. Concluzii : acest capitol cuprin de o serie de idei ce
surprind punctele esențiale ale lucrării;
 Capitolul 5 – Anexe : îna cest capitol au fost atașate codurile sursă ale
programelor platformei;
 Capitolul 6 –Bibliografie ;

5
Capitolul 2. Fundamentare teoretică

2.1 Motoare de curen t continuu cu perii

Dispozitivul electromagnetic ce transform ă energia electrică în energie mecanică se
numește motor electric sau electromotor. Transformarea în sens invers, a energiei
mecanice în energie electrică, este realizată de un generator electr ic. Nu există diferențe
de principiu semnificative între cele două tipuri de mașini electrice, același dispozitiv
putând îndeplini ambele roluri în situații diferite.
Motoarele electrice pot fi de mai multe tipuri,diferența constând în maniera în care
câmpul magnetic este generat pentru a obține cuplul, forța de roație, însă ele pot fi
clasificate în două mari categorii, funcție de alimentare, și anume :motoare de curent
continuu și motoare de curent alternativ.
Primul motor de curent continuu care a avut succes c omercial a fost demonstrat de
către Zenobe Gramme in anul 1871 , realizare ce a rezolvat problema pulsațiilor de curent
continuu. În 1873 Gramme a realizat că dimanul său poate fi folosit ca un motor, pe care
l-a prezentat cu un mare succes la explo zițiile din Viena și Philadelphia prin conectarea a
două astfel de motoare de c urent continuu la distanță , unul fiind folosit drept generator.
În funcție de construcție și sistemul de control, motoarele de curent continuu se
împart în motoare cu perii c olectoare si motoare fără perii colectoare.
Motorul de curent continuu fără perii, prescurtat BLDC motor, este un motor electric
de curent continuu la care comutația căilor de curent necesară învârtirii rotorului se
realizează electronic.Poate fi numir si motor de curent continuu fără colector, fiindcă
colectorul și periile colectoare formează împreună un dispozitiv complet de comutare
electromecanică.
Motorul de curent continuu cu perii (Figura 2.1.1), cunoscut și sub denumirea de
moroare brushes au fost primele generatoare industriale de energie electromagnetică
realizate pe baza inducției electromagnetice. Apariția curentului alternativ sinusoidal, în
special al sistemului trifazat , a restrâns mult domeniul de utilizare al mașinilor de curent
continuu. Se mai folosesc generatoare de curent continuu pentru sudură și autovehicule.

6
Principala ultilizare actuală a mașinii de curent continuu este cea de motor electric,
datorită caracteristicilor electromagnetice avantajoase pe care le prezintă. Motoarele d e
curent continuu se folosesc în tracțiunea electrică(tramvaie,trolebuze,locomotive) și în
general în acționările care necesită reglajul turației în limite largi.

Figura 2.1.1 Motor de curent continuu cu perii

Motoarele de curent continuu sunt alcatuit e din două părți componente:stator și rotor.
Statorul reprezintă partea staționară a unui sistem rotativ și în funcție de configurația
de rotație a electromotoarelor, statorul poate acționa ca câmp magnetic, interacționând cu
armătura pentru a crea mișcar e, sau poate acționa el însuși ca armătură, sub influența
bobinei de câmp a rotorului. Statorul poate fi un magnet permanent sau un electromagnet .
Rotorul sau armatura cum mai este denumit este realizat din una sau mai multe
infășurări. Când aceste înfăș urări sunt alimentate cu tensiune ele produc câmp
electromagnetic. Polii magnetici ai rotorului vor fi atrași de polii opuși generaț i de stator,
producând rotirea rotorului.
În funcție de modul de conectare a înfășurării de excitație motoarele de curent
continuu pot fi clasificate în :

7
– motor cu excitație independentă – unde înfășurarea statorică și înfășurarea rotorică
sunt conectate la două surse separate de tensiune
– motor cu excitație paralelă – unde înfășurarea statorică și înfășurarea rotorică sunt
legate în paralel la aceași sursă de tensiune
– motor cu excitație serie – unde înfășurarea statorică si înfășurarea rotorică sunt legate
în serie
– motor cu excitație mixtă – unde înfășurarea statorică este divizată în două înfășurări,
una conectată în paralel și una conectată în serie .
Înfășurarea rotorică parcursă de curent ca avea un a sau mai multe perechi de poli
magnetici echivalenți. Rotorul se deplasează în câmpul magnetic de excitație până când
polii rotorici se aliniază în dreptul polilor statorici op uși. În același moment, colectorul
schimbă sensul curenților rotorici astfel încât polaritatea rotorului se inversează și rotorul
va continua deplasarea până la urmatoar ea aliniere a polilor magnetici.
Turația motorului este invers proporțională cu câmpul magnetic de excitație si direct
proporțională cu tensiunea aplicată înfășurării rotorice. Turația se reglează prin varierea
tensiunii aplicată motorului până la valoarea nominală a tensiunii.
Cuplul moto r este direct proporțional cu curentul e lectric pr in rotor și cu câmpul
magnetic de excitație. Reglarea turației se face prin slăbire de câmp cu diminuarea
cuplului dezvoltat de motor. La motoarele serie același curent străbate înfășurarea de
excitație și înfășurarea rotorică . Din aceste motive se poate d educe doua caracteristici ale
motoarelor serie: pentru încărcări reduse ale motorului, cuplul acestuia depinde de
curentul absorbit ; motorul nu trebuie lăsat să funcționeze în gol pentru că in acest caz
valoarea intensității curentului absorbit este foarte redusă și implicit câmpul de excitație
este redus.
Schimbarea sensului de rotație se face fie prin schimbarea polarității tensiunii de
alimentare, fie prin schimbarea sensului câmpului magnetic de excitație. La motorul
serie, prin schimbarea polarității tensiunii de alimentare se realizează schimbarea sensului
ambelor mărimi și sensul de rotație rămâne neschimbat. Așadar, motorul serie poate fi
folosit și la tensiune alternativă, unde polaritatea tensiunii se inversează o dată în decursul
unei perioade. Un astfel de motor se numește motor universal și se folosește în aplicații
casnice de puteri mici și viteze mari de rotație(aspirator, mixer).

8
2.2 Comanda motoarelor de curent continuu cu perii
Motoarele cu perii de curent continuu sunt cel mai ușor de c omandat datorită auto –
comutării. Alimentatând periile motorul ca începe să se rotească. Viteza se modifică
foarte simplu prin modificarea tesiunii de alimentare continue aplicată periilor. Pentru
mișcările de bază, motoarele cu perii de curent continuu rep rezintă cea mai ieftină soluție.
Pe de altă parte insă, periile se vor uza în timp, deci vor trebui înlocuite. În plus,
aceste tipuri de motoare produc zgomot electric și apar de asemenea pierderi prin frecare
la interfața mecanică a periilor. Acestea di n urmă se manifestă prin încalziri ce pot crea
uneori probleme în indusul motorului.
O comandă modernă de reglare a vitezei motoarelor de c urent continuu este comanda
prin impulsuri, de tip „chopper”. Pentru un motor de curent continuu condiția funcționăr ii
fără întreruperi de curent este satisfăcută prin micșorarea perioadei impulsurilor sub
valoarea constantei de timp electrice a motorului.
La motoarele convenționale de curent continuu de putere, constanta de timp electrică
fiind de ordinul a 0,01…0, 1s, condiția se poate realiza cu întrerupătoare statice cu
tiristoare. În cazul servomotoarelor de curent continuu, din cauza constantei de timp
electrice foarte mici, condiția amintită se poate realiza numai cu tranzistoare.

Figura 2.2.1 Comanda PWM a s ervomotorului de curent continuu în circuit deschis
În figura 2.2.1 :GILV este generator de impulsuri cu lățime variabilă; AF este
amplificator final , iar GI este generator de impulsuri.
Comanda prin lățimea impulsurilor (comanda PWM) a motorului de curr ent continuu,
se realizează în circuit deschis sau în circuit închis. La comanda în circuit deschis,
lățimea impulsurilor de ieșire din amplificator nu depinde de curentul de sarcină al
otorului ci numai de semnalul de tensiune de intrare U c.

9
Lățimea impu lsurilor din generator este proportional cu tensiunea de comandă U c, iar
tensiunea medie de ieșire U A, iar tensiunea medie de ieșire U A este proportional cu durata
impulsului.

Figura 2.2.2 Comanda PWM a servomotorului de curent continuu în circuit închis
Comanda în circuit închis, figura 2.2.2, se bazează pe reacția negativă de curent.
Lățimea impulsului din comparator depinde nu numai de U c, ci și de v aloarae curentului
de sarcină. Tensiunea de ieșire U A depinde astfel de curentul de sarcină, în sensul că
durata impulsurilor este modulată de variația în timp a curentului.
Există două scheme mai importante de amplificator :schema “ în H” și schema “ în T”.
Schema “ în H ” utilizează o singură sursă de alimentare, dar un număr dublu de
tranzistoare și diode f ață de schema “ în T”. La schema “ în T” se poate extrage ușor
reacția de current deoarece una din bornele indusului motorului este legată la masă .
Există trei moduri de comandă prin lățimea impulsurilor:
– comanda bipolar ă
– comanda unipolară simplă
– comanda u nipolară cu limitare

10

Figura 2.2.3 Schema amplificatorului final “în H”;
Prin comandă unipolară, indusul servomotorului de current continuu este alimentat la
aceeași polaritate a sursei de alimentare.
Comanda bipolară și comanda unipolară prezintă de zavantajul pericolului
scurtcircuitării sursei de alimentare în alimentare în momentele de comutație, datorită
timpilor de stocare și de blocare ai tranzistoarelor din aplificatorul final.

Figura 2.2.4 Schema aplificatorului “în T”

11
2.3 Structur a în punte H(full bridge)

Puntea H este un circuit electronic care permite aplicarea unei tensiuni pe o sarcină în
direcție opusă. Aceste circuite sunt folosite in robotică și alte aplicații pentru a permite
motoarelor DC să circule înainte și înapoi, de asemenea, pentru obținerea invertoarelor, a
redresoarelor PWM și a filtrelor active monofazate.
Majoritatea convertoarelor AC/AC, convertorul push -pull DC/DC, convertoarele
DC/AC și multe alte tipuri de electronice de putere utilizează punțile H. Până și un motor
pas cu pas bopilar este invariabil condus de un regulator motor care conține două punți H.
Punțile H sunt disponibile ca circuite integrate sau po t fi construite din componente
discrete.Termenul de H este derivat din reprezentarea grafică tipică a unui astfel de
circuit.

Figura 2.3 .1 Topologia convertorului c.c – c.c în punte H

Așa cum este prezentată și in Figura 2.3 .1, puntea H este formată din două brațe de
punte A și B. Fiecare braț este constituit din două tranzistoare de putere legate î n serie
prevăzute cu diode de descărcare în antiparalel.
În brațul A tranzistoarele au fost notate cu T 1, T2, iar cele din brațul B cu T 3, T4.
Diodele care sunt în antiparalel cu tranzistoarele au fost notate cu același indice, D 1,D2

12
pentru brașul A, resp ectiv D 3, D 4, pentru brațul B. Alimentarea circuitului se face de la
singură sursă care furnizează tensiunea continuă U d. Cât mai aproape de puntea H este
obligatoriu sa avem condensatorul C d care, pe lângă rolul de filtru al tensiunii, are și rolul
de a p relua energia inductanței de sarcină după fiecare comandă de blocare a
tranzistoarelor.
Deoarece tranzistoarele comută în timpi foarte scurți trebuie utilizate condensatoare
rapide cu rezistență echivalentă serie mică(Low Esr – Equivalent Series Resistan ce).
Comanda tranzistoarelor se face din fiecare braț cu o pereche de semnale modulate în
lățime complementare . În fucție de cum sunt corelate comenzile celor două brațe, există
două tehnici de comandă ale punții H.
Cele două tehnici sunt :
– Comanda PWM c u o comuta ție bipolară a tenisunii la ieșirea punții
– Comanda PWM cu o comutație unipolară a tensiunii la ieșirea punții
Tehnicile enumerate mai sus pot fi utilizate, atât pentru chopper -ul în punte H, cât și
pentru invertorul sau redresorul PWM monofazat . Calitatea conversiei se schimbă de la o
tehnică la alta. Din acest motiv analiza convertoarelor menționate se va face separat.
Aranjamentul de punte H m ai poate fi utilizat pentru a “frange” motorul, în cazul în
care mo torul se oprește brusc sau pentru a lăsa motorul sa fucționeze fără întrerupere.
Modul de realiz are a un ei punți H este de două feluri :
– circuite integrate specializate(L293,L298,LMD18200 etc.)
– component discrete(tranzistori bipolari și MOSFET) și circuite integrate care să
asigure legătur a între semnalele provenite de la platform ă, de regulă acestea fiind
semnale logice de nivel TLL (5V sau 3.3V), dar care nu au current foarte mare debitat
Avantajele folosirii circuitelor integrate specializate cu punte H:
– simplit atea întregului circuit ș i a puț inelor componente externe, are ca efect micșorarea
întregului cablaj. Desigur aceasta micșorare restricșionează folosirea unor puteri mari în
cadrul punții H. Aceste ci rcuite integ rate sunt limitate în tensiune.
– unele integrează și partea de protecț ie logică

13
Dezavantajele folosirii circuitelor integrate specializate cu punte H :
– circuitele integrate L293 și L298 suportă puteri mic i dar acestea sunt realizate pe
tehnologie BJT, adică puntea H este realizată cu tranzistori bipolari, aceștia având tensiunea
de saturație mult mai mare decât un MOSFET, produc încalzirea lor și implicit a pierderii de
putere

2.4 Comanda PWM cu o comutație bipolară a tenisiunii la ieșirea punții H

PWM (Pulse Width Modulation) este o tehnică folosită pentru a vari a în mod
controlat tensiunea dată unui dispozitiv electronic. Această metodă schimbă foarte rapid
tensiunea oferită dispozitivului respectiv din ON în OFF.
Perioada de timp ce corespunde valorii ON dintr -un ciclu ON -OFF se numește factor
de umplere și re prezintă, în medie, tensiunea ce o va primi dispozitivul electronic. Astfel.
Se pot controla circuite analogice din domeniul digital.
În cazul unui motor, căruia i se aplică un semnal PWM cu factor de umplere de 0%,
viteza de rotație a acestuia va fi ega lă cu 0rpm. Un facotr de umplere de 100% va duce la
o turație maximă.
Pentru comanda PWM cu o comutație bipolară a tensiunii sunt grupate în perechi
tranzistoarele de pe diagonala punții:T 1 cu T 4 , respectiv T 2 cu T 3. Astfel, când va fi
comandată pentru d eschidere perechea T1,T4 va fi blocata perechea T 2,T3 și viceversa. În
consecință, pentru cele patru tanzistoare de putere sunt necesare doar două semnale de
comandă modulate în lățime. În practică, se folosesc semnale PWM complementare.
Pentru această te hnică de comandă pot fi puși în evidență cei patru subciclii de
funcșionare ai punșii H pe durata unei perioade de comutație T c. Aceștia sunt dați de cele
patru trasee ale curentului de ieșire i e într-un ciclu de funcționare. În Figura 2.5.1 sunt
prezentat e aceste trasee cu o comutație bipolară a tensiunii.

14

Figura 2.4 .1 Traseele curenților printr -un convertor c.c – c.c. în punte H

2.5 Circuitul integrat L-298

L-298 este un circuit integrat disponil în două tipuri de pachete, Multiwatt și
PowerSO20. E l este un driver cu dublă punte care are capacitatea de a suporta atât
tensiune înaltă, cât și current înalt. Acesta primește niveluri logice TTL(Transistor
Transistor Logic) și este capabil să opereze diferite sarcini, cum ar fi motoarele DC,
motoarele pa s cu pas, relee etc.
L-298 are două intrări de activare pentru a controla orice dispozitiv prin activarea sau
dezactivarea acestuia. L298 IC este cel mai frecvent util izat pentru a face un driver de
motor .
Aceste controlere de motor pot fi controlate de orice microcontroller, de exemplu
Arduino, PIC, Raspberry Pi etc. .
Acestea primesc intrarea de la microcontrolere și operează în mod corespunzător
sarcina atașată la terminalele lor de ieșire. L -298 este capabil sa controleze simultan două
motoare DC dif erite, deoarece are 2 pini de PWM.

15
Pinii PWM sunt utilizați pentru a controla viteza motorului. Prin schimbarea
polarității semnalului de tensiune la intrarea sa, putem roti motorul în sens orar sau î n
direcția acelor de ceasornic.

Figura 2.5.1 Integrat ul L-298
Caracteristicile sale include tensiunea scăzută la saturație și protecția la temperature
ridicate. L-298 IC are 15 pini in total, fiecare având diferite funții prezentați în Figura
2.5.2.

Figura 2.5.2 Pinii integratului L -298

16
2.6 Modulul drive r motoare L298N

Acest controller pentru motoare se bazează pe L -298N, care poate fi utilizat pentru a
controla două motoare de current continuu de până la 2A fiecare, cu o tensiune între 5 și
35 V DC sau pentru un motor pas cu pas.
Regulatorul este rap id și are protective pentru scurt -circuit și un radiator pentru a
menține integratul L -298 la o temperatură normală de funcționare.
Modulul are 14 pini prezentați in Figura 2.6.1.

Figura 2.6.1 Modului driver L298N

1. + (Motor DC 1 )
2. – (Motor DC1)
3. 12 V ju mper – daca utilizăm o tensiune de alimentare mai mare de 12 V se scoate
4. Vcc
5. GND
6. 5V la ieșire dacă este pus jumper la 12V
7. ENA – pin de PWM pentru motorul 1

17
8. IN1 – controlul direcției motorului 1
9. IN2 – controlul direcșiei motorului 1
10. IN3 – controlul direcți ei motorului 2
11. IN4 – controlul direcșiei motorului 2
12. ENB – pin de PWM pentru motorul 2
13. +(Motor DC 2)
14. – (Motor DC 2)

2.7 Raspberry Pi

Piața microcomputerelor este în plină dezvoltare, deși initial nimeni nu a considerat
microcomputerele o afacere profita bilă.
Dintre microcomputerelor existente pe piață, cel mai celebru datorită utilizarilor pe
care le are, este versiunea Raspberry Pi, precum și datorită comunității capabile să
dezvolte numeroase aplicații.
Așa cum îl prezintă producătorii, Raspberry Pi este un mi crocomputer care se poate
inseră într-un monitor sau televizor. Raspberry -ul utilizeaza o tastatură standard și mouse,
fiind capabil să permită utilizarea ca și computer, fiind capabil să îndeplinească aceleasi
task-uri ca și un computer descktop normal, de la navigare pe internet , Excel, Word și
jocuri video de înaltă definiție.

18
Raspberry este capabil să interacționeze cu exteriorul, fiind foarte ușor de utilizat în
dezvoltarea de proiecte, de la crearea de muzică până la detectarea de persoa ne.
Caracteristicile sale și platforma bazată pe Linux îl fac potrivit pentru aplicațiile
obișnuite precum home entertainment, navigare multi -media dar este și cel mai folosit în
aplicații de dezvoltare precum automatizări si robotică.
În cazul lui Raspb erry Pi cardul de memorie are un rol foarte important și anume cel
de hard disk. Cardul de memorie are stocat sistemul de operare si trebuie să aibă minim 4
GB și să suporte standardul de clasa 4 pentru o vitez ă bună.
Raspberry Pi oferă posibilitatea de a rula mai multe platform e software precum
Ubuntu Mate, OSMC, OpenELEC și Raspbian.
Raspbian este un sistem de operare pe calculator pentru Raspberry Pi. Există mai
multe versiuni de Raspbian, precum Raspbian Strech și Raspbian Jessie. Din anul 2015 a
fost oficial oferit de Fundația Raspberry Pi ca sistem principal de operare pentru familia
computerelor Raspberry Pi.
Raspbian folosește PIXEL, Pi Improved Xwindows Environment Lightweight ca
mediu de lucru principal al desktop -ului ca cea mai recentă actuali zare.

19
2.8 Convertorul Buck

Un convertor electronic de putere folosește dispositive semiconductoare pentru a
transforma puterea de la o formă (DC sau AC) in alta (DC sau AC). Acesta realizează
acest lucru determinând modificarea topologiei circ uitelor prin rotirea componentelor
semiconductoare din ON în OFF.
Convertorul Buck este specific convertoarelor DC -DC a cărui scop este eficiența
sursei DC coborâtoare la un nivel mai jos cu un riplu minim. Convertoarele buck reglează
tensiunea de ieșire în prezența schimbărilor de sarcină.
Luăm în considerație o aplicatie care necesită 0 -100mA la 5V. Să presupunem că
avem acces la o sursă de tensiune de 15V. Să luăm in considerare 3 soluții potențiale.

Soluția 1: Divizorul de tensiune

Acest circuit atinge 5V prin sarcină la curent maxim. Deoarece curentul de sarcină
scade, tensiunea de ieșire la crește la 5,56 V la curent 0A.
Problema divizorului de tensiune este ca divizorul rezistiv trebuie să fie cât mai mic
decât rezistența de sarcină pentru a garanta că tensiunea de ieșire nu se schimbă
semnificativ cu sarcina.
Kirckoff ne arată că trebuie să avem 15V – 5V = 10V pe rezistența de 10Ω, prin
urmare avem un curent de 1A prin sursa de 15V. Astfel eficiența este

Această metodă nu folosește eficient tensiunea de intrare.

20
Soluția 2 : Regulator liniar de tensiune

Putem folosi la implementarea circuitului de mai jos un cip intregrat.

Integratul LM317 lucrează pentru stabilirea a 1,25 V peste rezistența de 120Ω, prin
urmare I 120=1,25V / 120Ω = 10,4 mA. Cu zero curent care iese prin partea de jos avem :
10,4 mA x 360Ω= 3,75V peste sarcină. Stabilim curentul de ieșire I 317out cu Kirckoff 1 în
nod:

I317out =

Dacă a plicăm Kirckoff 1 la intrarea lui LM317 , curentul I 317IN=I317OUT =110.4Ma
Putem calcula eficiența :

ƞ =

În continuare folosim neeficient tensiunea de intrare și pierdem
. Acest lucru ne duce la a 3 -a soluție.

21
Soluția 3 : Converctorul Buck

Presupunem c ă vom învăța că o eficiență tipic convertoarelor DC -DC este în
intervalul 85 -95%. Să presupunem că putem realiza aici 92%, să vedem ce impact are
acesta asupra circu itului.

Pin=

Deci noi pierdem doar și curentul de intrare necesar
scade la I in= P in / V in=36,2mA. Sursa noastră de intrare a fost o baterie, atunci am putea
trage mult mai puțin curent în aceast ă soluție, ceea ce înseamnă că vom crește durata de
viață a bateriei.
Deci acum că avem contextual pentru care în prezent avem o modalitate bună de a
converti efficient la o tensiune DC mai joasă, avem nevoie să intrăm în detaliile despre
cum face asta co nvertorul Buck.
Circuitul Buck conține întrerupătoare semiconductoare(tranzistoare și diode) care nu
vor permite să chop up o tensiune data pentru a crea o undă cu o valoare medie nouă și
controlabilă.
Pentru a explica cum se întâmplă asta vom co nsidera circuitul din Figura 8.1 , unde
avem 2 comutatoare ideale (zero cădere de tensiune) S 1 și S 2.

22

Figura 2. 8.1
Circuitul este controlat de un semnal periodic ca în Figura 2.8.2, unde T SW este
denumită perioadă de comutare. S 1 este închis cât S 2 este deschi s(VS2=V in) și S 2 este
închis cât timp S 1 este deschis(V S2=0V).

Figura 2.8.2 Tensiunea de ieșire pentru circuitul din Figura 1

Media lui V S2 în Figura 8.2 se găsește din:

VS2ave=

Ecuația.1.1

În ecuația 1.1 am introdus D (duty cycle) ca fiind rația comutatorului S 1 ON
Time(T s1) în perioada (T SW), Forma de undă a tensiunii V S2 este atractiv în faptul că
putem regla valoarea medie prin schimbarea lui D, dar riplul mare sau variația tensiunii
ar fi inacceptabilă de cele mai sensibile aplicații electronice. În consecință ne -ar plăcea să
filtrăm semnalul pentru a extrage valoarea medie.

23

Figura 2.8.3 Fltru trece j os în cadrul convertorului Buck
Funcția de tra nsfer a acestui circuit este:

Frecvența de comutație se referă la perioada de comutație și frecvența de comutație
(în Hz)
ω SW =

Acum discuția despre filtru este utilă pen tru a descoperi că ω SW >> 1/√ , dar nu
oferă îndrumări în ceea ce privește împărțirea contribuțiilor a lui L și C. Prin urmare ,
vom continua să analizăm combinațiile circuitelor din Figura 2.8.2 și Figura 2.8.4 așa
cum se arată în Figura 2.8.5 . Aici avem înlocuit comutatorul S 2 cu dioda ideală. Prin
urmare când comutatorul S 1 este deschis, orice curent inductor pozitiv va fixa dioda ON
și va rămâne deschis cât timp cât curentul pozitiv va scădea sau urca până când S 1 este
reînchis.

Figura 2.8.4 Conv ertorul Buck

24
Analiza preliminară a acestui circuit utilizează următoarele ipoteze :
 C este destul de mare astfel încât riplul tensiunii de ieșire să fie relativ mic față de
valoarea sa medie
 L este destul de mare pentru a asigura că curentul inductor rămân e pozitiv pe
perioada de comutație ; când comutatorul este OFF, dioda trebuie să fie ON
 toate componentele sunt presupuse inițial idealea
 circuitul este în stare echilibrată – implicând ca toate formele de undă sunt defapt
periodice asigurând că ele au aceaș i valoare de la început până la finalul perioadei
de comutație
Circuitul va avea două stări admisibile ca în Figura 1.6 , comutator închis și dioda
OFF sau comutator deschis și dioda ON. În continuare vom folosi prima presupunere
pentru a deduce forma de u ndă a curentului inductor. Mai întâi vom reexamina timpul pe
care comutatorul și dioda îl efectuează în termeni de ciclu de funcționare D.
TS1=TS1
=DT SW
TS2=TSW – TS1= TSW -D TSW=(1-D)T SW
Dacă riplul tensiunii de ieșire este foarte mic, atunci putem spune că tensiunea de
ieșire este constantă la valoarea sa medie,V OUTAVE . Prin urmare când comutatorul S 1 este
ON, putem folosi Kirckoff 2 pe buclă pentru a obține o expresie pentru tensiune
inductanței
VL==L
IN- Vout,ave

Figura 2.8.5

25
Deoarece V IN și V out,ave sunt constante, derivata este o constantă.

=

∆IL,ON=

Reținem că din moment ce Vout,ave <V IN, curentul este linear în acest inte rval. Când
comutatorul S 1 este OFF și diode conduce, tensiunea inductoare este:

VL=L
=0-Vout,ave

∆IL,OFF=

Acum curentul scade liniar.
Pentru ca circuitul să fie în stare de echilibru și toate variab ilele periodice implică
faptul că curentul inductiv trebuie să returneze aceași valoare la finalul ciclului,
matematic înseamnă că ∆I L,ON + ∆I L,OFF = 0.

(
)

Dupa anularea lui L și Tsw , rămâne

DV in – DV out,ave -Vout,ave -DV out,ave =0

sau simplu :

Vout,ave =DV in

care din fericire este cea ce am găsit pentru filtru trece jos.

26

Figura 2.8.6 Formele de undă

Pentru a ajunge corect la forma de undă a condensatorului, amintesc mai întâi că
relația constitutive curentă a condensatorului este :

IC = C

Dacă curentul capacitiv are o valoare medie, atunci V C,ave nu este constant. Prin
urmare în starea de echilibru, este necesar ca I C,ave=0.

27
2.9 Microcontrolere

Un microcon troler este un sistem electronic miniaturizat destinat controlului unui
proces sau al unei interacțiuni cu mediul exterior, intervenția operatorului uman fiind
necesară. La început controlerele erau realizate folosind component electromecanice și
component electronice discrete. Construcția lui era foarte robustă având un consum mare
de energie și fiabilitate lăsând de dorit. Cu timpul acesta a început să capete forme din
ce în ce mai mici, toate componentele necesare au fost integrate pe același chip.
Dato rită prețului scăzut, în present microcontrolerele se regăsesc în aproape toate
dispozitivele electrocasnice(televizoare, mașini de spălat, imprimante, frigidere, cuptor cu
microunde etc.) De asemenea microcontrolerele sunt folosite pe scară largă și în
industrie.
În industria automobilelor de exemplu este integrat în unitatea de control (ECU) și
poate realiza controlul frânări și al direcției(ABS), controlul injecției carburantului,
controlul dispozitivelor de siguranță(Airbag), reglarea scaunelor și ogl inzilor,
climatizarea și diagnoza.
În ziua de azi există un număr foarte mare de tiputi constructive de microcontrolere.
Printre cei mai cunoscuți producători de microcontrolere sunt: Intel, Microchip, Texas
Instruments, Atmel, Zilog, Motorola și Freescal e. Acești producători scot pe piață chip –
uri tot mai performante, dedicate anumitor aplicații specific. Toate acestea sunt realizate
în tehnologia CMOS(Complementary metal -oxide -semiconductor), tehnologie care
permite structurilor cu densitate foarte mare de integrare și o imunitate ridicată la
perturbații.
Microcontrolerul în structura sa internă poate include o unitate
central(microprocessor), un temporizator/numerator, un generator de tact, o memorie
volatile(RAM) și o memorie nevolatilă(ROM/EPROM/FLASH ), un sistem de întreruperi ,
un dispozitiv intrări/ieșiri atât seriale cât și paralele, un convertor A/D și D/A, un
comparator analogic, un generator de PWM, periderice și alte surse.
Dimensiunea cuvântului de date reprezintă un prim criteriu de cl asifica re, astfel
funcț ie de aceasta și de puterea de calcul dorită întâlnim microcontrolere cu o lungime a
cuvântului de date cuprinsă între 4 și 64 de biți.

28
Cel mai important aspect în ceea ce privește Analia oricărui sistem de calcul se referă
șa arhitectura sa internă. Dintre cele mai întâlnite arhitecturi amintim arhitectura de tip
“Von Neumann” și arhitectura de tip “Harvard”.
Dezvoltarea aplica țiilor presupune pe lângă proiectarea circuitelor electronice
aferente și specificarea prin instrucțiuni a sarcin ilor pe care sistemul trebuie să le
îndeplinească, microcontrolerele dispun și de un circuit microprogramabil.
Limbajul mașină este singurul mod prin care microcontrolerul poate interpreta
informația. Programatorul va utiliza un limbaj de programare (ASM, C/C++) În care o
instrucțiune are corespondent o instrucțiune în limbajul mașină.

2.9.1. Prezentarea generală a arhitecturii microcontrollerului MSP430

Familia de microcontrolere MSP430 fabricate de către firma Texas Instruments
încorporează o unitate c etrală de tip RISC de 16 biți, memorie internă de tip ROM și
RAM, folosind o arhitectură Von -Neumann cu memorie comună de program și date.
Spațiul maxim de memorie adresabil este de 64Kocteți. Memoria de tip ROM
disponibilă on -chip are dimensiuni cuprinse între 1Kocteți și 160Kocteți, iar memoria de
tip RAM dimensiuni de până la 116Kocteți.

Figura 2.9.1 . Schema generală a unui microcontroller

29

Microcontrolerele din familia MSP430 nu pot utiliza o memorie de program sau de
date externă, deoarece nu exis tă magistrale externe de adrese sau date. Interfața cu o
memorie externă nu se poate face decât prin intermediul intrărilor/ieșirilor de uz general.
O schemă bloc a unui microcontroler MSP430 este reprezentată în Figura 2.9.2.

Figura 2.9.2. Schema bloc a microcontrollerului MSP 430

În materie de periferice, MSP430 are o serie de resurse tipice:
 Intrări / ieșiri numerice
 Intrări / ieșiri seriale de tip USART și I2C
 Timere / numărătoare
Ca o particularitate, anumite variante au și un controler pentru u n sistem de afișare de
tip LCD.
În afară de un timer de tip watch dog (WDT, ceas de gardă) există un sistem de
monitorizare a tensiunilor de alimentare(SVS – Supply Voltage Supervisor). WDT
trebuie resetat periodic de către codul aplicației, în caz contra r controlerul se resetează.

30
2.9.2. Sistemul de întreruperi

Întreruperile reprezintă un concept fundamental pentru lumea computerelor. Deși
execuția unui program este în general liniară, anumite condiții interne sau externe pot
determina execuția unei rutine de întrerupere la încheierea căreia își reia operația curentă
de unde ea a fost intreruptă.O întrerupere permite controlerului să răspundă rapid la
evenimente fără ca acțiunea de verificare a apariției acestor evenimente să consume din
timpul unitiț ii centrale.
O rutina de tratare a întreruperii trebuie să fie cât mai scurtă a nu introduce întârzieri
în execuția codului și a împiedica execuția altor rutine de tratare a celorlalte întreruperi.
De obicei cauza întreruperii este indicate prin setarea u nui fanion(flag).
Rutina de tratare a înteruperii să salveze acumulatorul sau locațiile de memorie asupra
cărora acționează, în caz contrar funcționarea programului principal ar fi compomisă.
Stiva este utilizată de obicei pentru salvarea temporară a stăr ii și conținutului registrelor.
La pornirea initial a programului întreruperile sunt inhibate și trebuie activate prin cod.
Timer -ele microcontrollerului MSP430 sunt numărătoare programabile.Semnalul de
tact este obținut de la oscilatorul controlerului sa u poate fi un semnal aplicat unui pin.
Unui timer se poate asocia uneori un prescaler pentru a mări capacitatea de numărare.
Timer -ele modern oferă în plus facilitate de comparare sau captură. Prin comparare se
generează o înterupere căând timer -ul ajunge la o valoare prestabilită sau se schimbă
starea unui pin, iar prin captură se stochează valoarea timer -ului în momentul în care
apare o tranziție activă la unul din pinii controlerului.
În funcție de variant constructive sunt disponibile o serie de perife rice orientate pe
interfața analogical:
 Sistem de conversie analog numer ică rapid(ADC) de 12 sau 10 -biți
 Convertor analog numeric de tip sigma -delta de 16(14)biți
 Convertoare numerice analogice(CNA -DAC) de 12 -biți
 Comparator analogic de precizie integrat c u sistemul de temporizare și numărare
Un așa zis ceas auxiliar de joasă frecvență(ACLK) este obținut dintr -un oscilator
stabilizat cu ajutorul unui cuarț de 32,768KHz. Ceasul ACLK poate fi utoliat pentru

31
funcționarea unității centrale într -un mod cu consum foarte redus, numit mod de
asteptare. Unitatea centrală poate fi scoasă din acest mod prin apariția unui eveniment.
Un oscilator controlat n umeric(DCO – Digitally Controlled Oscilator), poate furniza
un așa zis ceas de bază(MCLK -Master Clock), atunci când se dorește ca unitatea centrală
sa funcționeze la viteza maximă. Acest oscilator poate deveni activ si stabil în mai puțin
de 6 µs.
Deoarec e în setul de instrucșiuni al unității centrale nu există instrucțiuni pentru
operațiile de înmulțire sau însumare, la unele din variantele de MSP430 există o
componentă specializată numită multiplicator hardware.
Operațiunile pe care le poate efectua mul tiplicatorul hardware sunt :
 Înmulțire fără semn
 Înmulțire cu semn
 Înmulțire cu acumulare, fără semn
 Înmulțire cu acumulare, cu semn

2.9.3. Memoria și spatiu l de adresare

Microcontrolerele MSP430 sunt mașini Von Neumann și au un singur spațiu de
adresare de 64Kocteți, comun pentru program și date. Acest spațiu este comun și pentru
memoria propriu -zisă de tim RAM sau FLASH./ROM, pentru registrele aferente
modulelor periferice si pentru registrele cu funcșii special. Configurația memoriei diferă
de la o variantă la alta de MSP430.
Adresa de început a zonei de FLASH/ROM este variabilă și depinde de dimensiunea
memoriei FLASH/Rom prezente la varianta respective de MSP430. Adresa finală este
mereu 0FFFFH.
Memoria RAM înepe de la adresa 0200H și poate fi u tilizată pentru memorarea de
program cât și de date.

32

Figura 2.9.3.1 Organizarea memoriei microcontrollerului MSP430

Toate resursele modulelor periferice disponibile sunt plasate în spatial de adresare al
memoriei. Adresele de la 0100H la 01FFH sunt r ezervate pentru modulele periferice de
16 biți, care trebuie accesate cu instrucțiuni pe cuvânt. Dacă se utilizează instrucțiuni pe
octet, sunt premise numai adrese pare și octetul cuperioi al rezultatului va fi întotdeauna
zero.

33
2.10 Bateria

O tehnologie importantă în societatea noastră și în jur ul lumii este inventarea bateriei.
Printre numeroasele invenții ale lumii noastre moderne, bateria se remarcă ca o
dezvoltare uimitoare în curs de desfășurare, cu efect asupra aproape a tuturor
dispozi tivelor portabile cu energie electrică.
O baterie electrică este o combinație a uneia sau mai multor celule electrochimice,
utilizate pentru a transforma energia chimică stocată în energie electrică.
Pirma baterie, așa numita pilă voltaică, a fost invent ată în anul 1800 de către
fizicianul italian Alessandro Volta.
În zilele noastre, bacteria este utilizată pentru alimentarea mașinilor avansate, a
aparatelor electrice și a majorității electronicii integrate. După ce ți -a îndeplinit obligația
de a oferi oamenilor o practică in electronică, bacteria ar putea fi una dintre cele mai
importante invenții făcute vreodată.
În mod normal, o baterie are două terminale, una este marcată pozitivă și cealaltă este
marcată negative. Într -o baterie, electronii se cole ctează pe borna negatică a beteriei.
Electronii vor curge ne la negativ la terminalul pozitiv cît de repede pot.
Odată cu creșterea consumul de energie de la un timp la altul, industria bateriilor este
una dintre cele mai importante industrii din lume. C reșterea rapidă a tehnologiei avansate
a făcut ca bateriile sa se dezvolte din ce în ce mai mult.
Bateriile sunt considerate ecologice datorită metodei de producție. Există două
modalități de a stoca energia intr -o baterie: una este prin formarea unei anum ite reacții
chimice, iar a doua este prin încărcarea ei. Prin metoda de încărcare este nevoie doar de
un transfer de energie electrică de la o altă sursă de energie.
Progresul bateriei a crescut la stadiul în care putem alimenta aproape totul, de la
apara tele de uz casnic la autoturisme si incărcarea bateriei fără fir. Tehnologia de
ăncîrcare a bateriei fără fir ar putea di numită reîncărcare fără zgomot.
O altă mare utilizare a bateriei este în lumea automobilelor .

34
2.10 .1 Clasificare

În prezent ex istă d ouă tipuri de baterii: bateriile de unic ă folosință, care sunt
proiectate pentru a fi utilizate o dată și apoi aruncate la uzură, și baterii reîncărcabile, care
sunt proiectate să fie reîncărcate și reutilizate până când capacitatea lor de a stoca en ergie
electrică scade.
În cadrul bateriilor de unica folosință intră bateriile alcaline și bateriile cu oxid de
argint.
Baterile alcaline sunt bateriile clasice, Figura 2.9.1. 1, ieftine și la îndemână. Conțin o
cantitate rezonabilă de energie fiind folos ite majoritatea în dispozitive care nu au nevoie
de multă energie, cum este telecomanda televizorului ori a aparatului de aer condiționat,
bateriile alcaline pot fi utilizate pentru multe luni. Problema principala la aceste baterii
este că ele nu sunt reîn cărcabile.

Figura 2.10.1 Baterie alcalină

Bateriile cu oxid de argint , Figura 2.9.1.2, sunt baterii cu o viață lungă, dat fiind că
acestea conțin o cantitate mare de energie. Ele se găsesc sub formă de nasturi, în ceasuri ,
dar și în submarine. Problem a la aceste baterii este că sunt scumpe iar după epuizare
trebuie scăpat de mercurul din ele.

35

Figura 2.10.1.1 Baterie cu oxid de argint

Bateriile reîncărcabile sunt bateriile care după epuizare se pot reîncărca cu ajutorul
unui dispozitiv, numit încărc ător. Trebuie spus că bateriile alcaline reîncărcabile iși pierd
cu fiecare reîncărcare câte un pic din capacitatea de a stoca energie.
Unele dintre primele baterii reîncărcabile sunt bateriile reîncărcabile nichel cadmiu ,
Figura 2.9.1.3 . Acestea se înca rcă relativ repede dar au marea problema,denumită efectul
memoriei. Aceasta problemă constă în facptul că dacă bateria se reîncarcă înainte de
descărcarea completă, ele se vor descărca din ce în ce mai repede în timp, ținând parcă
minte nivelul la care era u cînd au fost descărcate.

Figura 2.10.1.2 Baterie nichel cadmiu

36
2.10.2 Bateriile Litiu -Ion

Baterii le litiu -ion, Figura 2.10 .2.1, constituie noul standard în ceea ce privește
bateriile pentru gadgeturi, reprezentând un progress considerabil sub aspec tul energiei
stocate și acestea nu mai au o problemă cu reîncărcatul înainte de descărcarea completă.

Figura 2.10. 2.1 Baterie lithiu -ion
O baterie lithiu -ion este un tip de baterie reîncărcabilă, în care ionii de lithiu se
deplasează de la electrodul ne gativ la electrodul pozitiv în timpul descărcării și înapoi în
timpul încărcării. Bateriile Li -ion utilizează un compus de lithiu intercalate ca material de
elctrod, în comparație cu lithiul metalic utilizat într -o baterie de lithiu nereîncărcabilă.

Aceste baterii sunt unele dintre cele mai populalare tipuri de baterii reîncărcabile
pentru dispozitivele electronice portabile, cu o densitate mare de energie, un e fect de
memorie mic si o auto -descarcare redusă. Densitatea energetică a ionului lithiu este de
obocei de două ori mai mare decât cea a n ichel -cadmiului standard. Caracteristicile de
încărcare sunt relative bune și se comport similar cu nichel -cadmiu în ceea ce privește
descărcarea.

37
Bateriile lithiu -ion sunt mai scumpe dar funcționează pe o gam ă mai mare de
temperature cu densități energetice mai mari. Aceste baterii mecesită un circuit de
protective pentru a limita tensiunea de vărf.

Figura 2. 10.2.2 Circuit de protecție
Aceste baterii sunt cunoscute însă ca având o posibilitate de a exploda. O altă
problemă este aceea că dacă sunt consumate prea mult și ajung sub un prag critit, pot fi
permanent afectate, de aceea aparatele elctronice sunt programate să se oprească la un
anumit punct, forțând utilizatorul să reîncarce bateriile înainte a ca ac eastea să devină
nefolositoare.
Bateriile lothiu -ion polimer , abreviată LiPo, este o baterie reîncărcabilă de tehnologie
lithiu -ion care folosește un electrolit polimer în locul unui electrolit lichid. Polimerii
semisolizi de înaltă conductivitate formeaz ă acest electrolit. Aceste baterii furnizează o
energie specifică mai mare decât alte tipuri de baterii cu litiu și sunt utilizate în aplicații
în care greutatea e ste o caracteristică esențială.
La fel ca și în cazul altor celule litiu -ion, LiPo lucrează pe principiul intercalării și
dezintegrării ionilor de litiu de la un material cu electrod pozitiv și un material de
electrod negativ, electrolitul lichid asigurînd un mediu conductiv. Pentru a preveni ca
electrozii să se atingă direct, se află un separato r microporos, care permite doar migrarea
ionilor și nu a particulelor electrodului de la o parte la alta.
Bateriile cu polimer au un design diferit față de cele cu litiu -ion. Spre deosebire de
bateriile litiu -ion, care au forma cilindrică sau prismatică d atorita carcaselor metalice,
celulele cu polimer au o carcasă formată dintr -o folie de polimer laminat. Principala

38
diferență între bateriile comerciale LiPo și ce Li -ion este faptul că, în primul caz
electrozii și separatorii sunt laminați împreună, pe can d în cazul al doilea, carcasa
metalică asigură p resiunea care le ține laolaltă.
Datorită faptului că această carcasă nu mai este necesară, bateria poate fi mai ușoară
și poate primi o forma potricită pentru orice tip de dispozitiv. Din cauza structurii ma i
dense, fără loc între celule cilindrice, densitatea energetică a acumulatorilor LiPo este cu
peste 20%mai ridicată decât în cazul celor Li -ion.

Figura 2. 10.2.3 Celule LiPo

Voltajul unei celule LiPo variază de la 2.7 V (descărcată) până la 4.23 V(înc ărcată),
dar acestea trebuie protejate impotrica încărcării excesive prin limitarea voltajului aplicat
la 4.235 V per celulă dintr -o legare serie. În timpul descărcării, voltajul nu trebuie lăsat să
coboare sub 3 V per celulă, altfel, există posibilitatea ca celula să nu mai poată accepta o
încărcare completa sau ar putea avea probleme în menținerea voltajului când este folosită.

39

Capitolul 3. Realizarea practică a proiectului

3.1 Comanda motoarelor
Pentru comanda motoarelor am folosit Raspberry Pi Model B2 și modulul driver
L298N.
Pe lângă resursele de calcul specifice unui sistem de calcul de uz general (
microprocesor, memorie, interfața Ethernet și Wifi, porturi USB) placa Raspberry Pi 2
dispune și de un conector de 40 pini ce expune o serie de pini digitali de intrare/ ieșire.
Prima etapa in comandarea motoarelor a fost sa import biblioteca Rpi.GPIO. Această
biblioteca permite să configurăm și să citim sau să scriem cu ușurință pinii de intrare/ieșire in
limbajul de programare Pytho n.
import RPi.GPIO as GPIO
Există două moduri prin care se pot numerota pinii pe un Raspberry Pi în cadrul
Rpi.GPIO. În acest proiect s -a folosit sistemul de numerotare BOARD. Acest lucru se referă
la numerele de pini din antetul P1 al plăcii.
GPIO.setmode( GPIO.BOARD)
Următorul pas a fost să setez pinii la care sunt conectați motoarele ca fiind pini de
ieșire. Pentru a seta un pin de ieșire am folosit instrucțiunea GPIO.setup(pin,GPIO.OUT) .
Un motor este conectat la pinii 16 si 18 iar celălalt este conecta t la 22 și 24. La pinii
16 și 24 am conectat terminalul de plus al motoarelor iar la pinii 18 si 22 terminalul de
minus. Pe la ngă acești pini mai sunt si pinii de PWM pentru fiecare motor, la care am setat
frecvența și valoarea de start.
GPIO.setup(16, GPIO.OUT) #motor_2(+)
GPIO.setup(18,GPIO.OUT) #motor_2( -)
GPIO.setup(22,GPIO.OUT) #motor_1( -)

40
GPIO.setup(24,GPIO.OUT) #motor_1(+)
GPIO.setup(12,GPIO.OUT) #PWM_motor_1
GPIO .setup(32,GPIO.OUT) #PWM_motor_2

pwm_1 = GPIO.PWM(12, 100) #pwm_1 pin frecvența 100 Hz motor_1
pwm_2 = GPIO.PWM(32, 100) #pwm_2 pin frecvența 100 Hz motor_2
pwm_1.start(0) #putere inițială motor_1
pwm_2.start(0) #putere inițială motor_2
Ca un motor să meargă inainte el trebuie polarizat direct iar pentru mers înapoi
trebuie polarizat invers. Ieșirile sunt valori Booleene :1 sau 0, GPIO.H IGH sau GPIO.LOW,
True sau False(aceasta corespunde tensiunii 0V=0 sau 3.3V=1).
Pentru a ușura munca am definit câte o funcție pentru mersul “înainte”,” înapoi”,
„stânga” și „dreapta”.
Funcția” înainte”:
def inainte_manual():
GPIO.output(16, True) #motor_2(+)
GPIO.output(18, False) #motor_2( -)
GPIO.output(22, False) #motor_1( -)
GPIO.output(24, True) #motor_1(+)
GPIO.output(12, True) #pwm_1 pin acti v
GPIO.output(32, True) #pwm_2 pin activ
pwm_1.ChangeDutyCycle(100) #pwm_1 maxim

41
pwm_2.ChangeDutyCycle(100) #pwm_2 maxim
La această funcție ambele motoare sunt polarizate direct, adică am setat la pinii 16 și
26 valoa re True care înseamnă că la acești pini avem tensiune de 3.3V iar ceilalti pini au 0V.
PWM -ul este setat la 100% pentru ambele motoare.
Funcția “înapoi ”:
def inapoi():
GPIO.output(16, False) #motor_2(+)
GPIO.output(18, True) #motor_2( -)
GPIO.output(22, True) #motor_1( -)
GPIO.output(24, False) #motor_1(+)
GPIO.ou tput(12, True) #pwm_1 pin activ
GPIO.output(32, Tr ue) #pwm_2 pin activ
pwm_1.ChangeDutyCycle(100) #pwm_1 maxim
pwm_2.ChangeDutyCycle(100) #pwm_2 maxim
La acestă funcție am setat la pinii 18 și 22 valoarea True, ceea ce înseamnă că
motoarele sunt polariz ate învers. PWM este setat tot la 100% pentru ambele motoare.
Funcția “stânga ”:
def stanga():
GPIO.output(16, True) #motor_ 2(+)
GPIO.output(18, False) #motor_ 2(-)
GPIO.output(22, True) #motor _1(-)
GPIO.output(24, False) #motor _1(+)

42
GPIO.ou tput(12, True) #pwm_1 pin activ
GPIO.ou tput(32, True) #pwm_2 pin activ
pwm_2.ChangeDutyCycle(100) #pwm_1 maxim
pwm_1.ChangeDutyCycle(30) #pwm_2 – 30%
Diferen ța între funcția stânga și înainte este ce la motorul 2 am setat PWM la doar
30% pentru a putea vira mașina spre stânga.
Funcția “dreapta ”:
def dreapta():
GPIO.output(16, Fal se) #motor _2(+)
GPIO.output(18, True) #motor _2(-)
GPIO.output(22, False) #motor _1(-)
GPIO.output(24, True) #motor _1(+)
GPIO.ou tput(12, True) #pwm_1 pin activ
GPIO.output(32, True) #pwm_2 pin activ
pwm_2.ChangeDutyCycle(30) #pwm_2 – 30%
pwm_1.ChangeDutyCycle(100) #pwm_1 maxim
Diferența între funcția “stanga” și „dreapta” este ca acum am setat PWM -ul 30% la
motorul 1.

43
Iar pentru a o pri motoarele complet am implementat si funția stop. Această funcție atribuie
tuturor prinilor valoare False, adică 0V iar pinii de PWM sunt setati pe 0.

Funcția „stop” :
def stop():
GPIO.output(16, False) #motor _2(+)
GPIO.output(18, False) #motor _2(-)
GPIO.output(22, False) #motor _1(-)
GPIO.output(24, False) #motor _1(+)
GPIO.output(12, True) #pwm_1 pin activ
GPIO.output(32, True) #pwm_2 pin activ
pwm_1.ChangeDutyCycle(0) #pwm_1 minim
pwm_2.ChangeDutyCycle(0) #pwm_2 minim

44
3.2 Soluție de încărcare a bateriei Li -Ion utilizând MSP 430

Li-Ion devine rapid chimia aleasă pentru apartele portabile da torită raportului mare de
capacitate – dimensiune și caracteristicilor de descărcare automată scăzută.
Capacitatea bateriei, C, exprimată in mA pe oră, reprezintă o măsură a duratei de
viață a bateriei între ăncărcări. Curentul bateriei are unitățile de C -Rate. De exemplu, o
bateriei de 500 mA -h are un C -Rate de 500mA. Curentul corespunzător la 1C este de
500mA iar la 0.1C esre de 50 mA.
Un proces de încărcare a unei baterii Li -Ion este alcătuit din 3 etape :
 Încărcare lentă : stadiu de încărcare prealabilă cu un curent de 0.1C
 Încărcare rapidă : stadiu curent constant de încărcare cu un curent de 1C
 Stadiu tensiune constantă de încărcare
În timpul etapei de încărcare lentă, bateria este încărcată cu un curent constant de
încărcare scăzut de 0.1C, dacă tensi unea bateriei este sub 2.5V. Dacă unele baterii
precum NiCd sunt reîncărcare fără descărcare completă, ele suferă de un fenomen numit
efect de memorie, care determină o reducere a capacității bateriei. Cu toate acestea,
bateriile Li -Ion nu suferă de efect de memorie și prin urmare ele nu trebuie să fie
complet descărcate înainte de descărcare. Starea de încărcare lentă este rar utilizată în
timpul procesului de încărcare a unei baterii Li -Ion.
Îmcărcarea rapidă (curent constant) și încărcarea cu tensiune c onstantă sunt cele mai
importante etape în procesul de încărcare. Cele mai multe baterii Li -Ion au o tensiune
complet încărcată de 4.1 sau 4.2V. Bateria este încărcată mai întâi cu un curent constant
de 1C până când tensiunea bateriei atinge 4.1 sau 4.2V. Firmware -ul verifică continuu
curentul de încărcare prin detectarea tensiunii la rezistența senzorului de curent (Rsense)
și ajustează ciclul de funcționare a ieșirii PWM de la MCU. Tensiunea bateriei este
verificat ă constant. Ori de câte ori se consta tă că tensiunea de pe baterie atinge 4.1 sau
4.2V, încărcătorul trece în modul de încărcare cu tensiune constantă.
Acumulatorul este apoi încărcat cu o sursă de tensiune constantă la o tensiune fixă a
bateriei de 4.1V sau 4.2V. Tensiunea bateriei este veri ficată și menținută la 4.1V prin
controlul ciclului de funcționare a ieș irii PWM. În timpul acestui proces, curentul de

45
încărcare va începe să scadă datorită rezistenței interne a celulei. Când c urentul de
încărcare scade sub 0.1C, procesul de încărcare tr ebuie să se oprească.

Figura 3.2.1 . Curbă curent vs tensiune pentru ăncărcarea acumulatorlui Li -Ion

Când bateria es te încărcată complet, cea mai ma re parte a energiei electrice este
transformată în energie termică. Bateriile supraîncărcate pot provoc a supraîncălzire,
explozia datorată deversării electrolitului și reducerea drastică a duretei de viață a
bateriei. Bateriile Li -Ion sunt extrem de sensibile la supraîncărcare și prin urmare, este
esențial ca tensiunea finală să fie controlată cu o valoare de ± 50mV de 4.1V sau 4.2 V.
Un design al încărcătorului trebuie să poată determina o baterie încărcată pentru a
evita supraîncărcarea. Câteva metode pentru a determina o stare complet încărcată sunt :
 În timpul etapei de încărcare constantă a tensiunii, când curentul scade la 0.1C,
se atinge o stare complet încărcată.
 Determinând temperatura bateriei pentru a evita supraîncălzirea.
 Utilizând o metodă de sincronicare sigură : atâta timp cât timpul de încărcare este
mai lung decât un timp predeterminat, bat eria poate fi considerată complet
încărcată.

46
Convertorul Buck este utilizat în timpul etapelor de încărcare a curentului și tensiunii
constante. Convertorul Buck este un convertor coborâtor care utilizează inductorul ca
sursă de curent la impedanța de s arcină de iesșire, care în acest caz este acumulatorul.
Tranzistoarele PNP si NPN formează un comutator care este controlat de un semnal
PWM. Timer_A3 de pe MSP430 poate fi utilizat pentru a controla curentul pentru
încărcarea bateriei utilizând caracteris tica PWM. Când comutatorul este închis, curentul
trece prin inductor iar condensatorul este încărcat, ca in Figura 3 .2.2.

Figura 3 .2.2. Convertorul Buck cu comutator închis

Când comutatorul este deschis, inductorul va încerca să -și mențină fluxul cur ent prin
introducerea unei tensiuni, deoarece un inductor nu poate avea o schimbare instantanee a
curentului. Curentul trece acum prin diodă, iar inductorul incearcă să înca rce
condensatorul ca în Figura 3.2.3 .

47

Figura 3.2.3 . Convertorul Buck cu comuta tor deschis

Gruparea L C acționează ca un filtru trece -jos, iar dacă frecvența PWM este mult mai
mare decât frecvența de întrerupere a grupării LC, tensiunea condensatorului este
constantă și egală cu valoarea medie a tensiunii de intrare la convertorul Buck.
Calculul pentru L și C.

Vout=DV in => D=
= 0.64
R big =
=126Ω
FSW=30KHZ

Lcrit =
= 8,4 mH . În practică am folosit o bobină de 10mH.
ILON = (
) D T SW =
=1,73 A
ILOFF = –
= –
=-1,72A

48
Cea mai înaltă tensiune a lui Vo, în timpul stadiului de încărcare cu curent constant
este de 12.6V . Tensiunea observată de intrarea P1.7 datorată divizor ului de tensiune (R1
și R2) este de 15/6=2,5V.
Ca la pinul P1.4 să ajungă tot 2.5 V am ales R3=7.3KΩ iar R1 = 1KΩ deoarece la
intrarea aplificatorului avem 30 mV .
Amplificarea este : Ao=1+
= 8,3V.
În figura de mai jos este prezentată schema completă a cablajului.

Primul buton(SW1) este folosit pentru selectarea modului de încărcare iar al doilea
buton(SW2) pentru a porni încărcarea.
Pe lângă convertorul Buck circuitul mai conține :
– Regulatorul de tensiune TL2575
– MAX232N
– LM358N
– Display
– Potentiometru
– 3 butoane

49
TL2575 este un regulator de tensiune care simplifică foarte mult proiectarea surselor
de alimentare prin comutare oferind în mod convenabil toate funcțiile active necesare pentru
un regulator de comutare de tip Buck. Accep tând o gamă largă de tensiune de intrare de până
la 60V și disponibilă în tensiuni de ieșire fixe de 3,3V, 5V, 12V , 15V sau o versiune
reglabilă, TL2575 are un comutator integrat capabil să livreze 1A de curent de sarcină.
Dispozitivul oferă o compensare internă a frecvenței si limitarea curentului ciclu cu ciclu.
În circuitul de față este utilizat pentru a transforma tensiunea de intrare de 19.5V în
5V. Avem nevoie de tensiune de 5 pentru a alimenta LDC -ul și integratul MAX232N. După
ce am ajustat tensi unea de 5V, am coborât tensiunea la 3.3V pentru a alimenta
microcontrolerul.
MAX232N este un integrat folosit în circuitul de față pentru a genera tensiune a –
Vout pentru alimentarea a mplificatorului din integratul LM358N.
Display -ul este folosit pentru afișarea mesajelor. Pinul de VDD, VSS și VO sunt
conectați la potentiome trul care variază intre 20K Ω si 50 K Ω pentru a putea modifica
intensitatea display -ului.
Pinul de RS este folosit pentru a selecta comanda și data. Dacă RS=0, comanda
registrului e ste selectată iar dacă RS=1, data registrului este selectată.
Pinul de RW este folosit pentru citire și scriere. Dacă RW =1, este transmisă comanda
de citire iar dacă RW =0 , este transmisă comanda de scriere. Datele se transmit în timp de
RS=1.
Folosim RS=0 pentr u a verifica bitul de flag pentru a verifica dacă LCD -ul este gata
să primească informații. Bitul de flag este D7 și poate fi citit când RS=0 și RW =1.
Dacă D7=1, LCD -ul este ocupat iar daca este egal cu 0 , LCD -ul este gata să
primească inform ații.
Pinul E comută între 1 și 0 pentru confirmarea datelor.
Butonul SW1 este folosit pentru a selecta modul de încărcare dorit iar SW2 este
folosit pentru a porni încărcarea.

50
3.3 Realizarea cablajelor

Structurile electronice din cadrul pro iectului au fost realizate prin montarea pieselor
pe un cablaj imprimat.
Cablajul imprimat( PCB Printed Circuit Board) este o placă cu rolul de a susține
mecanic și de a conecta component electrice și electronice între ele. Placa este formată
dintr -un str at non -conductiv electric și un strat conductive sau două straturi conductive,
din cupru.
Componentele sunt conectate prin intermediul unor trasee realizate în substratul
conductiv. Traseele pot fi obținute prin mia multe metode, prin freza mecanică, prin
depunere sau prin corodare.
Metoda corodării poate fi aplicată pentru obținerea cablajelor cu cel mult două straturi
de trasee. Aceasta metodă oferă rezultate destul de bune la un preț redus.
Primul pas în realizarea cablajelor constă în realizarea layo ut-ului (traseelor
circuitului. Acesta se poate proiecta utilizând un program de specialitate cum ar fi
Proteus, Eagle, ExpressPCB. După proiectarea payout -ului următorul pas este imprimarea
acestuia pe placa de cablaj. Imprimarea se poate realiza prin mai multe metode: prin
metoda p ress and pell (transferul termic) și prin metoda fotografică.
În proiectul de față cablajele au fost realizate în programul ExpressPCB și prin
metoda fotografică. Pentru această metodă este necesară o bună degresare a plăcii cu
ajutorul unui șmirghel și a unei soluții ce conține alcool . Cablujul este realizat pe ambele
părți ale plăcii.

51

Figura Layout spate

Figura Layout față

52
Se tipărește layout -ul pe o foaie retroproiectoare . Imaginea imprimată trebuie să fie în
raport de unu la unu (dimensiunea reală a traseelor și footprinturilor componentelor).
Foaia retroproiectoare cu imaginea imprimată este suprapusă peste placa cu
fotosensibil, în așa fel încât traseele să nu fie oglindite. În următoarea etapă se pune o
foaie alb a peste foaia retroproiectoare, iar cu un fie r de călcat se presează foile. Prin
încălzire, tușul de pe foaia retroproiectoare se va încălzi si se va imprima pe placa cu
cupru.
Este posibil ca tușul de pe foaia retroproiectoare sa nu se imprime perfect. Î n acest
caz se ia un marker si se traseaza traseele unde au ieșit imperfecte.

Urmatorul pas este cel de corodare a plăcii. Placa este introdusă într -o soluție de
clorură ferică. Timpul de corodare este proportional cu suprafața de cupru necesară a fi
corodată. În cazul plăcii din proiectul de față procesul de corodare a necesitat aproximativ
20-30 minute pentru fiecare față.

53

Ultimul pas este îndepărtarea statului fotosensibil rămas. Acest lucru este posibil prin
ștergerea plăcii cu acetonă.

Placa astfel obținută poate fi utilizată drept support pentru componentele electronice.
În funcție de tehnologia folosită, Trough Hole sau Surface Mounted Device,
componentele vor fi montate prin implantare sau lipire.

54
In proiectul de față tehnologia folosită este Trough Hole. Această tehnologie
presupune inserarea componentelor în găurile de pe placa cu circuit imprimat și lipirea
acestora pe partea opusă, partea cu stratul de cupru, pentru lipirea componentelor
utilizandu -se fludor si sacâz.
În figura următ oare sunt prezentate imagini cu referire la etapele de creare a PCB -ului
prin metoda fotografică, descrisă anterior.

Etapele metodei fotografice

55
Capitolul 4. Rezumat. Concluzii

4.1 Rezumat

Obiectivul propus este studiul conceptului de contr ol motoare și implementarea unui
circuit de încărcare pentru o baterie Litiu -Ion.
Proiectul prezentat în lucrarea de față este un suport pentru o platformă robotică
controlată de operatorul uman.
Toate funcțiile secifice și necesare atingerii obiective lor acestei platforme sunt
module de sine stătătoare. Această modularitate se manifestă atât la nivel software cât și
la nivelul aplicației hardware. Fiecare dintre aceste blocuri poate fi utilizat în mod
independent.
Avantajul programării modulare este A cela că subprogramele pot fi reutilizate și în
alte aplicații, ceea ce reduce efortul de programare în cazul unei noi aplicații. Fiecare
program poate fi scris și verificat separat de restul aplicației.
Pentru abordarea proiectului s -au utilizat două micr ocontrolere. Unul dintre acestea
este destinat controlului celor două motoare ale platformei . Cel de -al doilea
microcontroler este destinat proiectării circuitului de încărcare.
Pașii urmați pentru a construe acest suport pentru platform robotică sunt pr ezentați pe
larg în două dintre capitolele acestei lucrări. În prima parte sunt prezentate noțiunile
teoretice necesare pentru implementarea proiectului. În partea a doua este prezentat
modul prin care noțiunile teoretice au fost transpuse în practică.
În prima parte sunt prezentate noțiunile despre motoarele de curent continuu cu perii
și modul de comandă al acestora.
În partea a doua, este prezentat modul în care proiectul a fost implementat și
descrierea metodei prin care au fost realizate cablajele im primate pentru circuitele
platformei și nu în ultimul rând programele realzate pentru cele două microcontrolere.
Îmbinarea noțiunilor teoretice cu abilitățile practice au dus la implementarea cu
succees a acestui suport pentru platform robotică.

56
4.2 Con cluzii

Dezvoltarea acestui proiect a început în toamna anului 2017 în urma înscrierii la
concursul ElectroMobility propus de firma Continental și a fost finalizat cu success în
vara anului 2018.
Dacă la început realizarea proiectului nu părea să prezi nte un nivel ridicat de
dificultate și complexitate, pe parcursul implementării practice au apărut diverse
probleme, atât din punct de vedere hardware cât și software.
Din punct de vedere hardware problemele apărute au fost minore, aceastea
rezolvându -se relative repede.
Din punct de vedere software problemele apărute au fost datoriă limbajelor noi, care
au necesitat o documentație mai amplă.
Personal, în realizarea acestui proiect am reușit să consolidez o parte a informației
accumulate de -a lungul c elor patru ani de studio, însă am fost nevoit să ințeleg anumite
concepte și tehnologii noi. Acest lucru a fost de prisos pentru dezvoltarea aptitudinilor
tehnice, cât și pentru înțelegerea și crearea unor proiecte viitoare ce vor folosi aceleași
tehnologi i.

57
Capitolul 5. Anexe

5.1 Anexa 1. Cod Raspberry

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(16,GPIO.OUT) #motor_2(+)
GPIO.setup(18,GPIO.OUT) #motor_2( -)
GPIO.setup(22,GPIO.OUT) #motor_1( -)
GPIO.setup(24,GPIO.OUT) #motor_1(+)
GPIO.setup(12,GPIO.OUT) #PWM_motor_1
GPIO.setup(32,GPIO.OUT) #PWM_motor_2

pwm_1 = GPIO.PWM(12, 100) #pwm_1 pin frecvența 100 Hz motor_1
pwm_2 = GPIO.PWM(32, 10 0) #pwm_2 pin frecvența 100 Hz motor_2
pwm_1.start(0) #putere inițială motor_1
pwm_2.start(0) #putere inițială motor_2

def inainte():
GPIO.output(16, True) #motor_2(+)
GPIO.output(18, False) #motor_2( -)
GPIO.output(22, False) #motor_1( -)

58
GPIO.output(24, True) #motor_1(+)
GPIO.output(12, True) #pwm_1 pin activ
GPIO.output(32, True) #pwm_2 pin activ

def inainte_manual():
GPIO.output(16, True) #motor_2(+)
GPIO.output(18, False) #motor_2( -)
GPIO.output( 22, False) #motor_1( -)
GPIO.output(24, True) #motor_1(+)
GPIO.output(12, True) #pwm_1 pin activ
GPIO.output(32, True) #pwm_2 pin activ
pwm_1.Chan geDutyCycle(100) #pwm_1 maxim
pwm_2.ChangeDutyCycle(100) #pwm_2 maxim

def inapoi():
GPIO.output(16, False) #motor_2(+)
GPIO.output(18, True) #motor_2( -)
GPIO.output(22, True) #motor_1( -)
GPIO.output(24, False) #motor_1(+)
GPIO.ou tput(12, True) #pwm_1 pin activ
GPIO.output(32, True) #pwm_2 pin activ

59
pwm_1.Chan geDutyCycle(100) #pwm_1 maxim
pwm_2.ChangeDutyCycle(100) #pwm_2 maxim

def stanga():
GPIO.output(16, True) #motor_ 2(+)
GPIO.output(18, False) #motor_ 2(-)
GPIO.output(2 2, True) #motor _1(-)
GPIO.output(24, False) #motor _1(+)
GPIO.ou tput(12, True) #pwm_1 pin activ
GPIO.ou tput(32, True) #pwm_2 pin activ
pwm_2.ChangeDutyCycle(100) #pwm_1 maxim
pwm_1.ChangeDutyCycle(30) #pwm_2 – 30%

def dreapta():
GPIO.output(16, False) #motor _2(+)
GPIO.output(18, True) #motor _2(-)
GPIO.output(22, False) #motor _1(-)
GPIO.output(24, True) #motor _1(+)
GPIO.ou tput(12, True) #pwm_1 pin activ
GPIO.output(32, True) #pwm_2 pi n activ
pwm_2.ChangeDutyCycle(30) #pwm_2 – 30%

60
pwm_1.ChangeDutyCycle(100) #pwm_1 maxim

def stop():
GPIO.output(16, False) #motor _2(+)
GPIO.output(18, False) #motor _2(-)
GPIO.output(22, False) #motor _1(-)
GPIO.output(24, False) #motor _1(+)
GPIO.output(12, True) #pwm_1 pin activ
GPIO.output(32, True) #pwm_2 pin activ
pwm_1.ChangeDu tyCycle(0) #pwm_1 minim
pwm_2.ChangeDutyCycle(0) #pwm_2 minim

5.2 Anexa 2. Cod MSP430G2543

int timp_afisare; //20000 – 1 secunda
unsigned int buff_tens[10], buff_crnt[10];
unsigned int bf_tens[10], bf_crnt[10];
unsigned int tens_inst , crnt_inst;

#define I_01xC 120000 // 120 mA = 2 x 60 mA
#define I_1xC 1000000 //1000 mA
#define Vth_1st 750000 // 7.5V = 2.5V x 3
#define Vth_2nd 1260000 //12.6V = 4.2V x 3

#define I_1k0 100000 //100 mA for NiMH AAA
#define I_2k7 270000 //270 mA for NiMH
#define I_2k7_F 500000 //500 ma for NiMH fast charging algorithm

void adc10_ISR (void)
{
//stage I – acquire data for PWM
if (timp_afisare % 5 == 0) //cam 4 ms
{
if ( i_work < 10 ) //de 10 ori intra aici
{

61
bf_tens[i_work] = ADC_da ta[0]; //from P1.7 line
bf_crnt[i_work] = ADC_data[3]; //from P1.4 line
}
i_work ++;

if (i_work == 11) //a 11 oara intra aici iar apoi va intra in if -ul
de mai sus
{
i_work = 0;

//valori instantanee ale:
// tensiunii (batt + elem. sesizor curent) ;i
// curentului (prin elementul sesizor si, respectiv, prin
baterie)
tens_inst = instantFilt(bf_tens); // Tens: daca b =
227550 -> echiv. cu 2.27 [V]
crnt_inst = instantFilt(bf_crnt); // daca c = 4508
-> echiv. cu 0.045 [V]
//c tens pe Rsense
//b – c = 223042 -> echiv. cu 2.23 [V]
//b tens pe Rsense si pe Acc
// Curent: daca b = 269205 -> echiv. cu 0.269 [A]
// daca b = 117820 -> echiv. cu 0.117 [A]
c = convQ(crnt_inst, 56);
//Vin is 19.5V => 5K + 1K div. => 1/6.0
b = convQ (tens_batt, 1500); //244 (1q) x 6 = 1464 (to fit
with the reality)
b = b – c; //tensiunea pe Acumulator

//curentul prin acumulator !
c = convQ (crnt_inst, 3827); // I = 244 / (0.3 x 8.5) =
7.5k/1kK + 1

AlgoritmIncarcare (working_alg, b, c);
cCheck_NiMH = 0; //the check of the ACC state is
finish
}
}

//stage II – acquire data to display
//all the following code is used only for user's display purposes
timp_afisare++;

if ( (timp_afisare % 100 == 0) && (ach_val == 1)) //intru din 400 x 50
us = 20000 us = 20 ms
{
buff_tens [contor_val] = ADC_data[0]; //from P1.7 line
buff_crnt [contor_val] = ADC_data[3]; //from P1.4 line
contor_val++;

if (contor_val == 10)
{
ach_val = 0; //termin ach. celor 10 valori
contor_val = 0; //contorul nr. de valoril pe care le
stochez

62
}
}
}
void AlgoritmIncarcare (char algh, unsigned long int tensACC, unsigned long int
crntACC)
{
if (algh == LiIo) //LiIo = 1
{
if (const_volt) //Constant voltage charging stage
{
if (crntACC < I_01xC)
{
noUpToStop++;
if (noUpToStop > 15) // if for 15 times crntACC < I_01xC
{ // then stop the charging process
stop_charging = 1 ;
const_volt = 0;
noUpToStop = 0;
return;
}
}

if (tensACC < Vth_2nd)
{
if (TA0CCR1 == 399) return;
TA0CCR1++;
}
else
{
if (TA0CCR1 == 0) return;
TA0CCR1–;
}

return;
}

if (tensACC < Vth_1st) //tensACC < 2.5V => curent constant inc. 50 mA
{ //Pre-charging stage Iacc = 0.1C
const_curn = 1;
noVbiger = 0;

if (crntACC < I_01xC)
{
if (TA0CCR1 == 399) return;
TA0CCR1++;
}
else
{
if (TA0CCR1 == 0) return;
TA0CCR1–;
}
}
else
if (tensACC < Vth_2nd) //Constant current charging stage

63
{ //Iacc = 1C
const_curn = 1;
noVbiger = 0;

if (crntACC < I_1xC) // I+1xC MODIF
{
if (TA0CCR1 == 399) return;
TA0CCR1++;
}
else
{
if (TA0CCR1 == 0) return;
TA0CCR1–;
}
}
else
{
noVbiger++;

if (noVbiger > 10) //10 times successive tensACC >
Vth_2nd =>
{ //start constant voltage charging stage
const_curn = 0;
const_volt = 1; //Sarting Constant voltage
charging stage
noVbiger = 0;
noUpToStop = 0; // to be sure the last
charging stage
// stop will be without any problems
}
}
}
}

64
Capitolul 6. Bibliografie

1. Datasheet TL2575
2. Datash eet LM358N
3. Datasheet MAX232N
4. Datasheet Display 1602A
5. http://www.ti.com/lit/ug/slau144j/slau144j.pdf
5. https://www.raspberrypi.org/documentation/hardware/computemodule/datasheet.md
6. https://e2e.ti.com/support/micro controllers/msp430/f/166/t/571712?MSP430G2452 –
Update -the-FW-on-the-MicroController
7. Datasheet L298N
10. http://ep.etc.tuiasi .ro/site/Electronica%20Industriala/referate%20laborator/L09%20 –
%20Convertor%20buck%202007.pdf
11.

Similar Posts