Capitolul 1 Introducere ………………………………………….. …………………………. 3 Capitolul 2 Noțiuni teoretice privind… [616344]

CUPRINS
Capitolul 1 Introducere ………………………………………….. …………………………. 3
Capitolul 2 Noțiuni teoretice privind sistemele de reglare
automată ………………………………………………………………………………… ………. 4
2.1 Caracteristici generale referitoare la sistemele automate ………… ……….4
2.2 Sistemele de reglare automată (SRA) …………….. …………….. ……… ………7
2.3 Noțiuni teoretice generale privind traductoarele (T) ……………… ………….8
2.4 Noțiuni teoretice generale privind regulatoarele (R) ……………… ……….12
2.5 Noțiuni teoretice generale privind elementele de execuție(EE)
…………………………………………………………………. …………….14
2.6 Noțiuni teoretice privind stabilitatea si calitatea SRA
………………………………………………………… …………….. …………15
2.7 Noțiuni teoretice privind sistemele de reglare Fuzzy
………………………………………………………… ………………………..16
Capitolul 3 Proiectarea si realizarea sistemului de reglare automată a
temperaturii ………. ………………………………………………. …………………………17
3.1 Elementele ce compun macheta realizată …………………….. ………………18
3.2 Schema bloc a sistemului …………………………………….. …………………..35
Capitolul 4 Realizarea aplicației pentru microcontroller -ul
ATMEGA328P …………….. ……………………………………………………….. ………40

2
4.1 Prezentarea mediului de programare specific placii
UNO …………………. ………………………………………………………………………….. 40
4.2 Prezen tarea programului propriu -zis realizat pentru sistemul de reglare
automata a temperaturii ……….. …………………………………………. ……………42
4.3 Prezentarea schemei logice ………………………………………….. …………. …55
4.4 Aplicatia Bridge Control Panel ……………………………………………… ……56
Concluzii …………………………………………………………….. …………………………63
Bibliografie ……………………… …………………………………. …………………………65
Anexe …………………………………………………………………. …………………………67

3

CAPITOLUL 1
Introducere

Din cele mai vechi timpuri, cea mai simplă metodă de încalzire a fost cea a
focului liber de lemne, care transmitea mediului ambient căldură prin radiație si prin
gazele de ardere ce se amestecau cu aerul din încapere.
Aceasta metodă de încalzire a fost în locuită mai târziu cu arderea de cărbuni de
lemn în vase speciale. Cărbunele era așezat în aceste vase în stare incandescentă, în
straturi, iar prin alimentarea cu aer suficient, arderea se făcea încet, aproape complet,
fără fum. Această metodă avea un ran dament destul de ridicat, deoarece toata căldura
produsă se degaja in încăpere.
O noua etapă de dezvoltare a tehnicii încălzirii o constituie arderea
combustibilului într -un fel de sobe sau cămine primitive, care serveau la prepararea
hranei, la început cu eliminarea produselor arderii direct în încaperi, iar mai târziu
(începând cu secolul XI -lea al erei noastre), cu evacuarea produselor arderii în exterior,
prin burlane.
Drept cele mai vechi instalații de încalzire centrală se pot considera
hipocaustele, utilizate de romani. Acestea constau dintr -un focar, din care gazele de
ardere treceau pe sub pardoseala încăperii și transmiteau căldura în sus. Gazele ieșeau
apoi deasupra acoperișului prin coșuri din plăci sau din olane de argilă, montate aparent,
care serveau în același timp si drept elemente de încalzire.
Prin îmbunătățirea continuă a acestui sistem a apărut sistemul de încălzire cu
canale de aer cald. Sistemul era alcătuit dintr -un focar in care erau așezate blocuri de
granit ce se încalzeau până la i ncandescență, după care aerul încălzit ce trecea peste
aceste blocuri se ridică în mod natural prin diverse canale în încaperi de încălzit. Acest
sistem a fost folosit până la sfârșitul secolului trecut.

4
După 1830 apar primele instalații de încălzire cu ap ă caldă (în Rusia în anul
1832, în Anglia 1834, în America in 1877 etc.).
Ca etapă superioară a dezvoltării tehnicii instalațiilor de încălzire trebuie privită
centralizarea aprovizionării cu căldură și transportul ei la distanță. La început s -a
dezvoltat transportul la distanță al aburului de înaltă presiune apoi al apei supraîncălzite.
În ultimii ani, în dezvoltarea tehnicii încălzirii și ventilării, s -au realizat succese
importante, reușind a se asigura menținerea în mod automat a temperaturii, umidități i și
vitezei aerului, corespunzătoare condițiilor optime de igienă și confort.
La noi in țară, primele instalații de încălzire centrală s -au executat la Teatrul
Național din București și la Ateneul Român din București, ambele funcționând cu abur.
Scopul acestei lucrări a constat efectiv în proiectarea și realizarea fizică a unui
sistem de reglare automată a temperaturii la un grătar miniatural.
Sistemul construit fizic este prevăzut și cu două butoane, permițând utilizatorului
să intervină la schimbarea referinței de temperatură, efectuându -se astfel reglarea
parametrului temperatură, în timp real.
Interfața cu utilizatorul este reprezentată de un display OLED, pe care sunt afișate
valorile parametrilor din sistem, dar în a celași timp, este permisă și comunicarea cu un
calculator printr -un port serial, cu ajutorul unui cablu USB, iar prin intermediul
aplicației Bridge Control Panel, utilizatorul are posibilitatea să observe, în timp real,
reprezentarea grafică a sistemului ș i modul în care se produce reglarea automată a
temperaturii.
În cadrul proiectării și realizării sistemului de reglare automată am urmărit
următoarele :
– Studierea și utilizarea corespunzătoare a microcontroller -ului ATMega328p de
pe platforma de dezvolt are UNO, prin intermediul căruia se pot realiza aplicații practice.
– Aprofundarea cunoștințelor privind senzorii de temperatură, tranzistoarele
Darlington, releele Omron și a celorlalte componente utilizate.
– Realizarea unui program care să satisfacă standardele unui sistem de reglare
automată a temperaturii, în care să existe, de asemenea și o interfață cu utilizatorul, de
control a temperaturii de referință și de monitorizare a parametrilor.

5
CAPITOLUL 2
NOȚIUNI TEORETICE PRIVIND SISTEMELE DE
REGLARE AUTOMATĂ

2.1 Caracteristici generale referitoare la sistemele automate
Un sistem reprezintă un ansamblu de elemente ce interacționează între ele și cu
exteriorul, în vederea atingerii unei finalități (sens, obi ectiv, scop). [2 ]
Un sistem automat reprezi ntă un sistem tehnic cu ajutorul căruia se realizează
supravegherea și comanda proceselor și instalațiilor tehnologice, fără intervenția directă
a omului. [2]
Un sistem automat (SA) este alcătuit din două părți principale :
– procesul de automatizat (P) ,
– dispozitivul de automatizare (DA), [1]
Un sistem este caracterizat de trei tipuri de mărimi fizice , și anume:
– mărimi de intrare,
– mărimi de stare,
– mărimi de ieșire. [1]
Mărimile de intrare sunt independente de sistem și influențează din exterior
starea și evoluția sistemului. [1]
Mărimile de stare sunt dependente de mărimile de intrare și caracterizează
starea internă curentă a sistemului. [1]
Mărimile de ieșire sunt dependente de mărimile de stare, uneori și direct de
mărimile de intrare și transmit în exterior (sistemelor învecinate) informație referitoare
la starea curentă a sistemului. [1]

6
Mărimile de stare ale unui sistem au două proprietăți esențiale : de mediere
a transferului intrare -ieșire (I -E) și de acumulare într-o formă concentrată a întregii
informații privind evoluția anterioară a sistemului. [3]
Sistemele pot fi împărțite în clase și categorii de sisteme cu trăsături și
comportamente asemănătoare, cum ar fi de exemplu:
– sistem ele continue și discrete,
– sistemele liniare și neliniare,
– sistemele cu și fără memorie,
– sistemele staționare și nestaționare,
– sistemele monovariabile și multivariabile,
– sistemele cu parametri concentrați și distribuiți,
– sistemele cu și fără timp mort,
– sistemele deterministe și stochastice,
– sistemele deschise și închise .[2]
Sistemul de reglare automată realizat în cadrul proiectului este :
– discret – cel puțin una dintre mărimi are o variație discretă în timp (referința)
– pentru proces rapid – viteza de răspuns a procesului reglat la un semnal aplicat
la intrare nu depășește 10 secunde (acționări electrice),
– după efect (cu reacție, feedback) – aduce valoarea temperaturii calculate în
grade Celsius la valoarea temperaturii de referință, prin comparații permanente între
acestea. Apariția erorii nu este prevenită, dar este acțiune de reducere începe imediat.
– electronic – agent purtător de semn al electric,
– unificat – se folosesc semnale standardizate,
– multivariabil – mai multe mărimi de intrare și de ieșire
– determinist – nu există incertitudini privind evoluția procesului
– deschis – senzorul de temperatură este influențat de temperatura a mbientală

7
2.2 Sistemele de reglare automată (SRA)

Un Sistem de Reglare Automată reprezintă un sistem tehnic cu ajutorul căruia
se urmărește aducerea sau menținerea valorii mărimii de ieșire dintr -un proces la o
valoare de referință în mod automat, fără intervenția omului, pe baza unei legi de
reglare. [3]
Reglarea este operația de menținere a mărimii de ieșire a unui proces la o
valoare cât mai apropiată de cea a unei mărimi de referință, în condițiile modificării în
timp a mărimii de referință și a acțiu nii perturbațiilor asupra procesului reglat (fig.
nr.2.1 și fig nr. 2.2 ). [3]

Fig. nr. 2.1 Schema bloc SRA – după efect

Fig. nr. 2.2 Schema bloc SRA – după cauză
În cadrul desenelor de mai sus sunt prezentate schemele bloc simplificate ale
unui sist em de reglare automată după efect (fig. nr. 2.1), respectiv sistem de reglare
automată după cauză.

8

În figurile prezentate anterior există următoarele simboluri :
– DA – dispozitiv de automatizare,
– P – proces,
– u – mărime de execuție,
– r – referință,
– y – ieșire,
– v1, v2 – perturbații,
– c – comandă,
Dispozitivul de automatizare (DA) din cadrul proiectului cuprinde :
– traductorul ( T) – furnizează informații privind starea curentă a sistemului,
o senzorul de temperatură LM50 – termistor
– regulatorul ( R) – generea ză comenzi pentru îndeplinirea obiectivului reglării,
o platforma UNO cu microcontrollerul ATmega328p – numeric
– element de execuție ( EE) – aplică comanda regulatorului în proces ,
o ventilatorul ( comandat prin tranzistorul TIP122 – liniar, continuu )
o tubul cu halogen ( comandat prin releul Omron G5LE – bipozițional )

2.3 Noțiuni teoretice generale privind traductoarele (T)
Traductorul reprezintă o parte componentă a dispozitivului de automatizare
(DA) din structura unui sistem de reglare automată, cu rolul de -a furniza date referitoare
la valoarea curentă a mărimii reglate ( în cadrul proiectului – a temperaturii calculate în
grade Celsius furnizate de senzorul de temperatură LM50 )
Traductoarele inteligente au în structură și un microcontroller, pe lângă
traduct orul clasic.
Acest tip de traductor îndeplinește funcții suplimentare. (afișare, stocare
temporară a datelor, autocalibrare, codificarea informației transmise)

9
Clasificarea traductoarelor :
după natura mărimii de intrare :
o traductoare de calitate
 traducto are de PH
 spectografe
o traductoare de mărime
 mărimi neelectrice
 temperatură
 debit
 presiune
 nivel
 umiditate
 viteză
 mărimi electrice
 tensiune
 curent
 rezistență
 frecvență
a) după natura mărimii de ieșire:
o parametrice – transformă o mărime neelectrică într -un parametru de
circuit electric
 rezistive
 inductive
 capacitive
o generatoare – transformă o mărime neelectrică într -o forță
electromagnetică
 termoelectrice
 sincrone
 piezoelectrice

10
Traductorul este alcătuit din :
– elementul sensibil ( în cadrul proiectului – senzorul de temperatură ) – preia
mărimea ce trebuie masurata și o transformă într -o mărime de obicei de natură
mecanică,
– adaptorul – transformă mărimea mecanică într -o mărime electrică, ce poate fi
prelucrată în cadrul SRA ( în cadrul proiectului – senzorul de temperatura
furnizează valori ce sunt transformate prin calcul în valori de tensiune, iar printr –
o formulă de calcul în grade Celsius – formula și altgoritmul de calcul sunt
prezentate la capitolul 3 )

Caracteristici pe baza cărora se face analiza performanțelor unui traductor : [2]

– pragul de insensibilitate (rezoluția) — reprezintă cea mai mică variație a
mărimii de intrare care produce o variație sesizabilă asupra mărimii de
ieșire;
– Robustețea – rezistență la anumiți factori externi
– liniaritatea — este proprietatea traductorului de a avea o caracteristică cât
mai liniară;
– prețul de cost – ținând cont de raportul calitate preț
– reproductibilitatea — este proprietatea de a se obține rezultate cât ma i
apropiate în cazul repetării, în condiții identice, a operației de măsurare;
– fidelitatea — este proprietatea de a se obține rezultate cât mai puțin
influențate de acțiunea factorilor perturbatori interni și externi;
– timpul de răspuns — timpul de stabiliz are a mărimii de ieșire la o variație
bruscă a mărimii de intrare;
– Simplitatea – design modern
– precizia — gradul de exactitate al operației de măsurare;
– fiabilitatea — proprietatea traductorului de funcționa în limita unor
performanțe impuse și în condiții de exploatare date, un interval de timp cât
mai mare;

11
Exemple de traductoare de temperatură
Termorezistența – tip de traductor de temperatură ce funcționează pe baza
variației electrice a unor metale pure sau semiconductoare, în raport de temperatură,
utilizat la măsurarea unor temperaturi de cel mult 400 °C
Acest traductor este alcătuit dintr -un fir subțire de m etal pur (platină, nichel,
cupru), bobinat neinductiv pe un suport izolator (ceramică, sticlă) introdus într -o teacă
de protecție. De obicei sunt utilizate termorezistențele din platină.
Pirometrul – tip de traductor bazat pe radiația termică ce permite măsurarea
temperaturii corpurilor supraîncălzite, fără a exista contact direct.
Traductorul cu cuarț – se caracterizează printr -o dependență liniară a
frecvenței de rezonanță a cristalului cu temperatura.
Termistorul – se caracterizează printr -o rezistență electrică care variază invers
proporțional cu temperatura. Este fabricat din amestecuri de oxizi de mangan, nichel,
cobalt, fier, sintetizate la temperaturi de peste 1000 °C.
Exemple de traductoare de viteză
Tahog eneratorul – este tipul de traductor cel mai des utilizat în aplicațiile
practice, reprezentând o micromașină electrică a cărei tensiune la borne este direct
proporțională cu turația, acesta montându -se la un capăt de ax al piesei de rotație.
În funcție de tipul de curent, tahogeneratorul poate fi :
– de curent continuu – poate măsura maxim 2000 de rotații pe minut,
– de curent alternativ – poate măsura maxim 3000 de rotații pe minut.
Traductorul fotoelectric –detectează variațiile unui flux luminos , variații ce
sunt dependente de viteza de rotație, utilizând un dispozitiv modulator acționat de axul
care se rotește.

12
În funcție de modalitatea în care se obține variația fluxului luminos,
dispozitivele modulatoare pot fi cu întreruperea fluxului luminos sau cu reflexia fluxului
luminos
Traductorul bazat pe efectul stroboscopic –permite determinarea vitezei de
rotație de pînă la zeci de mii de turații pe minut, având o precizie bună. Dispozitivul de
iluminare emite impulsuri luminoase de durată mica, fiind comandat de generatorul de
impulsuri cu frecvență reglabilă.
2.4 Noțiuni teoretice generale privind re gulatoarele (R)

Regulatorul reprezintă elementul decizional din structura unui sistem de reglare
automată.

Rolul regulatorului constă în :
– calculul erorii sau abaterii, prin compararea referinței (valoarea dorită
pentru mărimea de ieșire a procesului) cu măsura (valoarea curentă a ieșirii procesului);
– prelucrarea abaterilor după un anumit algoritm și generarea unui semnal
de comandă, astfel încât abaterea să fie cât mai mică, chiar egală cu zer o, în cazul ideal.

În funcție de energia utilizată există următoarele tipuri de regulatoare :
– electronice,
– pneumatice,
– hidraulice
Regulatoarele continue – au semnale de intrare și de ieșire sub forma unui
curent electric în gama 4..20mA. Regul atorul generează comanda, prin prelucrarea
erorii curente după altgoritmul PID (Proporțional – Integral -Derivativ), eroare
reprezentând diferența dintre referință și mărimea măsurată.

13
– Kp = reprezintă factorul de proporționalitate,
– Ti = constanta de timp integral,
– Td = constanta de timp derivativă,
– Co = comanda în lipsa abaterii,
În anumite cazuri Ti = ∞ și Td = 0, algoritmul reducându -se la PD și PI, ocazie
cu care comanda are forma : c= kp*e+c0, cu funcția de transfer Gr(s)=kp.
Regulatoare nu merice – au în componența lor următoarele elemente :
– un microcontroller prin intermediul căruia sunt prelucrate datele,
– o unitate de memorie – pentru stocarea datelor,
– magistrală – pentru transmisia datelor,
– o interfață serială – pentru comunicație
– unitate de intrare – pentru achiziția semnalelor ce dispun de CAN
(convertor analog -numeric)
– unitate de ieșire – dispune de un CAN (convertor numeric -analogic)
– dispozitiv de afișare – optional
Regulatoarele bipoziționale – generează un semnal de comandă ce poate avea
numai două valori distincte, notate convențional cu 0, respectiv 1, având o comandă
neliniară.
Regulatoarele logice programabile (PLC – Programmable Logic Controller)
– reprezintă un computer specializat pe aplicații industriale de reglare,
– poate avea consolă de programare cu butoane,
– informațiile sunt afișate pe un ecran LCD,
– prezintă unitate centrală de prelucrare, implementată cu ajutorul unui
microcontroller,
– sunt dotate cu memorie de tip Flash pentru stocarea programului,
– poate deține int erfețe de comunicare serială

14
2.5 Noțiuni teoretice generale privind elementele de execuție (EE)
Elementele de execuție reprezintă componente ale sistemelor de reglare
automată care primesc la intrare un semnal electric de la regulator și furnizează mărimi
de ieșire, în marea majoritate a cazurilor, de natură mecanică (forțe, cupluri) capabile să
modifice starea procesului
Elementele de execuție sunt alcătuite din două părți distincte :
– elementul de acționare (EA),
– organul de execuție (OE)

Elementul de acționare (EA) – transformă semnalul de comandă, primit de
regulator într -un cuplu de forță cu care acționează asupra organului de execuție
La elementele electrice, acționarea se realizează cu :
– electromagneți – se obține o acționare discontinuă, bipozițională
– motoare electrice de curent continuu sau alternativ.
Organul de execuție (OE) – reprezintă elementul care intervine asupra
procesului sub acțiunea forței sau cuplului generat de elementul de acționare.
În funcție de natura sursei de energie folosite, elementele de execuție sunt:
– electrice ,
o EA – motor rotativ, solenoid,
o OE – reostat , întrerupător,
– hidraulice sau pneumatice
o EA – cu membrane, cu piston, cu distribuitor,
o OE – robinet, vană
Organele de execuție electrice din cadrul elementelor de execuție sunt:
– dispozitive electrice de comutație – reglarea se face discontinuu,
– dispozitive electrice de tipul reostatelor sau amplificatoarelor magnetice,
în cazul în care este necesară o reglare continuă.

15
Reostatele cu cursor – utilizate pentru reglarea continuă a cu renților relativ
reduși, existând probleme la curenți mari, din cauza posibilității apariției de scântei care
să deterioreze spirele.
Contactoarele – întrerupătoare care servesc la conectarea/deconectarea
alimentării cu energie electrică, având elementul d e acționare cu electromagnet.
Amplificatoarele magnetice – permit o variație continuă a curentului de sarcină
la o tensiune constantă.

2.6 Noțiuni teoretice privind stabilitatea și calitatea SRA

Stabilitatea unui sistem de reglare automată este determinată de parametrii de
acordare ai regulatorului, iar în analiza stabilității se folosesc criterii de stabilitate, cum
ar fi Routh – Hurwitz și Nyquist. [3]
Criteriul de stabilitate Routh – Hurwitz – este un crit eriu de tip algebric și
presupune ca matricea Hurwitz asociată polinomului caracteristic procesului să aibă toți
minorii principali pozitivi, pentru a se considera stabil un sistem de reglare automată. [3]
Criteriul Nyquist – este un criteriu de stabilitat e de tip frecvențial ce poate fi
aplicat în studiul stabilității externe a sistemelor liniare continue, cu și fără timp
mort.[ 3]
Calitatea unui sistem de reglare automată este analizată prin indicii de calitate
asociați regimului staționar și dinamic. [2]
În regim staționar, calitatea reglării unui sistem de reglare stabil este dată de
valoarea erorii staționare, avându -se în vedere evoluția în timp a erorii pentru o anumită
funcție de intrare (referință sau perturbație) cu caracter persistent (de tip trea ptă, rampă
sau parabolă). Astfel, cu cât valoarea erorii staționare tinde mai mult spre valoarea 0, cu
atât mai mult sistemul este mai precis.

16
2.7 Noțiuni teoretice privind sistemele de reglare Fuzzy
Strategia de reglare Fuzzy se bazează mai mult pe exper iența și logica umană și
mai puțin pe metode matematice. Din această cauză alegerea funcției de apartenență al
unui element la mulțimea Fuzzy, ce ia valori în intervalul [0,1], este subiectivă, avându –
se în vedere și diferențele de percepție și exprimare a conceptelor abstracte. [22]
Astfel, în loc de ecuații matematice complexe , logica fuzzy utilizează descrieri
lingvistice pentru a descrie legătura dintre informația de intrare și acțiunea de ieșire. [22]
Variabilele cu care operează un sistem fuzzy nu au valori precise, fiind de tip
vag (fuzzy). Astfel, valorile pentru mărimea măsurată în cadrul proiectului –
temperatura – ar fi de tipul : temperatura foarte mică, mică, medie, mare, foarte
mare. [22]
Caracteristici referitoare la logica Fuzzy
– orice situaț ie este exprimată gradual,
– orice sistem logic poate fi reprezentat în logica fuzzy,
– raționamentul exact este privit ca un caz limită al raționamentului aproximativ,
– cunoașterea este interpretată ca o colecție de restricții fuzzy,
– deducția este privită ca u n proces de propagare al restricțiilor,
– are asociată o funcție caracteristică care ia valori în intervalul [0,1], care
caracterizează gradul de apartenență al unui element la mulțimea fuzzy,
– prin intermediul acestei logice se pot modela funcții complexe, cu nivel ridicat de
precizie,
– se poate combina cu tehnici convenționale de control. [22]
Sistemele bazate pe logica fuzzy cât și sistemele tradiționale bazate pe logica
bivalentă efectuează raționamente logice, însă spre deosebire de cele tradiționale,
sistemele de reglare fuzzy utilizează date inexacte, neputând fi folosite pentru analiza
datelor financiare spre exemplu, dar pot fi pretabile pentru recunoașterea de
caractere. [22]

17
CAPITOLUL 3

PROIECTAREA ȘI REALIZAREA SISTEMULUI DE
REGLARE AUTOMATĂ A TEMPERATURII

Sistemul de reglare automată a temperaturii conceput în acest proiect este
reprezentat de un grătar care își va menține temperatura constantă la o valoare de
referință în grade Celsius, stabilită de către operator.
Macheta cu care est e prevăzută proiectul de licență a fost construită pe baza unei
platforme de dezvoltare cu microcontroller ATmega 328p, iar mediul pe baza căruia a
fost scris programul pentru microcontroller este Arduino, versiunea actualizată 1.6.9.
Sursa de căldură es te conectată la o sursă de alimentare de înaltă tensiune ~220V
și este reprezentată de către un tub de halogen, controlat printr -un releu al cărui pin de
comandă este conectat la microcontrollerul precizat anterior.
De asemenea, sistemul beneficiază și de o sursă de răcire pe aer, definită printr –
un ventilator cu un coeficient ridicat de flux de aer.
Principiul de funcționare al sistemului este relativ simplu. Dacă valoarea
temperaturii furnizate de senzorul de temperatură către sistem este mai mică decât
valoarea stabilită în referință, atunci va funcționa sursa de căldură, iar în caz invers,
dacă valoarea fixată ca referință este mai mică decât temperatura actuală a senzorului,
atunci sursa de încălzire va fi oprită, iar ventilatorul va funcționa treptat până la
capacitate maximă.

18
3.1. Elementele ce compun macheta realizată
Referitor la structura sa, grătarul automatizat este alcătuit din următoarele
componente:
a) Platformă de dezvoltare bazată pe microcontrollerul ATmega328p
b) Senzor de temperatură Brick
c) Tub cu halogen
d) Placă releu SPDT 5VDC
e) Ventilator
f) Tranzistor TIP122 Brick
g) Display OLED
h) Butoane
i) Fire de conexiune, surse de alimentare, breadboard
j) Platformă din metal pe care a fost efectuat montajul

a) Platforma de dezvoltare UNO R3

Platforma de dezvoltare utilizată la realizarea machetei are în structura sa 14
întrări /ieșiri digitale și 6 intrări analogice. Din cei 14 pini digitali existenți pe placă, 6
pot fi utilizați și ca ieșiri PWM, iar cele 6 intrări analogice pot fi folosite și ca pini
digitali.
Această platformă este utilă la realizarea unei game largi de sisteme de reglare,
fiind prevăzută cu un microcontroller Atmega328p, echipat cu suficiente resurse
necesare la comandarea elementelor de execuție din cadrul sistemului proi ectat și
realizat în cadrul acestui proiect.

19

Fig. nr. 3.1 Platforma de dezvoltare UNO R3

Specificațiile tehnice ale platformei prezentate:
Microcontroller – Atmega328p
Tensiunea de intrare – 7-12V
Tensiunea de operare – 5V
14 Pini digitali de intrare /ieșire (din care 6 PWM de ieșire)
Pini analogi de intrare – 6
Curent continuu (DC)/pini de intrare/ieșire – 25 mA
Curent continuu (DC)/pini de 3.3 V – 50 mA
EEPROM – 1 KB
SRAM – 2 KB (ATmega328)
Viteza de ceas – 16 MHz

20

Fig. 3.2 Schema electrică a platformei Uno R3

21
Microcontroller -ul Atmega328p
Acesta prezintă o arhitectură de tipul microcontrollerelor AVR, însă mult mai
evoluată, putând executa instrucțiuni puternice intr -un singur ciclu de ceas, iar raportul
dintre puterea consumată și viteza de procesare este unul foarte bun.
În figura de mai jos este prezentată configurația pinilor microcontrollerului. În
cadrul schemei, VCC reprezintă sursa de alimentare, GND este masa, PORT B are
intrări/ieșiri bidirecționale pe 8 biți cu rezistențe interne de tip pull -up, PORT C are
intrări/ieșiri bidirecționale pe 7 biți, de asemenea cu rezistențe interne de tip pull -up,
PORT D este asemănător cu PORT B, AREF este referința analogică pentru convertorul
A/D

Fig. nr. 3.3. Schema microcontrollerului ATmega 3 28p

22
Specificațiile microcontrollerului utilizat :
– 131 de instrucțiuni – majoritatea executate într -un singur ciclu.
– 32 x 8 registrii de lucru,
– Segmente de memorie non -volatile super rezistente,
– 1 kbyte EEPROM,
– 10000 de cicluri de scriere/stergere memorie Flash,
– 100000 de cicluri de scriere/stergere memorie EEPROM,
– 20 de ani reținere date la 85 grade Celsius,
– 100 de ani reținere date la 25 grade Celsius,
– Numărător de timp real cu oscilator intern separat,
– 6 canale PWM,
– Interfață serială SPI,
– De la -40 grade Celsius până la 85 grade Celsius temperatură de funcționare,
– De la 1.8 V până la 5.5 V tensiune de operare,
– Consum redus de curent – 0.3 mA,
– Viteză de 20 Mhz la o tensiune de operare de 4.5 -5.5 V
b) Senzorul de temperatură Brick
Acest senzor este un el ement care sesizează nivelul temperaturii din mediul
ambiental. Sunt necesare decât trei fire pentru a putea fi conectat la platforma de
dezvoltare și anume : un fir pentru tensiunea de 5V (VCC), un fir pentru masă (GND) și
un fir ce este conectat la un pi n analogic (OUT).

Fig. nr. 3.4 Senzorul de temperatură Brick
Prin ultimul fir de conexiune menționat se transmite către microcontrollerul
platformei de dezvoltare o valoare analogică din domeniul 0..1024 care va fi

23
transformată, printr -un algoritm (algor itm e corect) de calcul, într -o valoare în grade
Celsius.
Referitor la algoritmul de calcul pentru transformarea valorii brute furnizate
sistemului de către senzorul de temperatură, sunt utilizați următorii pași:
Pasul nr. 1. În primul rând se citește valoarea brută a senzorului de
temperatură, valoare transmisă de către senzor microcontrollerului ATmega328p, printr –
un pin analogic al platformei prezentate anterior,
Pasul nr. 2. Valoarea brută este apoi convertită într -o valoare în tensiune, prin
inmulțirea valorii de tip zecimal fu rnizate inițial de către senzor cu valoarea tensiunii
aplicate, de 5 volți,
Pasul nr. 3. Domeniul valorii abținute va fi fixat la [0..1024] prin împărțirea
valorii obținute la pasul anterior la valoarea de 1024
Pasul nr. 4. Valoarea finală exprimată în grade Celsius a valorii furni zate
inițial de căte senzorul de temperatură se obține prin convertirea din valoarea în
tensiune în valoare în grade Celsius, prin aplicarea formulei „valoare_netă_Celsius =
(valoare_pasul3 – 0.5)*100”, unde “valoare_pasul3 = (valoare_brută_senzor * 5.0) /
1024.0”
Astfel, formula de calcul finală are următoarea formă :
„valoare_netă_Celsius = ((valoare_brută_senzor * 5.0) / 1024.0 – 0.5)*100 ”
Din punct de vedere tehnic, senzorul LM50 este utilizat la construcția modulului
Brick. Acesta măsoară efectiv temperatura capsulei albastre a modulului Brick.
Senzorul LM50 este util în realizarea și de proiecte de tip didactic, datorită costurilor
de achiziție reduse.

Fig. nr. 3.5 Senzorul de temperatură LM50,

24
Senzorul LM50 este utilizat în construcția autoturismelor, computerelor,
imprimantelor, instrumentelor portabile medicale, surselor de curent, aparatelor de fax
și alte aplicații.

Fig. nr. 3.6 Schema senzorului LM50
Specificații ale senzorului de temperatură LM50
– Senzor analogic cu o eroare de + -2 grade Celsius,
– De la -40 grade Celsius până la 125 grade Celsius interval de măsurare,
– Optim pentru aplicații la distanță,
– Cost redus de achiziție,
– De la 4.5 la 10V tensiune de operare,
– Sub 130 yA consum de curent,
– Valoarea tensiunii de ieșire este apr oape proporțională cu valoarea în gradel
Celsius
Prin corelația formulei prezentate anterior și a ultimei specificații de mai sus, reiese
faptul că valoarea de 0.5 reprezintă acea diferență ce trebuie scăzută din valoarea în
tensiune a senzorului pentru a fi proporțională cu valoarea în grade Celsius.

c) Tub cu halogen
Sursa de încălzire a sistemului de reglare automata a temperaturii realizat este
reprezentată de un tub de halogen alimentat la 220V, fiind o sursă eficientă de căldură,
temperatura produsă la circa 1 cm de tubul aprins, depășind, fără probleme, valoarea de
100 grade Celsius.

25

Fig. nr.3.7 Tub de halogen în suport artizanal

Specificații tehnice :
– Tip – R7S 15255
– Putere lampa – 1000W
– Dulie – R7S J189mm
– Unghi dispersie lumină – 360 grade
– Tensi une alimentare – 230 V
– Frecvență – 50 Hz
– Flux luminos – 4600 lm
– Durata medie de viață – 2000 ore
– Temperatura degajată – peste 200 grade Celsius

Fig. nr. 3.8 Reprezentarea schematică a tubului de halogen

26
d) Placă releu SPDT 5VDC
Pentru comanda sursei de căldură reprezentată de tubul de halogen
prezentat anterior, alimentat la ~220V, a fost utilizat un releu conectat printr -un
pin digital la microcontroller.

Fig. nr. 3.9 Modul releu – vedere față /spate
Prescurtarea SPDT semnifică „ SINGLE -POLE, DOUBLE -THROW ” și
sugerează faptul că, prin intermediul releului, comandat printr -un pin digital
căruia îi este furnizată tensiunea de 5V sau 0V, se poate controla simultan două
circuite, din care unul va fi la momentul de timp t deschis, iar celălalt va fi închis
la același moment de timp t.

Fig. nr. 4.10 Schema plăcii cu releu

27
Din figurile prezentate anterior se observă faptul că pinii prin care se
conectează placa cu releu la sistem au următoarele denumiri :
– EN – reprezintă pinul de comandă și face conexiunea cu pinul digital prin
care microntrollerul controlează efectiv sursa de căldură, prin aplicarea pe
respectivul pin a unei tensiuni de 5V sau 0V,
– VDD – pinul prin care se alimentează cu 5V releul pentru a deveni
functional,
– GND – pinul conectat la masa,
– NO (normally open) – normal deschis – dacă un capăt al circuitului este
conectat la acest pin, atunci circuitul va fi deschis și se va închide în
momentul în care se va furniza 5V pe pinul de comandă EN,
– NC (normally closed) – normal închis – dacă un capăt al circuitului este
conectat la acest pin, atunci circuitul va fi închis și se va deschide în
momentul în care se va furniza 5V pe pinul de comandă EN
– COM (common) – pinul la care se conectează celălalt capăt al circuitului
Pe placa cu releu SPDT de 5V există releul OMRON G5LE, ideal pentru o
varietate de aplicații din diferite domenii de activitate.

Fig. nr. 3.11 Releul OMRON G5LE

Caracteristici :
– Rezistență contact – maxim 100mΏ,
– Timp de operare – maxim 10 ms,

28
– Timp de eliberare – maxim 5 ms,
– Temperatura de operare – -25 grade C – 85 grade C,
– Durabilitate – mecanică – 10.000.000 operații și electrică – 100.000 operații
– Umiditate de operare – 35% – 85%,
– Greutate – 12g.
e) Ventilator
Sursa de răcire a sistemului de reglare automată a temperaturii e ste reprezentată
de ventilatorul din imagine. Comanda ventilatorului se realizează prin intermediul unui
pin digital de pe platforma de dezvoltare, pin conectat prin intermediul unui modul cu
tranzistor la ventilator.

Fig. nr. 4.11. Ventilator
Nu este posibilă conectarea directă a ventilatorului la pinul de comandă,
deoarece acesta funcționează la o tensiune de 12V, iar pinul de comandă furnizează doar
5V. În plus conectarea directă ar conduce la arderea pinului digital respectiv, din cauza
supraaliment ării.
Specificații :
– Viteză – 800RPM la 50%PWM și 4100 RPM la 100%PWM,
– Flux de aer – 148.0 CFM în aer liber,
– Presiune statică – 0.5 inch, apă,
– Tip rulment – bilă, dual,

29
– Temperatura de operare – de la -10 grade Celsius la 70 grade Celsius ,
– Nivel zgomot – 53.0 dBA la un metro distanță,
– Tensiune de operare – maxim 12V
Ventilatorul ales la realizarea proiectului practice are un flux de aer ridicat,
permițând astfel o răcire corespunzătoare atunci când sursa de căldură este oprită prin
comandarea releului des cris anterior.

Fig. nr. 3.12 Grafic RPM în raport de PWM
În graficul de mai sus se observă dependența existentă între numărul de rotații pe
minut ale ventilatorului ales și tensiunea aplicată la bornele acestuia. Tensiunea maximă
aplicată este de 12V rep rezentând, în același timp, un procent PWM de 100% și o
comandă de 5V pe pinul digital ales pentru modulul cu tranzistor conectat la ventilator.
Astfel, la comanda maximă, numărul de rotații va depăși 4000 de RPM.
Tensiunea de 0 -5V furnizată prin pinul de comandă este direct proporțională cu
tensiunea de 0 -12 V cu care este alimentat efectiv ventilatorul, precum și cu domeniul
[0..255], reprezentând viteza ventilatorului , prin care se aplică comanda în programul
microcontrollerului. Prin formula procent_PWM = (viteza *100)/ 255 , se calculează
procentele prezentate în graficul din figura nr. 3.12.

30

Fig. nr. 3.13 Reprezentare PWM de 50%
În figura nr. 3.13, faptul că valoarea procentuală a PWM -ului ( Pulse Width
Modulation) este de 50% se observă din faptul că într -un ciclul PWM format din timpul
în care este furnizată tensiunea de 5V și timpul în care nu se furnizează tensiune, cele
două durate, notate cu x, sunt egale. Astfel, tensiunea furnizată în timp real va fi
jumătate din tensiunea maximă, în cazul nostru, valoarea acesteia fiind de 2,5 V, ceea ce
semnifică jumătate, adică procentul de 50% precizat anterior.
f) Tranzistor TIP122 Brick
Din aspectele precizate cu ocazia descrierii ventilatorului și a modului de
funcționare rezultă că s -a făcut referire și la faptul că, la realizarea sistemului de
reglarea automată a temperaturii, s -a utilizat un tranzistor implementat într -un modul, în
vederea ușurării efectuării conexiunilor.
Neutilizarea unui tranzistor ar cond uce la imposibilitatea folosirii ventilatorului,
ba mai mult, la deteriorarea plăcii de dezvoltare, prin care se comandă, prin PWM,
rotațiile efectuate de către elicea ventilatorului.

31

Fig. nr. 3.15 Modul cu tranzistor

În cadrul proiectului, ventilatorul este comandat automat, prin microcontrollerul
ATmega328, prin intermediul unui transistor TIP122 ce suportă un curent de până la 5
A.
La acest modul sunt conectate 6 fire după cum urmează : două fire duc la masă
(GND), un fir duce la pinul d igital prevăzut cu PWM, al platformei de dezvoltare, pin
prin care se realizează comanda propriu -zisă a ventilatorului, un alt fir se duce la
tensiunea de intrare a platformei (VIN), iar celelalte două fire se duc la bornele de
alimentare ale ventilatorulu i.

Fig. nr. 3.16 Tranzistorul TIP 122 și schema acestuia
În figura de mai sus este prezentat tranzistorul TIP122, utilizat la realizarea
proiectului. Acest tranzistor este un model Darling, cu configurație NPN, ce suportă
curent de până la 5A și tensiu ne de până la 100V.
Rezistența R1 din figura nr. 3.16 are o valoare de 10 KΏ, iar R2 este de 150 Ώ.
Baza intră în pinul digital de comandă, Emitter -ul se duce la masa, iar collector -ul va

32
furniza tensiunea comandată către consumator și anume către ventila torul descris
anterior.

g) Display OLED
Monitorizarea parametrilor din sistemul de reglare automată a temperaturii, este
realizată prin afișarea acestora pe un ecran de tip OLED, prezentat în figura de mai
jos.

Fig. nr. 3.17 Display OLED
Acest display este de dimensiuni reduse, având doar 0,91 inch (128×32 pixeli),
însă are un coeficient foarte bun din punct de vedere al raportului calitate -preț, mai ales
dacă se ține cont că se poate comunica cu acesta prin protocolul I2C, necesitând
alimentarea sa cu 3V și conexiunea doar prin pinii SDA și SCL ai plăcii de dezvoltare,
făcând astfel economie de pini digitali necesari pentru alte componente.
Specificații tehnice :
– Greutate – 10g,
– Producător – EastRising,
– Tip – ER-OLED 0.91 – 1B,
– Display – 128×32 px,
– Interfață – serial SPI – 4 fire,
– IC – SSD1306,
– Culoare – albastru,
– Diagonală – 0.91 inch,
– Unghi de vedere – 80 de grade,
– Tensiune de alimentare – 2.8 V,
– Temperatură de operare – între -30 grade Celsius și +80 grade Celsius.

33
Modulul cu display OLED are nevoie doar de o singură sursă de alimentare de
2.8V, întrucât display -ul își produce singur lumina și nu este necesară lumina de fundal.
Datorită acestor aspecte display -ul are un contrast ridicat, un unghi mare de vedere și
suportă temperaturi extreme de operar e.
Acest modul este foarte ușor de controlat prin intermediul unui microcontroller
de tip PIC, AVR, ARDUINO, ARM sau Raspberry Pi și poate fi utilizat în cadrul
diverselor sisteme , dispozitive industriale,de securitate, medicale sau de alte tipuri.

h) Butoane
În vederea stabilirii temperaturii de referință de către utilizator, sistemul este dotat
cu două butoane, din care unul este prevăzut cu capac negru, iar celălalt este prevăzut cu
capac de culoare roșie, așa cum se observă și in figura următoare.

Fig. nr. 3.18 Butoane utilizate la realizarea proiectului

Cele două butoane din figura de mai sus sunt conectate prin câte un fir la un pin
de masă (GND) al sistemului, iar cel de -al doilea fir de la fiecare buton este conectat la
câte un pin digital al imentat cu tensiunea de 5V, pentru a realiza astfel o rezistență de
tip pull -up, cu ajutorul căruia, în momentul apăsării butonului, se produce schimbare
valorii citite de către microcontroller din valoarea 1 în valoarea 0, avertizând astfel
sistemul că b utonul respective a fost apăsat, urmând să se execute instrucțiunile impuse
pentru acest eveniment. Butonul negru scade referința, iar cel roșu o incrementează.

34
i) Fire de conexiune, surse de alimentare și breadboard
Componentele ce alcătuiesc sistemul de r eglare automata a temperaturii au fost
conectate prin intermediul firelor de tip tată -mamă și tată -tată, precum și prin
intermediul unui breadboard .
Sursa de căldură este alimentată direct la priză la 220V , iar placa de dezvoltare
Uno și celelalte compo nente conectate la platform ă sunt alimentate dintr -o sursă de până
la 12V, din care placa de dezvoltare obține doar 5V, cu ajutorul unui stabilizator de
tensiune de 5V.

Fig. nr. 3.19 Fire, sursă de alimentare, breadboard
După cum se poate observ a și în figura de mai sus, dar și în figura următoare,
display -ul OLED a fost montat pe breadboard, facilitând astfel conectarea acestuia la
sistem, precum și stabilitatea poziției sale pe macheta metalică.

j) Platformă din metal pe care a fost efectuat montajul
În figura de mai jos este prezentată macheta metalică a sistemului de reglare
automată a temperaturii, simbolizând un grătar în miniatură, la care utilizatorul setează
o anumită referință prin intermediul celor două butoane prezentate anterior, du pă care,
sistemul iși reglează temperatura, în timp real, astfel încât valoarea acesteia crește sau
scade în funcție de valoarea de referință.

35

Fig. nr. 3.20 Macheta metalică
Referitor la componentele metalice folosite la construcția grătarului miniatura l,
este de menționat faptul că elementele metalice sunt pe de o parte, elemente utilizate în
construcții, iar capacul – grătarul propriu -zis reprezintă de fapt un spălător de vase
achiziționat de la un supermarket de profil. Elementele metalice, cât și co mponentele
electronice au fost lipite cu bandă dublu adezivă folosită la lipirea elementelor de
caroserie la autoturisme.
3.2 Schema bloc a sistemului
În continuarea descrierii componentelor utilizate la realizarea proiectului, în
figura de mai jos este prezentată schema bloc cu intrările și ieșirile aferente sistemului
de reglare automată a temperaturii realizat.

36

Fig. nr. 3.21 Schema bloc a sistemului

Din figura de mai sus se observă faptul că există trei întrări (buton negru, senzor
de temperatură și buton roșu) și trei ieșiri (ventilator, display și tub cu halogen).
Componentele electronice ce compun proiectul fizic sunt interconectate și
formează subsisteme, după cum urmează :
a) Senzorul de temperatură este reprezentat de modulul Brick cu senzor LM 50
conectat la sistemul central, reprezentat de platforma de dezvoltare UNO, prin trei pini:
– OUT – este conectat la pinul analogic A0,
– VCC – alimentare cu 5V,
– GND – masa sistemului
b) Subsistemul „Interfață utilizator” este reprezentat de butonul negru și cel roșu
conectate la sistemul central prin două fire, astfel:
– un fir de la fiecare buton la GND – masa sistemului

37
– al doilea fir de la butonul negru la pinul digital D3
– al doilea fir de la butonul roșu la pinul digital D5
c) Subsistemul „Sursa de încălzire” e ste reprezentat de tubul de halogen și de
modulul cu releu Omron G5LE, conectat la sistemul central prin EN, VCC și GND și la
tubul cu halogen prin NO și COM :
– EN – este conectat la pinul digital D7,
– VCC – alimentare 5V,
– GND – masa sistemului,
– NO – (normal deschis) – unul dintre cele două fire de la sursa de 220V
– COM – (common) – unul dintre firele de la tubul cu halogen (celălalt fir de
sursa de 220V este conectat cu celălalt fir de la tubul cu halogen)
d) Subsistemul „Sursa de răcire” este reprezentat de ven tilator și de modulul cu
tranzistor TIP122, conectat la sistemul central prin VIN, IN, GND, GND și la ventilator
prin MOTOR1 și MOTOR2 :
– VIN – alimentarea plăcii de dezvoltare – 12V,
– IN – este conectat la pinul digital D11,
– GND – masa sistemului
e) Subsistemul „Monitorizare” este reprezentat de modulul cu display OLED și
este conectat (I2C la adresa 0x3C) la sistemul central prin VCC, GND, SDA și SCL :
– VCC – alimentarea de 3.3V de pe placa de dezvoltare,
– GND – masa sistemului,
– SDA (Data Line) – pinul SDA de pe placa de dezvoltare,
– SCL (Clock Line) – pinul SCL de pe placa de dezvoltare.

38

Fig. nr. 3.22 Schema bloc a SRA de reglare
În figura de mai sus avem următoarele simboluri :
– T –temperatura grătarului.
– Vrotație – viteza de rotație a ventilatorului
– Qaer – debitul de aer împins de ventilator
– Tref – temperatura de referință
– Th – temperatura tubului de halogen
Viteza de rotație a ventilatorului utilizat ca sursă de răcire este influen țata de
diferența dintre temperatura de referință și t emperatura măsurată prin intermediul
senzorului de temperatură, după cum se poate observa în figurile de mai jos.

Fig. nr. 3.23 Evoluția PWM în timp

39
În cazul în care temperatura măsurată este mai mare decât referința, viteza de
rotație a ventilatorulu i crește, dacă temperatura măsurată este mai mică decât referința,
atunci viteza va scade, iar dacă valorile acestora sunt egale, atunci ventilatorul se va
opri, vitezei atribuindu -se valoarea 0.
Semnalul electric transmis către tranzistorul prin care se controlează variația
vitezei ventilatorului este redat prin programul microcontrollerului în domeniul discret
[0..255]. Astfel valoarea 0 echivalează cu un pwm cu procent de 0%, iar valoarea de
255 semnifică un procent pwm de 100%.
În cadrul programului p rezentat în capitolul următor, viteza din domeniul
menționat anterior este incrementată cu 15 la fiecare 300 de milisecunde. Acest aspect
se poate observa și în figura anterioară. Astfel, valoarea maximă fiind 255, rezultă că
viteza este incrementată sau scăzută de la minim la maxim în 17 (255/15) bucle ale
programului. Se cunoaște faptul că fiecare ciclu durează 300 milisecunde , ceea ce
înseamnă că timpul în care se atinge viteza maximă este de 5100 (17*300)de
milisecunde.
Timp = bucla*durată_ciclu ; (ms) , iar PWM = (viteza*100)/255 (%)
În tabelul de mai jos apar calculele pentru primele 10 cicluri, utilizând cele două
formule de calcul scrise anterior.

Bucla 1 2 3 4 5 6 7 8 9 10
Viteza 15 30 45 60 75 90 105 120 135 150
Timp 300 600 900 1200 1500 1800 2100 2400 2700 3000
PWM 5,88 11,76 17,64 23,52 29,41 35,29 41,17 47,05 52,94 58,82

40
CAPITOLUL 4

REALIZAREA APLICAȚIEI PENTRU MICROCONTROLLER -UL
ATMEGA328P

4.1 Prezentarea mediului de programare specific plăcii UNO
În vederea realizării programului, a fost utilizat mediul de programare Arduino,
versiunea 1.6.9, fiind ultima versiune testată și perfect funcțională la data proiectării
sistemului.
Interfața mediului Arduino este prietenoasă, iar sintaxa de programare este ușor
de memo rat și de utilizat. După scrierea sintaxei unui program, pentru a compila
programul și transfera în memoria internă a microcontrollerului ATmega328p de pe
placa de dezvoltare, este necesară stabilirea unei conexiuni seriale

Fig. nr. 4.1 Mediul de program are Arduino 1.6.9

41
După cum se poate observa în figura nr. 4.1, din opțiunea TOOLS, se selectează
mai întâi platforma de dezvoltare folosită – BOARD. Întrucât sistemul de reglare
automată a temperaturii ce face obiectul acestui proiect a fost realizat pe ba za platformei
de dezvoltare UNO, atunci vom face selecția conform chenarului roșu din figură. După
selectarea plăcii, un alt pas important fără de care upload -ul programului nu ar fi
posibilă, este stabilirea canalului de comunicație serial dintre compute r și platforma de
dezvoltare selectată, așa cum se poate observa în chenarul albastru din desenul anterior.
Ulterior stabilirii platformei de dezvoltare și a canalului de comunicație serială,
în partea de jos a ferestrei aplicației de programare ne va apăr ea informațiile despre
selecțiile făcute.

Fig. nr. 4.2 Compilare și upload

Comunicarea propriu -zisă se efectuează printr -un cablu USB prin care se vor
transmite, prin biți de date, programul rezultat în urma compilării sintaxei. În cazul
apariției de erori de sintaxă, aplicația avertizează programatorul cu privire la acestea și
se va proceda la compilarea efectivă și completă a sintaxei de abia în momentul în care
nu vor mai fii depistate erori de sintaxă.
De asemenea, o mare atenție trebuie acordată erorilor de logică care pot fi
făcute cu ocazia scrierii codului sursă a unui program, deoarece compilatorul nu le poate

42
depista și pe acestea, iar riscul ca programul să nu se comporte corespunzător este
cresc ut când intervin astfel de erori.
În cazul în care verificarea a reușit , iar programul a fost compilat cu brio, în
partea de jos a ferestrei de programare va apărea un mesaj. În cadrul acestui proiect,
după compilarea programului realizat pentru sistemul de reglare automată, va apărea
mesajul încadrat în chenarul galben.
Din acest mesaj se conturează faptul că programul realizat ocupă 42% (13638
de bytes) din memoria de stocare a microcontrollerului, iar variabilele globale utilizate
ocupă 53% (1906 de byt es) din memoria dinamică, lăsând 952 de bytes pentru
variabilele locale.

4.2 Prezentarea programului propriu -zis realizat pentru sistemul de
reglare automată a temperaturii
Codul sursă al programului este compus din următoarele părți :
a) Partea declarativă
b) Partea de setup
c) Partea de loop infinit

a) Partea declarativă a programului

În această parte din program se declară și se inițializează variabilele globale
precum și librăriile folosite. Această parte este împărțită generic în două porțiuni :
– În prima porțiune sunt declarate librăriile utilizate :
o SPI – pentru comunicare serială SPI ( Serial Peripheral Interface),
o WIRE – pentru I2C (protocol de transmisie de date),
o Adafruit_GFX și Adafruit_SSD1306 pentru controlul display -ului,

43
– Tot în prima porțiune sunt declarați pinii prin care se efectuează comanda
subsistemelor:
o Subsistemul „Sursa de răcire” – pinul D11,
o Subsistemul „Sursa de căldură” – pinul D7,
o Subsistemul „Interfață utilizator” – pinii D3 și D5,
o Senzor de temperatură – pinul A0,

Fig. nr. 4.3 Prima parte declarativă a programului

– În a doua porțiune din partea declarativă sunt declarate constantele și
variabilele globale de tipul „numere întregi”. Astfel avem următoarele constante :
– viteaza minimă – reprezintă valoarea de v iteză cea mai mică pe care o
poate avea ventilatorul pe parcursul funcționării sistemului. Viteza sa maximă este
proporțională cu valoarea 255.

44
– prag minim – valoarea cea mai mică la care poate fi setată de către
utilizator temperatura de referință, pri n apăsarea butonului negru,
– prag maxim – valoarea cea mai mare pe care o poate lua temperatura de
referință cu ocazia setării efectuate de către utilizator prin apăsarea butonului roșu,
– Tref inițial – reprezintă valoarea temperaturii de referință la inițializarea
sistemului prin alimentarea sa cu energie electrică.

Fig nr. 4.4 Partea secundară declarativă a programului
Variabilele globale „negru” și „roșu” vor avea doar valoarea 0 sau 1. Astfel,
dacă unul dintre cele două butoane va fi apăsat, starea butonului respectiv va fi reținută
de către variabila corespunzătoare, prin valoarea 0, iar în caz contrar, prin valoarea 1,
dacă butonul nu este apăsat.
Variabila „Tref” reține, în timp real, valoarea setată de utilizator a temperaturii
de referinț ă. Această valoare nu poate fi mai mică decât valoarea setată în program

45
pentru variabila „prag_minim” și nici mai mare decât valoarea setată în program pentru
variabila „prag_maxim”.
Variabila „încălzire” va reține doar valoarea 0 sau 1, în funcție de sta rea
subsistemului de încălzire. Astfel, dacă căldura este pornită va reține 1, iar în caz
contrar, va reține 0. Această variabilă este utilizată și pentru a afișa pe display semnul
„+” atunci când sursa de căldură este pornită sau semnul „ -”, atunci când sursa de
căldură este oprită.
Variabilele de tip float sunt reprezentate de numere zecimale. Am folosit acest
tip de variabilă pentru a obține cu exactitate valoarea calculată în urma efectuării citirii
valorii furnizate de către senzorul de temperatură. Acest aspect a fost pus în aplicare și
la calcularea valorii procentului de viteză, reținut de către variabila „PWM”.
Variabila globală „valoare_brută_senzor” reține valoarea propriu -zisă, citită de
pe pinul OUT al senzorului de temperatură.
Variabila glob ală „valoare_tensiune_senzor” reține valoarea în tensiune
calculată prin multiplicarea cu 5 a valorii variabilei „valoare brută senzor”.
Variabila globală „valoare_neta_CELSIUS” reține valoarea în grade Celsius
calculată prin aplicarea unei formule de calc ul asupra valorii variabilei
„valoare_tensiune_senzor”.
Variabila globală „temperatura_curentă” reține valoarea mediei aritmetice a mai
multor valori ale variabilei „valoare_neta_CELSIUS”. S -a procedat la efectuarea unui
calcul a mediei aritmetice a mai mu ltor astfel de valori, în vederea creșterii acurateții
valorii nete în grade Celsius furnizate de către senzorul de temperatură.

b) Partea de setup a programului
În cadrul celei de -a doua părți a programului se stabilește comunicare serială la o
rată de 960 0b/s, se afișează un mesaj pe display, se definesc intrările și ieșirile
sistemului și se inițializează variabilele globale utilizate, după cum se poate observa și
în figura următoare.

46

Fig. Nr. 4.5 Partea de setup a programului
Inițializarea comunicării seriale se realizează prin sintaxa Serial.begin() , iar
între paranteze este menționată rata de transfer a datelor sub formă de biți per secundă.

47
Inițializarea display -ului se efectuează prin comanda display.begin() , în care
apar ca parametrii identitatea d isplay -ului și adresa 0x3C pentru protocolul de
comunicare I2C.
Comanda necesară pentru a imprima, pe ecranul OLED al display -ului, un șir de
caractere sau valoarea unei variabile este reprezentată de sintaxa display.print() .
La imprimarea unui șir de car actere trebuie avută în vedere dimensiunea
caracterelor, setată cu ajutorul sintaxei display.setTextSize() , deoarece dimensiunea
display -ului este doar de 128×32 px.
În partea mediană a figurii nr. 4.5, au fost stabilite intrările și ieșirile sistemului.
Astfel că intrările au ca parametru sintaxa INPUT sau INPUT_PULLUP, iar ieșirile au
ca parametru sintaxa OUTPUT. Aceste atribute sunt redate componentelor ce alcăuiesc
sistemul prin sintaxa pinMode() . Diferența dintre INPUT și INPUT_PULLUP, constă
în faptul că, la a doua variantă, se atribuie 5V pe intrare, realizându -se astfel o rezisten ță
internă de pull -up. Din figura anterioară se observă că senzorul și cele două bu toane
sunt intrări, iar ventilatorul și halogenul sunt ieșiri ale sistemului.
În ultima porțiune din procedura setup are loc inițializarea parametrilor, la
pornirea alimentării cu energie electrică a sistemului, după cum urmează :
– Viteza inițială de rotire a elicei ventilatorului va fi egală cu valoarea
constantei „viteza minimă”, valoare stabilită de către utilizator în partea declarativă a
programului,
– Viteza stabilită va fi transpusă în sistemul fizic, prin comandarea
tranzistorului conectat la pinul di gital D11, utilizându -se sintaxa analogWrite() .
Valoarea furnizată ca parametru pentru această comandă variază în domeniul [0..255].
– Variabila globală „încălzire” este inițiată cu valoarea 0, ceea ce
semnifică faptul că, la pornirea sistemului, sursa de că ldură este închisă, aspect transpus
fizic prin sintaxa digitalWrite() , ce are ca parametru pinul de pe care se efectuează
comanda și sintaxa LOW sau HIGH. Când este menționată prima sintaxă, pinului
respectiv nu -i este furnizată tensiune, iar în cazul cele i de-a doua sintaxe (HIGH), pinul
digital este alimentat cu tensiunea de 5V,

48
– Variabila globală „Tref”, care reține valoarea, în timp real, a temperaturii
de referință, este inițializată cu valoarea constantei Tref_initial, definită în partea
declarativă a programului. Această inițializare este necesară pentru a exista o valoare de
plecare pentru temperatura de referință.
– Ambele butoane au câte un fir conectat la masa sistemului, iar celălalt fir
conectat la pinii digitali D3, respectiv D5. Pe acești pini es te furnizată tensiunea de 5V,
tocmai pentru a crea acea rezistență internă de pull -up, la care s -a făcut referire în
capitolul 3. Acest aspect este posibil prin utilizarea sintaxei precizate anterior
digitalWrite(pin, HIGH),
– Prin sintaxa delay() se produce o întârziere a celorlalte instrucțiuni ce
urmează a fi executate. Valoarea scrisă între paranteze este exprimată în milisecunde .
– În vederea ștergerii caracterelor afișate pe display -ul OLED al
sistemului, se aplică comanda display.ClearDisplay().

c) Partea de loop a programului (buclă infinită)

Această porțiune din program este considerată ca fiind cea mai importantă,
deoarece reprezintă ansamblul instrucțiunilor ce urmează să se execute în funcție de
intrările sistemului, într -o buclă infinită, ce va fi re luată pe tot parcursul perioadei în
care sistemul este alimentat cu energie electrică.
Partea de loop este structurată, la rândul său, în mai multe porțiuni, după
cum urmează :
1. Citirea stărilor celor două butoanelor și verificarea acestora
2. Calculul temper aturii pe baza valorilor furnizate de senzorul de
temperatură
3. Calculul procentului PWM al ventilatorului (sursa de răcire)
4. Monitorizarea parametrilor cu ajutorul display -ului
5. Monitorizarea grafică a sistemului printr -o conexiune serială
6. Reglarea automată a temperaturii la nivel logic
7. Reglarea automată a temperaturii la nivel fizic

49
1. Citirea stărilor celor două butoanelor și verificarea acestora
În cadrul acestei secțiuni se citește starea celor doi pini digitali conectați câte unul
pentru fiecare buton, prin intermediul sintaxei digitalRead() . Prin această instrucțiune
se citește valoarea digitală furnizată de către pin referitor la tensiunea cu care este
alimentat. Astfel, dacă nu este deloc alimentat, va returna valoarea 0, iar în caz contrar,
valoarea 1.
În cazul celor două butoane lucrurile stau invers din cauza rezistenței interne de
pull-up creată. Astfel, valoarea returnată în cazul apăsării butonului va fi 0.
În partea de jos a secțiunii din figura nr. 4.6 este pusă condiția ca valoarea reținută
de căt re variabila „Tref” (temperatura de referință) să se poată modifica doar dacă nu
sunt apăsate simultan ambele butoane .Astfel, dacă se apasă butonul negru, Tref scade
cu valoarea 1, iar dacă se apasă butonul roșu, crește cu valoare 1.

Fig. nr. 4.6 Secțiune procedura loop

50
2. Calculul temperaturii pe baza valorilor furnizate de senzorul de
temperatură

În primul rând, se inițializează variabila care reține valoarea, în timp real, a
temperaturii curente , cu valoarea 0. După aceea se intră într -o buclă ca re se repetă de
300 de ori. Astfel , se vor calcula 300 de valori pentru temperatura curentă, după care,
variabila „temperatura_curentă” va prelua valoarea mediei aritmetice a celor 300 de
valori calculate.
Referitor la altgoritmul de calcul pentru transfor marea valorii brute furnizate
sistemului de către senzorul de temperatură, pașii utilizați au fost prezentați în cadrul
capitolului nr. 3, obținându -se astfel formula de calcul cu următoarea formă finală :
„valoare_netă_Celsius = ((valoare_brută_senzor * 5.0) / 1024.0 – 0.5)*100 ”

Fig. nr. 4.7 Secțiune procedura loop

51

3. Calculul procentului PWM al ventilatorului (sursa de răcire)
La baza acestui calcul se află doar regula de trei simplă și faptul că se cunoaște
că o valoarea a PWM -ului de 100% este proporți onală cu valoarea pragului maxim
(255), pentru comanda vitezei de rotație a ventilatorului. Având în vedere cele precizate
anterior, formula de calcul are forma: „ PWM=(viteza*100)/255 ”
4. Monitorizarea parametrilor cu ajutorul display -ului
În figura de mai jo s se observă sintaxa display.display() . Această sintaxă este
vitală pentru monitorizarea parametrilor prin afișarea valorilor acestora pe display,
întrucât, fără această instrucțiune, afișarea nu ar mai avea loc.Celelalte instrucțiuni au
fost prezentate în cadrul descrierii procedurii setup a programului

Fig. nr. 4.8 Secțiune procedura loop

52
5. Monitorizarea grafică a sistemului printr -o conexiune serială
Referitor la conexiunea serială realizată între computer și platforma de
dezvoltare au fost efectuate mai multe precizări la începutul acestui capitol, însă a fost
omis un aspect foarte important și anume că, la transmiterea de date este necesară
definirea secțiunii de unde începe un nou set de date.
În cazul prezentat în figura de mai jos, această secțiun e de definire este
reprezentată de caracterul „C”, prin care se marchează începutul unui nou set de date.
Sintaxa Serial.write(variabilă>>8) are rolul de -a transmite prin portul serial
către computer valoarea variabilei sub formă de octet, iar sintaxa
Serial.write(variabilă&0xff) are rolul de -a informa aplicația care va prelua datele,
sfârșitul secțiunii valorii variabilei transmise sub formă de octet.
Aplicația utilizată pentru a prelua datele prin comunicarea serială dintre
computer și microcontrollerul Atmega328p și pentru a le transpune sub forma unui
grafic se numește Bridge Control Panel și este o parte integrantă a aplicației industriale
Cypress. Această aplicație va fi prezentată pe larg la capitolul 4.3

Fig. nr. 4.9 Secțiune procedura loop

53
6. Reglarea automată a temperaturii la nivel logic
Înstrucțiunile destinate reglării temperaturii curente în raport de o temperatură de
referință setată de cătr e utilizator, vor fi executate doar dacă temperatura calculată, în
grade Celsius, pe baza valorilor furnizate de către senzorul de temperatură, este diferită
de valoarea temperaturii de referință.
În acest caz, se va compara cele două valori și se va stabi li dacă este necesară
creșterea, respectiv scăderea temperaturii înregistrate la nivelul capsulei senzorului de
temperatură LM50.
Dacă temperatura trebuie crescută, atunci se va aprinde sursa de căldură (tubul
de halogen) și va scade viteza ventilatorului pînă la valoarea variabilei globale
„viteza_minimă”. În caz contrar, se va opri sursa de căldură, iar viteza ventilatorului va
urca până la maxim dacă este necesar.

Fig. nr. 4.10 Secțiune procedura loop

54
7. Reglarea automată a temperaturii la nivel fizic
Această ultimă secțiune a programului constă în manipularea sursei de căldură
reprezentată de tubul de halogen și a sursei de răcire constând într -un ventilator cu un
coeficient ridicat de flux de aer în aerul liber (aproape 150 CFM).
Ultima instrucțiune din figura anterioară constă în producerea unei întârzieri de
300 de milisecunde. Acest interval este necesar între reglarea logică și cea fizică, pentru
a se putea observa modificarea parametrilor.
Prin sintaxa analogWrite() se va stabili viteza de rotație a ventilatorului în raport
de valoarea în tensiune a comenzii, avându -se în vedere că domeniul [0..255] este direct
proporțional cu valoarea PWM -ului și implicit cu viteza de rotație.
Prin sintaxa digitalWrite() se va stabili dacă tubul de halogen va fi al imentat sau
nu cu 220V , comanda acestui făcându -se fizic prin intermediul modulului cu releu
Omron G5LE și logic prin valoarea aplicată variabilei „incalzire”. Astfel, în cazul
atribuirii valorii 0 acestei variabile, sursa va fi oprită, iar în cazul atrib uirii valorii 1,
tubul de halogen se va aprinde.

Fig. nr. 4.11 Secțiune procedura loop

55
4.3 Prezentarea schemei logice
În următoarea figură este reprezentată grafic logica programului compilat și
uploadat în memoria microcontrollerului ATmega328p, în vederea efectuării reglării
automate a temperaturii în funcție de o temperatură de referință stabilită de către
utilizator.
După cum bine se observă în figura de mai jos, există un sistem dependent de
intervenția omului și un sistem de reglare automată. Î n cadrul primului, se așteaptă
apăsarea de către utilizator a unuia dintre cele două butoane: negru, respectiv roșu.
Astfel, se citește în permanență stările acestora, iar dacă unul dintre ele a fost apăsat se
va proceda la modificarea temperaturii de refe rință, dacă pragul minim sau maxim nu a
fost atins.
Referitor la sistemul de reglare automată, se citește în permanență valorile
furnizate de către senzorul de temperatură, iar dacă se constată că există o diferență între
valoarea temperaturii calculate î n grade Celsius și valoarea temperaturii de referință, se
verifică dacă referința este mai mica sau mai mare și se va produce răcirea sau
încălzirea capsulei senzorului de temperatură, astfel încât valoarea temperaturii curente
să tindă spre valoarea tempe raturii de referință.

Fig. nr. 4.12 Schema logică a sistemului

56
4.4 Aplicația Bridge Control Panel
Bridge Control Panel reprezintă o unealtă software adițională venită la pachet cu
aplicația PSoC Programmer, versiunea 3.24.4.b2265, elaborată de compania Cypress
Semiconductor din Statele Unite ale Americii.
Această unealtă facilitează comunicare prin protocolul SPI, prin protocolul I2C
sau prin protocolul RX8 printr -o conexiune USB și preluarea datelor furnizate de către
un microcontroller către un comput er și transpunerea acestora, în timp real, sub formă
de grafice.
Aplicația PSoC Programmer este utilă în realizarea de programe pentru diverse
tipuri de microcontrollere, precum și efectuarea unor teste complexe și optimizarea
sistemelor realizate .

Fig. nr. 4.13 Aplicația Bridge Control Panel

57
După cum se poate observa în interfața aplicației Bridge Control Panel,
prezentată în figura anterioară, aceasta nu este încă conectată prin intermediul unui
cablu USB, cu un dispozitiv cu microcontroller.
De asemene a, se mai pot observa instrucțiunile scrise pe primul rând : „RX8
[h=43] @1Referinta @0Referinta @1Temperatura @0Temperatura”, corespondentă
secțiunii nr. 5 a procedurii loop (fig nr. 4.9) din programul prezentat anterior
Instrucțiunea RX8 – se stabilește protocolul de comunicație RX8 (UART),
datele fiind primite de către aplicație sub formă de octeți de date. Alte protocoale
recunoscute sunt SPI și I2C.
Instrucțiunea [h=43] – se stabilește ca header caracterul ASCII cu valoarea 43,
adică majuscula „ C”- permite aplicației să cunoască momentul în care începe
transmisia, efectuată de către microcontroller către aplicație, a unui nou set de date .
Instrucțiunea @1Referinta @0Referinta – este declarată prima variabilă care
va fi recepționată de către aplicați e. Caracterele @1 semnifică adresa valorii transmise
de către microcontroller, iar @0 marchează sfârșitul adresei valorii transmise.
Instrucțiunea @1Temperatura @0Temperatura este asemănătoare
instrucțiunii anterioare, diferența ar fi că reprezintă o altă variabilă. Prima variabilă este
asociată variabilei globale „ Tref ”, iar cea de -a doua este asociată variabilei
„temperatura_curenta ” din programul prezentat anterior.
Corespondența dintre secțiunea de program și instrucțiunile descrise mai sus,
prin care s e fac comunicarea între microcontroller și aplicația Bridge Control Panel se
observă în figura următoare:

Fig. nr. 4.14 Corespondența PC – UNO

58
În figura de mai jos este prezentat pasul următor și anume efectuarea conexiunii
dintre aplicația Bridge Control Panel de pe PC și programul de pe microcontrollerul
aflat placa de dezvoltare UNO. În acest caz conexiunea este realizată prin intermediul
COM3.

Fig. nr. 4.15 Interfața conectată la microcontroller

După verificarea sintaxei instrucțiunilor scris e și efectuarea conexiunii, se va
alege opțiunea „Variable Settings” din meniul „Chart”. Aici se va proceda la bifarea
celor două variabile utilizate, la alegerea categoriilor variabilelor (int), precum și a
culorilor utilizate la trasarea graficelor pent ru cele două variabile.
De asemenea, se setează și axa OX ca fiind axa timpului, timpul de printare la o
milisecundă, intervalul între valorile pragului minim și maxim și timpul după care
graficul va începe să se deruleze (20 ms).

59

Fig. nr. 4.16 Setarea variabilelor din meniul Chart al aplicației

În continuare se va apăsa tasta F7 sau din meniul “Tools” se va selecta „Protocol
Configuration”. Pentru a exista o comunicare eficientă, rata de transfer trebuie să aibă
obligatoriu aceeași valoare atât în proc edura setup a programului microcontrollerului cât
și în submeniul menționat, după cum se observă și în figură.

Fig. nr. 4.17 Configurarea protocolului de comunicație

60
Într-un final, se va selecta opțiunea „Chart” de pe interfața aplicației, ocazie cu
care se poate observa graficul realizat în raport de valorile temperaturii de referință și a
temperaturii calculate.

61

Fig. 4.18 Printscreen – grafic realizat cu Bridge Control Panel

62

Pentru a se putea observa în timp evoluția grafică a valorilor temp eraturii de
referință și a temperaturii calculate în grade Celsius, este necesară apăsarea butonului
Repeat din interfața „Chart”. Din acel moment, evoluția grafică va fi afișată, în timp
real, în permanență, până când conexiunea dintre PC și Uno este în treruptă sau până
când se apasă butonul „Stop” aflat în partea stângă a butonului „Repeat”.
După cum se observă în figura de mai sus, temperatura de referința este
reprezentată de linia verde și are o valoare de 45 de grade Celsius, iar temperatura
actual ă este simbolizată prin linia portocalie, care tinde spre linia de referință, rezultând
astfel faptul că sistemul de reglare automată a temperaturii este funcțional, fiind
proiectat și realizat corespunzător.

63
CONCLUZII

La începutul proiectării și realizării sistemului de reglare automată a temperaturii
unui grătar mi -am propus mai multe obiective ce constau în primul rînd la obținerea de
cunoștințe utile privind tehnologii moderne, precum și realizarea unei machete care să
transpună în practică informațiile dobândite în timpul facultății și de pe internet.

Prima concluzie, rezultată cu ocazia finalizării proiectului de licență, este aceea
că, în urma participării la cursurile facultății, am devenit o persoană bine pregătită
profesion al, gata oricând să răspundă provocărilor tehnice din domeniul automatizărilor.

O altă concluzie importantă este aceea că am realizat că acest domeniu este unul
foarte vast, unde este necesară o aprofundare permanentă a ideilor noi, pentru a fi în pas
cu tehnologia.

Cea mai importantă concluzie este reprezentată de ideea că, în cadrul
proiectului, au fost atinse toate obiectivele propuse la început, iar macheta obținută este
una perfect funcțională, reprezentând cu brio un sistem de reglare automată a
temperaturii.

64
CONCLUSIONS

Earlier design and develop the system of automatic temperature regulation
barbecue I set several goals that consist primarily in obtaining useful knowledge on
modern technologies and manufacturing of a model to translate into practical
information acquired during college and from the Internet.

The first conclusion arising during the project completion license, is that, after
participating in university courses, we have become a well-trained, always ready to
meet the challenges of technical automation field.

Another important conclusion is that I realized that this area is very vast, which
requires a constant deepening of new ideas to keep up with technology.

The most importan t conclusion is the idea that the project achieved all its
objectives were at first and one fully functional model is obtained, successfully
representing an automatic temperature control system.

65
BIBLIOGRAFIE

1. Baiesu A.S. – Teoria Sistemelor Indrumar de laborator si culegere de probleme,
Editura UPG Ploiesti, 2007
2. Cîrtoaje V. – Teoria Sistemelor – Analiza Elementara în Domeniul Timpului, Ed.
Univ. Petrol -Gaze din Ploiești, 2015
3. Cirtoaje V. – Teoria Sistemelor Automate – Analiza in Domeniul Com plex, Ed.
Univ. Petrol -Gaze din Ploiesti, 2013.
4. http://ace.upg -ploiesti.ro/cursuri/tra/curs_tra.pdf
5. http://arduino.cc/en/Reference/H omePage
6. http://digital.csic.es/bitstream/10261/127788/7/D -c-%20Arduino%20uno.pdf
7. http://dspace.uasm.md/bitstream/handle/123456789/203/Popescu_reg.pdf?seque
nce=1&isAllowed=y
8. http://i.dedeman.ro/media/file/file//f/i/fisa_tehnica_tub_halogen_liniar_r7s_230v
_1000w_1025655_f.pdf
9. http://learn.adafruit.com/
10. http://pdf1.alldatasheet.com/datasheet –
pdf/view/241077/ATMEL/ATMEGA328P.html
11. http://pdf1.alldatasheet.com/datasheet -pdf/view/2770/MOSPEC/TIP122.html
12. http://rrg.utcluj.ro/ts/Files/C1_slides_rom.pdf
13. http://www.aie.ugal.ro/isa/Curs/Curs_01_Prof_C_Lazar.pdf
14. https://www.arduino.cc/en/Reference/Wire
15. http://www.automation.ucv.ro/Romana/cursuri/saB32/TSRA_%20Lectii%20cur
s%20Cap%208_12_%201Martie09.pdf
16. http://www.bel.utcluj.ro/dce/didactic/sisd/SISD_curs_8_Logica_fuzzy_Multimi
_fuzzy_Sisteme_cu_logica_fuzzy.pdf
17. http://w ww.buydisplay.com/default/0 -91-inch-serial -128×32 -blue-oled-display –
module -ssd1306 -2-8v
18. http://www.cypress.com
19. http://www.ecs.u mass.edu/ece/m5/tutorials/tip122_transistor_tutorial.html
20. http://www.electroschematics.com/10955/build -arduino -bootload -atmega –
microcontroller -part-1/
21. http://www.jmcproducts.com/wp -content/uploads/2012/02/12002B0004_A.pdf

66
22. http://www.mpt.upt.ro/doc/curs/gp/Sisteme_inteligente_in_electrotehnica/Siste
me_Fuzzy_cap2.pdf
23. https://www.omron.com/ecb/products/pdf/en -g5le.pdf
24. https://www.pololu.com/file/download/pololu -basic -spdt-relay -carrier –
schematic -diagram.pdf?file_id=0J618
25. https://www.pololu.com/product/2480
26. http://www.robofun.ro/forum
27. http://www.ti.com/lit/ds/symlink/lm50.pdf
28. http://www.ti.com/product/LM50

67
A N E X E

Codul sursă al programului pentru sistemul de reglare
automată a temperaturii.

#include <SPI.h> // este inclusa libraria SPI.h
#include <Wire.h> // este inclusa libraria Wire.h
#include <Adafruit_GFX.h> // este inclusa libraria Adafruit_GFX.h
#include <Adafruit_SSD1306.h> // este inclusa libraria
Adafruit_SSD1306.h
#define OLED_RESET 4 //definim 4 linii de ecran pentru textul de
marimea 1
Adafruit_SSD1306 display(OLED_RESET); //definim varibila display
#define ventilator 11 // pinul digital pentru comanda vntilatorului

68
#define halogen 7 // pinul digital pentru comanda releului conexat la
tubul de h alogen
#define buton_negru 3 // pinul digital folosit pentru citirea starii butonului
negru
#define buton_rosu 5 // pinul digital folosit pentru citirea starii butonului
rosu
#define senzor A0 // pinul analogic utilizat pentru citirile senzorului de
temperatura
const int
viteza_minima = 0, // retine viteza minima a ventilatorului – poate lua
valori in domeniul 0..255
prag_minim = 20, // valoarea minima a temperaturii de referinta
prag_maxim = 60, // valoarea maxima a temperaturii de referinta
Tref_ initial = 24; // valoarea initiala a temperaturii de referinta

69
int negru, rosu // variabile ce vor retine starea digitala a celor doua
butoane
,Tref // variabila retine valoarea curenta a temperaturii de referinta
,incalzire //daca este egala cu 1 atunci se va aprinde tubul cu halogen
,viteza ; // viteza de rotatie a ventilatorului
float
valoare_bruta_senzor,
valoare_tensiune_senzor,
valoare_neta_CELSIUS,
temperatura_curenta,
PWM;
void setup(){ // procedura de setari
Serial.begin(9600); // se initializeaza conexiunea seriala la 9600 b/s
// mesajul afisat initial pe display

70
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // se initializeaza
display -ul de 128×32 la adresa I2C – 0x3c
display.clearDisplay(); // se efectueaza o curatire a ecranului
display.setTextSize(2); // se seteaza marimea textului afisat pe display
display.setTextColor(WHITE); // se seteaza culoarea verde a scrisului
display.setCursor(0,0); // se pune cursorul pe prima pozitie din stanga sus
display.print("SRA -TEMP"); // sea fis eaza un mesaj pe display
display.setCursor(0,16);
display.print("Loading..");
display.display(); // se efectueaza afisarea
// setarea intrarilor si iesirilor
pinMode(ventilator, OUTPUT); // ventilatorul este o iesire
pinMode(halogen, OUTPUT); // tubul e halogen este iesire
pinMode(senzor, INPUT); // senzorul de temperatura este intrare
pinMode(buton_negru, INPUT_PULLUP); // butonul negru este intrare

71
pinMode(buton_rosu, INPUT_PULLUP); // butonul rosu este intrare
//setarea starii initiale a parametrilor
viteza = viteza_minima;
analogWrite (ventilator, viteza); // ventilatorul se roteste cu PWM = 50 %
incalzire = 0;
digitalWrite(halogen, LOW); // tubul cu halogen este stins la pornirea
sistemului
Tref = Tref_initial; // valoarea initiala a temepraturii de referinta
digitalWrite(buton_negru, HIGH); // alimentam pinul D3 cu 5V pentru a
putea citi starea acestuia
digitalWrite(buton_rosu, HIGH); // alimentam pinul D5 cu 5V pentru a
putea citi starea acestuia
delay(3000); // nesajul anterior va fi afisat timp de 3 secunde
display.clearDisplay();// se efectueaza o curatire a ecranului
}

72
void loop (){ // programul principal
//citirea starii celor doua butoanes
negru = digitalRead(buton_negru); // se citeste starea butonului negru
rosu = digitalRead(buton_rosu); // se citeste starea butonului rosu
// verificare statusului butoanelor
if (negru != rosu){ // daca s -a apasat doar un buton
if (negru>rosu) //negrul scade, rosul creste referinta
{ if (Tref<prag_maxim) Tref++;
}
else
{
if (Tref>prag_minim) Tref –;
}};
// calculul temperaturii prin citirea de valori furnizate de catre senzorul de
temperatura

73
temperatura_curenta = 0 ; // initializare variabila pentru calculul
temperaturii curente
for (int i = 1; i<300;i++)
{
valoare_bruta_senzor = analogRead(senzor); // citirea analogica a
senzorului de temperatura
valoare_tensiune_senzor = valoare_bruta_senzor*5.0; // convertirea pentru
tensiune de 5V
valoare_tensiune_senzor /= 1024.0; // schimbarea domeniului valorii citite
valoare_neta_CELSIUS = (valoare_tensiune_s enzor -0.5)*100; //
transformare in grade Celsius
temperatura_curenta +=valoare_neta_CELSIUS;
}
temperatura_curenta /= 300; // valoarea mediei aritmetice a 300 valori de
temperatura

74
//calculul PWM
PWM = (viteza*100)/255;
// afisare parametrii
display.setCursor(0,0);
display.print ("R=");
display.print (Tref);
display.print(" T=");
display.print (int(temperatura_curenta));
display.setCursor(0,19);
display.print ("V=");
display.print (int(PWM));
display.print("%");
if (incalzire ==1) display.print(" (+)"); else display.print(" ( -)");
display.display();
delay(10);

75
display.clearDisplay();
// secventa cod pentru grafic
Serial.print("C");
Serial.write(Tref>>8);
Serial.write(Tref&0xff);
Serial.write(int(temperatura_curenta)>>8);
Serial.writ e(int(temperatura_curenta)&0xff);
// reglare logica
if (Tref !=int(temperatura_curenta)) // daca este necesara reglarea
{
if(Tref >temperatura_curenta ) // daca trebuie sa crestem temperatura
curenta
{
if (viteza >viteza_minima) {viteza -=15;} else viteza =0; // scade viteza
ventilatorului

76
if (abs(Tref – int(temperatura_curenta))> 0)incalzire = 1; } // se aprinde
tubul de halogen
else // daca trebuie sa scadem temperatura curenta
{
if (viteza< 255) {viteza+=15; }
else viteza = 255; // crest e viteza ventilatorului
if (abs(Tref – int(temperatura_curenta))> 0) incalzire = 0; // se stinge tubul
de halogen
}}
else viteza =0;
delay(300);
// reglare fizica
analogWrite(ventilator, viteza); // se comanda ventilatorul
if (incalzire ==1) digitalWrite(halogen, HIGH); else digitalWrite(halogen,
LOW); // se comanda tubul de halogen}

77

Similar Posts