Sunteți pe pagina 1din 28

Liceul Tehnologic de Industrie Alimentară

"George Emil Palade" Satu Mare

DOMENIUL: ELECTRONICĂ
CALIFICAREA: TEHNICIAN ELECTRONIST
ELECTRONICĂ INDUSTRIALĂ

PROIECT

CONTROLUL, MONITORIZAREA ȘI
AFIȘAREA TEMPERATURII CU O
APLICAȚIE BAZATĂ MICROPROCESOR

Coordonator: Autor:

PROF. NICOLAE MUREŞAN VARGA ALEXANDRU

2018
CUPRINS

I.MICROCONTROLERE
I.1 CE ESTE UN MICROCONTROLLER …………………...………………………. 3

I.2 STRUCTURA SIMPLIFICATĂ A UNUI MICROCONTROLLER …………… 3

I.3 PRINCIPALELE FUNCȚII REALIZABILE DE CĂTRE UN

MICROCONTROLLER ……………………………………………………………..… 7

I.4 PROGRAMAREA MICROCONTROLERELOR ………………………………. 9

I.5 ETAPELE DEZVOLTĂRII UNUI PROIECT CU MICROCONTROLLERE … 9

II. PLĂCI DE DEZVOLTARE BAZATE PE


MICROCONTROLLERE ARDUINO
II.1 ARDUINO. SCURT ISTORIC.GENERALITĂȚI …………………………… 12

II.2 TIPURI DE PLĂCI DE DEZVOLTARE ARDUINO ……………………….. 14

II.3 DESCĂRCARE ȚI INSTALARE SOFT-URI ARDUINO …………………… 18

II.4 LIMBAJ DE PROGRAMARE ………………………………………………….. 19

III. TERMOMETRU DIGITAL CU SONDĂ,


TERMOSTAT, RELEU ȘI ALARMĂ DE DEPĂȘIRE A
TEMPERATURII
III.1 PĂRȚI COMPONENTE …………...……………………………………………. 21

III.2 DESCRIERE ȘI FUNCȚIONARE …………………………………………….. 26

BIBLIOGRAFIE …………...…………………………... 28

2
I. MICROCONTROLLERE
Rolul unui microcontroller într-un circuit electronic este identic cu rolul jucat de creier într-un
organism biologic: controlul majorităţii funcţiilor pe care acel sistem le poate realiza. Există foarte
multe tipuri de microcontroller-e, fiecare oferind un set diferit de funcţii şi de nivele de perfomanţă.
Cu toate acestea, toate tipurile de microcontrollere au o serie de caracteristici comune care înţelese,
fac mai uşoară utilizarea lor.

I.1 Ce este un microcontroller?


În general, componentele electronice funcţionează conform parametrilor stabiliţi în momentul
fabricaţiei acestora. În contrast cu acestea, un microcontroller este o componentă electronică al
cărei mod de funcţionare poate fi modificat prin programarea acestuia cu un soft special creat în
acest scop. Pentru a-l deosebi de alte tipuri de soft-uri, programul instalat şi rulat într-un
microcontroller are o denumite particulară: firmware.
În altă ordine de idei, un microcontroller poate fi considerat a fi un microcalculator care pe lângă
procesor şi memorie este completat cu circuite şi funcţii speciale care îi permit să interacţioneze
uşor cu mediul exterior.
Microcontroler-ele sunt mici „creiere” electronice care, dacă au primit „educaţia necesară” (prin
firmware), pot înlocui cu succes foarte multe tipuri de circuite electrice şi electronice. În acest
mod, microcontroller-ele ne permit să obţinem aparate mai mici, mai ieftine şi mai performante.
Totuşi, oricât de inteligent ar fi un creier, acesta nu va putea vorbi fără corzi vocale, nu se va putea
deplasa fără muşchi/ oase, nu va putea auzi fără urechi, etc. În mod similar, nici un microcontroller
nu va putea emite lumină sau sunet fără un bec sau un difuzor, nu va putea să mişte ceva fără un
motor, nu va putea auzi fără un microfon, etc. Deci pentru orice operație ce n-o poate realiza singur,
microcontroller-ul are nevoie de o serie de componente auxiliare. Ansamblul format din
microcontroller, firmware-ul instalat în el şi toate componentele auxiliare (electrice, electronice,
mecanice, hidraulice, pneumatice, optice, acustice, etc.) se mai numeşte sistem înglobat ( în
engleză - embedded system).

I.2 Structura simplificată a unui microcontroller


Structura internă a unui microcontroller este de obicei prezentată cu lux de amănunte tehnice care,
deşi sunt foarte utile pentru experţi, nu ajută prea mult un novice. Pe lângă asta, în marea majoritate a
cazurilor nu este nevoie să ştii în detaliu ce se petrece într-un microcontroller pentru a-ţi putea face
treaba cu el. Ţinând cont de aceste lucruri, structura unui microcontroller se poate reprezenta foarte
simplificat, aşa ca în figura 1.1

3
Fig. 1.1 Structura simplificată a unui microcontroller
În chenarul gri - închis sunt reprezentate blocurile funcționale din interiorul unui microcontroller,
iar în chenarele gri - deschis sunt figurate principalele categorii de pini prin care microcontroller-
ul comunică cu exteriorul.
În continuare, vom prezenta fiecare dintre aceste elemente.
1. Procesorul
Este componenta care execută instrucţiunile cuprinse în firmware, adică:
• preia date de la pinii configuraţi ca pini de intrare, apoi
• prelucrează aceste date conform instrucţiunilor scrise în firmware şi în cele din urmă,
• oferă semnale de ieşire corespunzătoare, cu ajutorul pinilor configuraţi ca pini de
ieşire.
Spre deosebire de PC-uri şi laptopuri, care sunt destinate lucrului cu mai multe programe în acelaşi
timp (multitasking), microcontroller-ele sunt destinate unor aplicaţii individuale, adică rulează
mereu un singur program (firmware-ul). Asta înseamnă că procesoarele din microcontrollere nu au
de muncit la fel de mult ca cele de pe PC-uri şi din acest motiv producătorii de microcontroller- e
le-au dotat cu procesoare a căror frecvenţă de lucru rar depăşeşte 100 – 200 MHz (faţă de 2 - 3
Ghz cât are un PC/ laptop obişnuit). Reducerea de performanţă la strictul necesar a permis
microcontrollerelor să aibă un preţ mic, ceea ce argumentează gradul de răspândire pe care îl putem
observa astăzi.

2. Memoria RAM
Atunci când realizăm niste calcule ceva mai complexe, nu putem face totul „în cap”, ci avem nevoie
să notăm temporar anumite rezultate pe o bucată de hârtie. În mod similar şi procesoarele au nevoie
să-şi noteze temporar nişte rezultate, numai că ele nu o fac pe o bucată de hârtie ci în ceea ce se
numeşte memorie RAM. RAM este prescurtarea de la Random Access Memory - memorie cu
acces aleator, adică o memorie din care datele pot fi accesare (citite sau scrise) individual
(spre deosebire de alte tipuri de memorie în care procesorul este nevoit să citească sau să scrie şi
alte locaţii de memorie, în afară de cele care îl interesează în acel moment).
Recapitulând, memoria RAM este deci o „ciornă” pe care procesorul o foloseşte pentru a-şi face

4
calculele. Ea este o memorie volatilă, adică datele memorate în ea se şterg atunci când alimentarea
microcontroller-ului este întreruptă, această memorie neputând fi folosită pentru salvarea
permanentă a datelor.
Reducerea performanţelor la necesităţi, face ca resursele de RAM ale unui microcontroller să fie
cu mult inferioare celor din componenţa unui PC. De regulă, microcontroller-ele dispun de
memorii RAM de zeci sau sute de kilobiţi (kb, mai rar megabiți).

3. Memoria Program (FLASH)


Memoria Program este memoria în care este scris firmware-ul. În ultimii ani, memoria program
folosită este de tip FLASH (adică exact ca cea din stick-urile flash USB). Conţinutul memoriei
program, scris în ea în momentul instalării firmware-ului, am putea spune că este „o listă de
instrucţiuni al microcontroller-ului”. Ulterior, microcontroller-ul nu face decât să urmărească
întocmai instrucţiunile din această listă de instrucţiuni, fără a-i modifica în nici un fel conţinutul.
Memoria program este nevolatilă, continutul ei fiind disponibil şi după deconectarea alimentării,
sau resetarea/ repornirea microcontroller-ului. Spre deosebire de memoria RAM, memoria FLASH
este garantată doar pentru un număr de maxim de scrieri (de ex. 10000). Firmware-urile sunt
programe mult mai mici decât programele pentru PC, şi din acest motiv, rareori depăşesc 1-2 Mb.
4. Memoria pentru salvări de date (EEPROM)
În aplicaţiile practice, microcontroller-ele trebuie uneori să memoreze nişte date undeva unde să
le poate regăsi intacte oricând, chiar şi după restartarea/ repornirea echipamentului pe care îl
controlează. Din punct de vedere fizic, această memorie este de tip EEPROM, adică Electrically
Erasable Programmable Read-Only Memory, o memorie doar pentru citire (Read Only Memory),
care poate fi ştearsă în condiţii speciale (utilizând tensiuni şi câmpuri electrostatice mult mai mari
decât cele de operare) şi rescrisă. În timpul funcţionării microcontrollerului, datele sunt de obicei
doar citite (nu şi scrise).
În această categorie de date memorate intră: valori de calibrare, setări personalizate, mesaje de
eroare, etc. Optimizarea resurselor microcontroller-elor a determinat ca memoria EEPROM să aibă
în general valori de Mb. Principiul de funcţionare face ca memoriile EEPROM să fie garantate
pentru un număr de scrieri de aprox. 100.000.
5. Pini pentru Intrări şi Ieşiri programabile
Cei mai mulţi pini de care dispune un microcontroller sunt pini prin care acesta comunică cu restul
lumii. Aceşti pini sunt numiţi intrări şi ieşiri programabile pentru că destinaţia lor nu este definitiv
fixată prin construcţie (aşa cum este cazul componentelor electronice obişnuite) ci este stabilită de
instrucţiunile scrise în firmware. Astfel, printr-o programare corespunzătoare intrările şi ieşirile
programabile pot fi configurate să aibă funcţii de:
• Intrare digitală. În această configuraţie pinul respectiv poate primi şi interpreta
doar semnale digitale: 0 logic (de obicei, dacă tensiunea aplicată la intrare apropiată
de 0 V) sau 1 logic (de obicei, dacă tensiunea intrării este apropiată de tensiunea de
alimentare a microcontrollerului);
• Ieşire digitală. Pe pinul respectiv microcontroller-ul poate livra doar semnale
digitale: 0 logic (aprox. 0V) sau 1 logic (o tensiune practic egală cu tensiunea de
alimentare a microcontroller- ului);
Intrare analogică. Tensiunea aplicată pe un astfel de pin, este dirijată către un convertor analog
digital (convertor A/ D). În acest mod, microcontroller-ul poate „înţelege” şi alte semnale de intrare,
nu doar pe cele de 0 şi 1 logic. Sau altfel spus, un pin configurat ca intrare digitală nu înţelege decât
5
ninele de alb şi negru, pe când un pin configurat ca intrare analogică poate înţelege şi o multitudine
de nuanţe de gri. Numărul acestor nuanţe de gri depinde de rezoluţia convertorului A/ D cu care este
dotat microcontroller-ul. Dacă rezoluţia acestuia este de 10 biţi, acel pin va putea „deosebi” 1024
de „niveluri de gri”;
• Ieşire PWM (Pulse Width Modulation). Semnalul PWM este un tren de impulsuri
cu frecvenţă constantă, dar cu durată variabilă (modulată). Dacă la un pin al unui
microcontroller configurat ca ieşire PWM conectăm un filtru RC, care să integreze
aceste impulsuri, obținem o tensiune aproximativ continuă, având valoarea
proporţională cu durata impulsurilor. În acest mod, din microcontroller putem obţine
semnale de ieşire analogice. Rezoluţia unei ieşiri configurate ca ieşire PWM este de
obicei doar de 8 biţi (adică doar 256 de „nivele”).
6. Pini oscilator - cuarţ
La baza funcţionării oricărui procesor stă un oscilator. Semnalul creat de acest oscilator este
cunoscut sub numele de semnal de ceas, semnal de tact, sau clock-ul sistemului. El, în principiu,
are două funcţii:
• dictează viteza de lucru a procesorului;
• asigură sincronizarea tuturor proceselor realizate de procesor.
Necesitatea sincronizării proceselor executate de un procesor devine mai evidentă atunci când avem
un modul electronic în care mai multe procesoare trebuie să comunice între ele. Fără a avea o
sicronizare precisă între procesele fiecărui procesor, ar fi ca şi cum am avea o orchestră în care
fiecare interpret îşi cântă partitura cu altă viteză.
Pentru a îndeplini funcţiile menţionate mai sus, oscilatorul unui procesor trebuie să menţină o
frecvenţă de oscilaţie foarte constantă, independent de condiţiile de mediu (temperatură, tensiune
de alimentare, umiditate, etc.). Din acest motiv, în marea majoritate a cazurilor, procesoarele sunt
„dirijate” de oscilatoare cu cuarţ. Pinii oscilator cuarţ sunt deci pinii prin care microcontroller-
ului i se poate ataşa un cuarţ/ oscilator cu cuarţ.

7. Pini pentru setarea tensiunii referinţă a convertorului analogic – digital.


Ştim deja că un convertor A/ D transformă un semnal analogic (de exemplu tensiunea de 3,25 V)
într-un semnal digital (de ex. numărul 658 în cod hexa). Fiecare convertor A/ D poate converti
doar o anumită gamă de semnale de intrare (tensiuni) într-o anumită gamă de semnale digitale de
ieşire (numere), cu o anumită eroare maximă de conversie.
Pentru a înţelege ce este eroarea de conversie, să presupunem un caz foarte simplu: un convertor
A/D care poate transforma gama 0 - 5V în gama numerelor de la 0 la 5. Pentru 0 V la intrare vom
obţine numărul 0 la ieşire, pentru 1V la intrare vom obţine numărul 1 la ieşire şi aşa mai departe.
Însă ce număr vom obţine la ieşire când la intrare aplicăm un semnal de 0,7 V ? Convertorul nu ne
poate da la ieşire numărul 0,7 (pentru că el nu poate oferi la ieşire decât numere întregi) aşa că va
aproxima rezultatul conversiei la cel mai apropiat număr întreg. Deoarece 0,7 este mai aproape de
1 decât de 0, rezultatul conversiei va fi 1.
Rezultatul unei conversii 100% precise ar fi numărul 0,7, ceea ce înseamnă că în exemplul nostru
avem o eroare de conversie de 1V – 0,7V = 0,3 V. Deci, eroarea maximă de conversie arată
valoarea maximă a aproximării pe care respectivul convertor A/D o poate face. Aceasta se
calculează împărţind gama semnalelor de intrare la numărul valorilor posibile la ieşire, ceea ce
înseamnă ca în exemplu nostru vom avea o eroare de conversie de maxim 5V/ 5 = 1V.
Parametrii unui convertor A/D pot fi ajustaţi după necesităţi. Pentru un convertor A/D de 10 biţi,
adică unul care poate oferi la ieşire numere între 0 şi 1023 (cum este cazul majorităţii
6
convertoarelor A/D din microcontroller-e) putem avea de exemplu următoarele moduri de
funcţionare:
• pentru semnale analogice de intrare între 0 şi 5V, convertorul A/D oferă la ieşire numere
între 0 şi 1023. În acest caz, eroarea maximă de conversie este de maxim 5V/ 1024 = 4,88
mV. De ce am împărţit la 1024 şi nu la 1023 cât am spus că poate fi numărul maxim dat la
ieşirea convertorului A/D ? Pentru că am ţinut cont şi de numărul „0” care este şi el una din
valorile pe care convertorului A/D îl poate oferi ca rezultat;
• pentru semnale analogice de intrare între 0 şi 1V, convertorul A/D oferă la ieşire numere
între 0 şi 1023. În acest caz, eroarea maximă de conversie este de 1V/ 1024 = 0,9765 mV.
Observăm că în primul mod de funcţionare, convertorul A/D poate lucra cu o gamă mai mare de
tensiuni de intrare (0V -5 V) însă cu o eroare maximă de conversie mai mare. În cel de-al doilea
caz, situaţia este exact invers: convertorul suportă o gamă mai mică de tensiuni de intrare (0-1V),
însă eroarea maximă de conversie este mult mai mică. Nu putem avea concomitent şi gama mare
de semnale de intrare şi eroare de conversie mică, motiv pentru care trebuie să ne decidem asupra
unui compromis între cele două. După luarea acestei decizii, apare întrebarea: cum impunem
convertorului A/D din microcontroller să adopte gama de semnale de intrare (şi implicit eroarea
maximă de conversie) pe care o dorim? Răspunsul este: prin aplicarea unei tensiuni de referinţă pe
pinii care în fig. 1.1 sunt numiţi pini setare tensiune referinţă convertor analogic – digital. Ce
valoare trebuie să aibă această tensiune de referinţă? Exact valorea tensiunii maxime din gama de
semnale de intrare dorită. Mai precis, dacă dorim ca gama semnalelor acceptate la intrare să fie
între 0 si 2,5896542 V, tensiunea de referinţă trebuie să fie şi ea tot 2,5896542 V.
Multe microcontroller-e încorporează câteva surse de tensiuni de referinţă care pot fi activate prin
instrucţiunile scrise în firmware. Valorile acestor tensiuni de referinţă „interne” sunt fixe şi au de
obicei valorile: 1,1V/ 2,5V/ 5V.
8. Pini de alimentare
Acesti pini fac ceea ce le sugerează şi numele: alimentează microcontroller-ul şi tot ce este conţinut
în el. Din punct de vedere al tensiunii de alimentare există două tipuri de microcontrollere: cele
alimentate la 3,3V şi cele alimentate la 5V.

I.3 Principalele funcţii realizabile de către un


microcontroller
Un microcontroller, programat corespunzător, poate deci realiza funcţiile multor alte tipuri de
circuite electrice „clasice”. Pe lângă acestea, microcontrollere pot realiza funcţii care altfel ar fi
deosebit de greu de realizat (comunicaţii de date fără erori, afişare de date pe diferite tipuri de
display-uri, etc.). Nu în ultimul rând versatilitatea microcontroller-elor le permite cercetătorilor
(profesionişti sau amatori) să-şi imagineze şi să dezvolte sisteme embedded cu noi şi noi
functionalităţi.
În continuare, vom enumera cele mai întâlnite funcţionalităţi posibile ale microcontrollerelor.
a. Preluarea de date de la senzori. Senzorii sunt dispozitive care transformă un semnal de
natură neelectrică (presiune, forţă, viteză, temperatură, etc.) într-un semnal de natură electrică. Cu
ajutorul unui senzor adecvat, un microcontroller poate „citi” practic orice fel de mărime fizică.
b. Introducerea de comenzi prin intermediul tastelor şi encoderelor (de ex. rotiţa de la
mouse). Controlul unui sistem analogic poate presupune utilizarea de butoane complicate şi de
potenţiometre. În contrast, comenzile unui microcontroller se poate efectua cu ajutorul unor taste
simple, ieftine, durabile şi nu în ultimul rând, elegante.
7
c. Afişarea de date pe diferite tipuri de display-uri. În sisteme analogice, pentru fiecare
informaţie de afişat, este necesar un dispozitiv de afişare (un bec, un led, etc). Într-un sistem cu
microcontroller, acelaşi display poate fi folosit pentru a afişa o multitudine de informaţii
d. Implementarea de structuri de meniuri. Într-un sistem analogic, practic pentru orice
comandă trebuie să ai un buton dedicat. Într-un sistem cu microcontroller în care s-a creat o structură
de meniuri, este posibil un număr uriaş de comenzi folosind doar câteva taste.
e. Prelucrarea facilă şi rapidă a datelor de intrare. Practic nu există funcţie de prelucrare
a semnalelor care să nu poate fi implementată cu succes cu ajutorul unui microcontroller.
f. Memorarea de date. În contrast cu sistemele analogice, sistemele cu microcontroller pot
memora practic orice tip de date (valoare impusă, valori medii, maxime, minime, alarme, etc).
g. Crearea de semnale de ieşire de tip On/ Off şi PWM. Semnalele de ieşire de tip On/
Off pot fi folosite pentru funcţii de activare/ dezactivare (de exemplu a unor becuri, sonerii,
electromagneţi, etc.), iar al doilea poate fi folosit pentru funcţii de control precis (a turaţiei unui
motor, a intensităţii luminoase a unui bec/ led, a tensiunii de ieşire a unui regulator de tensiune,
etc).
În figura 1.2 este dată structura internă unui microcontroller PIC 12 F 508/ 509.

Fig. 1.2 Structura unui microcontroller actual: PIC 12 F 508/ 509

8
I.4 Programarea microcontrollerelor
Noi oamenii suntem obişnuiți cu limbaje ce conțin litere, semne de punctuaţie şi cifre, dar
firmware-ul şi implicit microcontroller-ul foloseşte limbajul digital (nu ştie decât de 0 şi de 1 logic

iar firmware-ul este şi el o listă de instrucţiuni de lucru care nu conţine altceva decât şiruri de 0 şi
de 1). Programarea la nivel de bit, sau altfel spus în cod maşină, este deosebit de dificilă, din acest
motiv cercetătorii în informatică au dezvoltat nişte utilitare ajutătoare:
o limbaje de programare, care sunt colecţii de cuvinte speciale care pot fi utilizate pentru
a scrie firmware-ul. Fişierul sau fişierele în care este scris firmware-ul poartă denumirea
de Cod sursă;
o compilatoare, care sunt nişte programe care au funcţie de translator – traduc codul sursă
într-un limbaj pe care microcontroller-ul îl poate înţelege (limbaj denumit şi cod maşină).
Cele două utilitare de mai sus se regăsesc în componenţa unor programe sau set-uri de programe
care au denumirea generică de medii de dezvoltare integrate (Integrated Development
Environment - IDE).
Pentru fiecare familie de microcontrollere, şi există pe piață o foarte mare varietate de tipuri de
microcontrollere şi de firme producătoare, există medii de dezvoltare recomandate. Iată câteva din
cele mai întâlnite:
AVR studio - este un mediu de dezvoltare profesional creat pentru familia AVR de
microcontrollere produse de ATMEL (începând din 1996), optimizat spre a fi utilizat cu
uşurinţă şi de amatori. AVR a fost una dintre primele familii de microcontrolere care a
utilizat o memorie flash on-chip pentru stocarea programelor, spre deosebire de alte tipuri:
ROM, EPROM, sau EEPROM, utilizate de alte microcontrolere la momentul respectiv.
Pentru microcontrolerele AVR se găsesc o multitudine de aplicații, ele fiind de asemenea,
utilizate în linia Arduino de sisteme open source.

MPLABX IDE – un mediu de dezvoltare destinat micrcontrollerelor produse de


firma MICROCHIP. La fel ca şi AVR Studio, MPLABX IDE este un mediu de dezvoltare
profesional;
Arduino IDE. Este un mediu de dezvoltare destinat îndeosebi constructorilor amatori. Cu
ajutorul acestuia se pot realiza firmware-uri pentru microcontrollerele AVR - ATMEL, şi
nu numai, mai nou Arduino suportând dezvoltări şi pe alte tipuri de microcontrollere.
Când este finalizat de scris codul sursă într-un limbaj de programare/ mediu de dezvoltare, vine
momentul să instalăm acel cod în memoria program a microcontroller-ului. Pentru aceasta, în
primul rând trebuie conectat microcontroller-ul de programat la PC-ul/ laptopul pe care avem codul
sursă, problemă care se rezolvă fie cu un simplu cablu USB (ca în cazul modulelor de tip
Arduino) fie prin intermediul unui modul special numit programator (de exemplu REAL ICE).
După realizarea conexiunii cu microcontroller-ul nu ne mai rămâne decât să apăsăm butonul de
upload din ferestra de lucru a mediului de dezvoltare, iar acesta face totul: transformă codul sursă
în limbajul microcontroller-ului şi apoi îl instalează în memoria program a acestuia.

I.5 Etapele dezvoltării unui proiect cu microcontrollere


a. Înainte de a ne apuca să construim o aplicaţie cu microcontrollere, este recomandat să desenăm
o schemă bloc în care să adaugăm toate funcţionalităţile de care proiectul are nevoie, precum
şi toate legăturile dintre ele. Obţinem astfel o imagine de ansamblu a proiectului, care conţine
toate resursele de care are nevoie pentru a funcţiona aşa cum dorim.
9
b. Cunoscând blocurile funcţionale necesare proiectului, putem deja să realizăm ce parametri ar
trebui să aibă microcontrollerul, adică:
• numărul minim de pini din fiecare categorie: intrări analogice, intrări/ ieşiri
digitale,
ieşiri PWM,
• viteza de lucru,
• dimensiunea memoriei program.
Criteriul cel mai important în alegerea microcontroller-ului este numărul minim de pini, toate
celelalte caracteristici fiind natural legate de acest parametru. De exemplu, pentru o aplicaţie mai
complexă, sunt necesare:
• mai multe semnale (adică mai mulţi pini), deci
• de o prelucrare de date mai rapidă (viteză mare de lucru) şi de
• un firmware cu multe instrucţiuni (o memorie program mare).
c. Cunoscând schema bloc şi tipul de microcontroller ce-l vom folosi, trecem la proiectarea
parţii hardware (cablaj imprimat, componente electrice, electronice, electromecanice, optice,
etc).
d. Crearea firmwareului - proiectarea părţii software. Mai întâi se scrie o parte din firmware, se
instalează pe microcontroller (care este conectat la partea hardware), se verifică dacă sistemul
se comportă bine, iar apoi se adaugă funcţionalităţi. Dacă nu, se modifică firmware-ul şi se
reia procedura.
e. Testarea aplicaţiei, care să are ca scop:
• depistarea de bug-uri (greşeli) în firmware, care în anumite circumstanţe pot afecta
parţial sau total funcţionarea sistemului;
• evaluarea comportării în timp a sistemului.
Dacă testarea finală arată probleme, se pot impune modificări de firmware sau/ şi hardware.
În figura 1.3 se poate vedea un program simplu în cod hexa, în format .bin conţinut într-o memorie
eeprom de 4 KBytes.

10
Fig. 1.3 Structura unui program simplu în format .bin conţinut într-o memorie program
Lumea de azi este complet diferită de cea de acum 100 de ani. Acest lucru se datorează în principal
avansului tehnologic fără precedent, unul din pilonii ce susţine şi stimulează continuu acest avans
fiind sistemele embedded controlate de microcontrollere. Ele oferă o modalitate simplă, versatilă
şi ieftină de exprimare a creativităţii tehnice.

11
II. PLĂCI DE DEZVOLTARE BAZATE PE
MICROCONTROLERE – ARDUINO
2.1 Arduino – scurt istoric, genealităţi
Arduino este o companie open-source care produce plăci de dezvoltare bazate pe microcontrolere
și partea de software destinată funcționării și programării acestora. Pe lângă acestea, mai include
și o comunitate uriașă ce se ocupă cu crearea și distribuirea de proiecte care au ca scop concepția
de dispozitive care pot sesiza și controla diverse activități sau procese în lumea reală.
Aceste plăci de dezvoltare pun la dispoziția utilizatorului pini I/O digitali și analogici, care pot fi
interfațați cu o gamă largă de plăcuțe hard numite shield-uri (scuturi) și cu tot felul de alte circuite.
Ele au interfețe de comunicații seriale, inclusiv USB, pentru încărcarea programelor din PC-uri.
Pentru programarea microcontrolerelor, Arduino vine cu un mediu de dezvoltare integrat (IDE)
bazat pe proiectul Processing, care include suport pentru limbaje de programare ca C și C++.
Primul Arduino a fost lansat în 2005, având ca țintă asigurarea unei soluții ieftine și simple pentru
începători și profesioniști spre a crea dispozitive capabile să interacționeze cu mediul, folosind
senzori, actuatori și sisteme de acționare. De exemplu, dispozitive pentru utilizatorii începători
precum: roboți simpli, dimmere, termostate, detectoare de obstacole sau de mișcare.
Plăcile de dezvoltare Arduino sunt disponibile comercial sub formă preasamblată sau sub forma
unor kituri de asamblat acasă (do-it-yourself). Specificațiile schemelor sunt disponibile pentru
orice utilizator, permițând oricui să fabrice plăcuțe Arduino. Adafruit Industries estimase la
mijlocul anului 2011 că au fost produse deja peste 300.000 de plăci oficiale Arduino, iar în 2013,
700.000 de plăcuțe oficiale erau în posesia utilizatorilor.
Arduino a început în 2005 ca un proiect al unui student al Institutului de Interacțiune a Designului
din Ivrea, Italia. La acea vreme studenții foloseau o plăcuță de dezvoltare BASIC Stamp care costa
100 de dolari, ceea ce era considerat foarte scump pentru studenți. Numele "Arduino" provine de
la un bar din Ivrea, unde o parte din fondatori obișnuiau să se întâlnească.
Studentul columbian Hernando Barragán a creat platforma de dezvoltare Wiring care a servit ca
bază pentru Arduino. După finalizarea platformei Wiring, mai multe versiuni, mai light și mai
ieftine, au fost create și puse la dispoziția comunităților open-source. Din echipa inițială Arduino
au făcut parte Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino și David Mellis.
Arduino este un dispozitiv uimitor, care îţi permite să realizezi aproape orice proiect ai în minte,
de la tele-automatizări interactive, la roboţi compecşi. Astfel, cu puţin entuziasm pentru a învăţa
cum să programezi un Arduino pentru a-l face sa interacţioneze cu mediul, şi cu puţină imaginaţie,
poţi construi cam orice doreşti!
O placă de dezvoltare Arduino poate fi considerată un mic computer, un sistem interactiv, care
încorporând părţi software adecvate, poate interacţiona cu mediul prin interfeţele I/O. Ea este
alcătuită de regulă dintr-un microprocesor, cu un clock de 8 sau 16 MHz, un regulator liniar de 3
sau 5 volti, eventual un conector USB, pentru a permite conectarea la PC. În funcţie de varianta
sau tipul de Arduino, placa poate dispune de interfeţe I/O analogice, digitale şi PWM, cu câte un
anumit număr de pini, prin intermediul cărora să poată fi conectatată la alte circuite (senzori, LED-
uri, motoare, etc.), sau interfaţă de reţea, ca să poată transmite pe internet datele obţinute, de
exemplu, de la un senzor.
Pentru programare, proiectul Arduino oferă un mediu integrat de dezvoltare (IDE - Integrated
Development Environment), care este o aplicație scrisă în Java. Acesta își are originile în mediul
12
de dezvoltare pentru limbajul de programare Processing și în proiectul Wiring. Este proiectat
pentru a introduce programarea în lumea celor nefamiliarizați cu dezvoltarea software. Include un
editor de cod cu funcții ca: evidențierea sintaxelor, potrivirea acoladelor și spațierea automată,
oferind mecanisme simple cu un singur click, pentru a compila și a încărca programele în Arduino.
Un program scris în IDE pentru Arduino se numește sketch (schiţă).
Arduino IDE suportă limbajele de programare C și C++ folosind reguli speciale de organizare a
codului. Un sketch tipic Arduino scris în C/ C++ este compus din două funcții care sunt compilate
și legate într-un program executabil cu o execuție ciclică:
setup(): o funcție care este rulată o singură dată la începutul programului, când se
inițializează setările.
loop(): o funcție apelată în mod repetat până la oprirea alimentării cu energie a plăcuței.
Arduino IDE permite scrierea sketch-ului pe calculator, iar apoi încărcarea lui în Arduino. După
încărcarea programului pe placa de dezvoltare, Arduino va rula sketch-ul şi va interacţiona cu
mediul.
Plăcile originale Arduino erau produse iniţial de compania italiană Smart Projects. O parte dintre
acestea, cu brandul Arduino au fost proiectate de companiile americane SparkFun Electronics și
Adafruit Industries. Până la această dată, 16 versiuni de hardware Arduino au fost produse în scop
comercial. Iată câteva variante: Arduino Uno, RedBoard, Pro, Mini, Micro, Nano, Ethernet,
Leonardo, Mega, Due. Câteva dintre ele se pot vedea mai jos, în figura 2.1.

Fig. 2.1 Câteva versiuni hardware de Arduino

13
II.2 Tipuri de plăci de dezvoltare Arduino
Un Arduino este compus dintr-un microcontroler de 8, 16, sau 32 de biți şi componente externe
complementare care facilitează programarea și încorporarea în diverse alte sisteme. Un aspect
important la Arduino este că acesta dispune de conectori standard, care permit utilizatorului să-l
conecteze la senzori, actuatori, afişaje, sau cu diverse module interschimbabile numite shield-uri.
Unele dintre aceste dispozitive comunică cu Arduino direct prin pinii digitali, analogici, sau PWM,
iar altele sunt adresabile individual prin magistralele seriale I2C sau SPI, permițând conectarea
multor module pe o magistrală (de exemplu, la interfaţa I2C, cele 4 fire de magistrală sunt: GND,
+5V sau +3.3V, SCL – serial CLOCK şi SDA – serial DATA).
Până în anul 2015 plăcuțele Arduino oficiale au folosit cipuri Atmel din seria MegaAVR, în special
ATmega 8, ATmega 168, 328, 1280 și ATmega 2560, iar în 2015 au fost adăugate cipuri de la alți
producători. O multitudine de alte procesoare au fost folosite de dispozitive neoficiale/ compatibile
Arduino.
Cele mai multe plăci Arduino includ un regulator liniar de 5 V și un oscilator cu cuarț de 8 sau 16
MHz (sau un rezonator ceramic, în unele variante), dar sunt unele plăcuțe, cum ar fi LilyPad, care
nu au regulator, datorită restricțiilor de formă.
Bootloader-ul microcontrollerului Arduino este un mic program care ruleaza in interiorul său,
atunci când urmează a fi programat, imediat ce punem sub tensiune placa Arduino, sau imediat
după de apăsăm butonul de reset al placii. Rolul său este de a comunica cu mediul Arduino IDE
pentru a încarca sketch-uri şi de a verifica la fiecare pornire, sau după un eventual reset dacă este
vreun program în memorie pentru a-l lansa în execuţie. Microcontrollerul de tip ATmega 328
instalat pe Arduino UNO, are trei tipuri de memorii: memoria Flash de 32KB, 2 KB de RAM şi
un EEPROM de 1 KB. Bootloader-ul se afla încarcat în Flash şi ocupă 0.5 KB (512 Bytes) din cei
32KB. Arduino Uno vine preprogramat cu un bootloader care simplifică încărcarea programelor
pe memoria flash a chipului, în comparație cu alte dispozitive ce necesită programatoare externe.
Acest aspect face din Arduino o soluție simplă, permițând programarea de pe orice computer. În
prezent, optiboot instalat pe UNO, este bootloader implicit.
Toate plăcile Arduino au un lucru în comun: ele sunt programate prin intermediul Arduino IDE.
Acesta este software-ul care ne permite să scriem și să încărcăm cod. Dincolo de soft, pot exista o
mulțime de diferențe. Numărul de intrări și ieșiri (cât de mulți senzori, LED-uri și butoane putem
utiliza pe o singură placă), viteza, tensiunea de operare și factorul de formă/ dimensiuni, aspect,
sunt doar câteva dintre aceste deosebiri.
Programarea tuturor plăcilor se face prin conexiune USB, Arduino având integrate cipuri de
conversie USB-serial, cum ar fi FTDI FT232. Implementarea diferă în funcție de versiunea
hardware. Unele modele UNO, mai noi, folosesc un cip AVR separat programat să funcționeze ca
un convertor USB-serial, care poate fi reprogramat printr-un port ICSP dedicat. Alte plăci sunt
proiectate pentru a fi integrate și nu au nici o interfață de programare (hardware), care ar trebui
cumpărată separat. Unele pot rula direct de la o baterie de 3.7 V, altele au nevoie de cel puțin 5 V.
Există plăci Arduino care au implementate convertoare de nivele logice pentru a realiza conversia,
de exemplu, între nivelele logice RS-232 și TTL, sau între componente alimentate la 3.3 V şi 5 V.
Înainte de a concepe un proiect, ar trebui să consultăm tabelul 2.1, încercând să găsim varianta
potrivită de Arduino. Pentru o comparație rapidă încrucișată a variantelor de Arduino disponibile,
acest tabel ne poate fi de mare ajutor, având în vedere varietatea lor. Plăcile sunt clasificate în
funcție de microcontrolerul lor principal, care este ceea ce definește majoritatea caracteristicilor
pentru fiecare dintre ele.

14
Tab. 2.1 Comparație între plăci Arduino disponibile

Tensiune Pini I/O Intrări Ieşiri Interfaţă


Model de Arduino alimentare Digitali Analogice PWM UART Programare
ATmega328 Boards - 32kB Program Space // 1 UART // 6 PWM // 4-8 Analog Inputs // 9-14 Digital I/O

USB via
5V 14 6 6 1
ATMega16U2

Arduino Uno - R3

USB via
5V 14 6 6 1
ATMega16U2

Arduino Uno R3 SMD

5V 14 6 6 1 USB via FTDI

RedBoard

FTDI-
3.3V 14 6 6 1 Compatible
Header
Arduino Pro 3.3V/8MHz

FTDI-
5V 14 6 6 1 Compatible
Header
Arduino Pro 5V/16MHz

FTDI-
5V 14 8 6 1 Compatible
Header
Arduino Mini 05
FTDI-
3.3V 14 8 6 1 Compatible
Header
Arduino Pro Mini
3.3V/8MHz

FTDI-
5V 14 8 6 1 Compatible
Header
Arduino Pro Mini
5V/16MHz

FTDI-
5V 14 6 6 1 Compatible
Header

Arduino Ethernet

FTDI-
Compatible
3.3V 14 8 6 1 Header or
Wirelessly via
XBee†
Arduino Fio

FTDI-
3.3V 14 6 6 1 Compatible
Header
LilyPad Arduino 328
Main Board

FTDI-
3.3V 9 4 5 0‡ Compatible
Header
LilyPad Arduino Simple
Board
ATmega32U4 Boards — 32kB Program Space // 1 UART // 5-7 PWM // 12 Analog Inputs // 9-20 Digital I/O

5V 20 12 7 1 Native USB

Arduino Leonardo

5V 12 12 5 1 Native USB

Pro Micro 5V/16MHz

3.3V 12 12 5 1 Native USB

Pro Micro 3.3V/8MHz

5V 9 12 5 0 Native USB

LilyPad Arduino USB


ATmega2560 Arduino Mega's - 256kB Program Space // 4 UARTs // 14 PWM // 16 Analog Inputs // 54 Digital I/O

USB via
5V 54 16 14 4
ATMega16U2

Arduino Mega 2560 R3

FTDI-
3.3V 54 16 14 4 Compatible
Header
Mega Pro 3.3V

FTDI-
5V 54 16 14 4 Compatible
Header
Mega Pro 5V
FTDI-
3.3V 54 16 14 4 Compatible
Header
Mega Pro Mini 3.3V

3.3V 54 12 12 4 USB native

Arduino Due

II.3 Descărcare şi instalare soft -uri Arduino, primul sketch


Mai întâi, descărcăm arhiva .zip cu mediul de dezvoltare Arduino de pe site-ul oficial Arduino:
http://arduino.cc/en/Main/Software pe calculatorul de lucru, îl instalăm, iar apoi ne conectăm cu
un cablu USB la Arduino și instalăm driverele. Dacă Arduino nu are funcţia Auto Power Select,
trebuie să ne asigurăm că jumperul de selectare a alimentarii, situat între mufa de alimentare externă
şi mufa USB, este setat pe poziţia USB şi nu pe alimentare externă.
Dacă rulăm pe calculatorul de lucru Linux sau MAC, n-avem nevoie de drivere. Dacă însă rulăm
Windows, va trebui să instalăm drivere-le, ca pentru orice alt dispozitiv hardware. Driver-ele sunt
disponibile în directorul "drivers" din directorul unde am dezarhivat arhiva .zip cu mediul de
dezvoltare.
După ce am instalat drivere-ele, următorul pas este să programăm placa Arduino. Rulăm programul
"Arduino", din mediul de dezvoltare pe care tocmai l-am descărcat la pasul precedent, iar apoi
trebuie să determinăm portul pe care s-a conectat Arduino (din meniul "Tools -> Serial Port"). În
sfârşit, deschidem primul sketch, exemplul de clipire a unui LED (vezi fig. 2.2).

Fig 2.2 Fereastră de deschidere sketch: Exemplu


II.4 Limbaj de programare
Limbajul folosit este o variantă simplificată de C/ C++, îmbogăţită cu diverse biblioteci
specifice platformei Arduino. Este uşor de utilizat pentru oricine are o minimă experienţă de
programare, în orice limbaj de programare. De altfel, vom putea constata cât de simplu este,
analizând exemplul pe care l-am încărcat în paragraful 2.3, în tabelul 3.1:
Tab. 2.2 Exemplu program: clipire Led

1. /*
2. Blink
3. Turns on an LED on for one second, then off for one second, repeatedly.
4.
5. This example code is in the public domain.
6. */
7.
8. void setup() {
9. // initialize the digital pin as an output.
10. // Pin 13 has an LED connected on most Arduino boards:
11. pinMode(13, OUTPUT);
12. }
13.
14. void loop() {
15. digitalWrite(13, HIGH); // set the LED on
16. delay(1000); // wait for a second
17. digitalWrite(13, LOW); // set the LED off
18. delay(1000); // wait for a second
19. }

După cum putem vedea, codul este cât se poate de simplu şi inteligibil:
• Au fost definite două funcţii, setup() (liniile 8-12) şi loop() (liniile 14-19). Aceste
două funcţii trebuie să fie prezente în orice program;
• Funcţia setup() este executată o singură dată, la iniţializarea plăcii (de fiecare
dată când este alimentată, de fiecare dată când încărcăm un program nou şi atunci
când resetăm placa);
• Funcţia loop() se execută apoi la infinit, fără pauză. Dacă avem nevoie de pauze,
trebuie să le introducem în program, în mod explicit;
• În programul nostru, funcţia setup() face un singur lucru: declară pinul 13 (adică
pinul digital 13) ca pin de ieşire;
• Funcţia loop() face următoarele:
− linia 15: scrie "1" la pinul 13 (adică din acest moment pinul 13 va fi alimentat cu
5V);
− linia 16: aşteaptă 1000 de milisecunde, adică o secundă (pinul 13 fiind alimentat,
deci
LED-ul de pe placă – aprins);
− linia 17: scrie "0" la pinul 13 (adică din acest moment pinul respectiv nu va
mai fi alimentat);
− linia 18: aşteaptă din nou o secundă (dar de data asta pinul 13 nu mai este alimentat,
deci
LED-ul este stins).
Putem modifica valorile de temporizare de la liniile 16 şi 18 (evident, după fiecare
modificare trebuie să încărcăm din nou programul în Arduino, folosind File > Upload în
meniu).
În mod asemănător, putem rula în Arduino price program, sa-i modificăm setările inițiale,
obțiunile şi funcționalitățile.
III. TERMOMETRU DIGITAL CU
TERMOSTAT, RELEU ȘI ALARMĂ DE
DEPĂȘIRE A TEMPERATURII
III.1 Părti componente:

1. Termometru Digital cu Termostat și Releu, ușor de utilizat,


dispunând de ecran LED și probe cu acuratete de 0.1 °C.

Figura 3.1 Termometru digital cu termostat și releu de temperatură, partea frontală


Figura 3.2 Termometru digital cu termostat și releu de temperatură, partea dorsală

Figura 3.3 Termometru digital cu termostat și releu de temperatură, afișaj funcțional


Caracteristici tehnice:
Tensiunea de alimentare: 12 V;
Curent consumat: ~64 mA;
Temperatură măsurată: -50 °C - + 110 °C;
Tip senzor de temperatură: NTC ( 10 K 0.5 % );
Lungime cablu senzor: 0.5 m;
Senzor de temperatură rezistent la apă;
Acuratețe: 0.1 °C;
Rata de actualizare: 0.5 s;
Curent maxim controlat: 5 A @ 240 V AC sau 10 A @ 14 V DC;
Temperatura optimă de funcționare: -10 °C - +60 °C;
Umiditate optimă de funcționare: 20% - 85%;
Dimensiuni: 40 mm x 48 mm.

Modulul se alimentează cu o sursă stabilă de 12 V DC. Pinii de alimentare se realizează prin


terminalele cu șuruburi marcate cu " +12 V " și " GND ". Spre deosebire de un releu obișnuit,
acesta are doar două terminale " K0 " și " K1". Când senzorul atinge o anumită temperatură,
"K0" și "K1" fie sunt conectați, fie sunt deconectați, în funcție de configurarea modulului.
Pe modul este montat un LED care indică starea releului (cuplat sau decuplat). Atunci când
LED-ul este aprins, releul este cuplat, astfel încât "K0" și "K1" sunt conectați. În caz contrar,
releul este decuplat, astfel încât "K0" și "K1" sunt deconectați. Acest LED este util pentru a ști
dacă releul se cuplează corespunzător, în funcție de configurația aleasă.
Conectați senzorul de temperatura.
Dacă alimentați modulul și senzorul de temperatură nu este conectat, pe ecranul cu segmente
apare un mesaj de eroare " LLL ". Mesajul de eroare dispare automat atunci când conectați
senzorul.
Setați temperaturii de declanșare.
Pentru a seta temperatură de declanșare trebuie să apăsați pe butonul " SET " și după să utilizați
butoanele marcate cu "+" și "-" pentru a incrementa, respectiv decrementa temperatura de
declanșare. Pasul de setare este 0.1°C. După ce ați ales temperatura dorită, trebuie să mai
apăsați încă o dată pe butonul "SET" pentru a confirma temperatura aleasă.
Configurarea parametrilor de funcționare.
Modulul are 6 parametri de funcționare, pe care puteți să îi modificați prin menținerea apăsată
timp de 5 secunde a butonului " SET ". Pe ecran vor apărea codul parametrului selectat pentru
a fi modificat, ( de la "P0" până la "P6" ):
"P0": Primul parametru poate fi setat "C" sau "H". Când este setat "C", releu va cupla atunci
când temperatura setată este mai mică decât temperatura măsurată de senzor. Acest mod este
util în realizarea unui aer condiționat. Când este setat "H", releu va cupla atunci când
temperatura setată este mai mare decât temperatura din mediul înconjurător, fiind util în
construcția unui dispozitiv de încălzire.
"P1": Cel de-al doilea parametru reprezintă pragul de dezactivare. De exemplu, dacă "P1" este
setat la 2 °C, iar "P0" este "H", atunci releu se va decupla atunci când temperatura setată este
cu 2 °C mai mică decât temperatura măsurată de senzor.
"P2": Reprezintă limita maximă de setare a temperaturii de declanșare, acesta fiind un mod de
protecție împotriva configurării accidentale a unei temperaturii mult prea mare.
"P3": Reprezintă limita minimă de setare a temperaturii de declanșare, acesta fiind un mod de
protecție împotriva configurării accidentale a unei temperaturii mult prea mici.
"P4": Acest parametru reprezintă o valoare de offset (cu pasul 0.1°C), fiind util pentru a corecta
greșelile de măsurare a senzorului.
"P5": Cel de-al 5-lea parametru este timpul de întârziere de declanșare a releului, pasul fiind
de 1 minut.
"P6": Ultimul parametru este util pentru a decupla releul automat atunci când temperatura
măsurată de senzor depășește valoarea reprezentată de parametrul 6. De asemenea, pe ecran va
fi afișat textul "---".
Valori posibile ale parametrilor de configurare:
"P0" : C / H;
"P1" : 0.1 - 15 °C;
"P2" : -45 °C - +110 °C;
"P3" : -50 °C - +105 °C;
"P4" : -7 °C - +7 °C;
"P5" : 0 - 10 minute;
"P6" : ON ( 0 °C - 110 °C ) sau OFF;

2. Buzzer Activ de 5 V
Dispozitive ce pot produce un sunet atunci cand se află sub influența unei tensiuni variabile.
Acestea au o construcție mult mai simplă decât difuzoarele din boxele audio.
Buzzerele active preiau energia de la o sursă (precum pinul de 5 V de pe placuța Arduino, care
poate genera o putere mai mare decât un pin obișnuit) și sunt acționate prin intermediul unui
element comutor.

Figura 3.4 Buzzer activ de 5V

Utilizare împreună cu Arduino


Conectăm buzerul la GND și pinul 9 precum în figura alaturata:
Figura 3.5 Conectare buzzer activ 5 v la plăcuța Arduino Uno

3. Rezistor 0.25W 1.8KΩ

Figura 3.6 Rezistor 0.25W 1.8KΩ

III.2 Descriere și funcționare


Termometrul digital cu sondă de temperatură, releu pentru închiderea și deschiderea circuitului
în funcție de setări este foarte versatil și poate fi folosit într-o sumedenie de aplicații practice
cum ar fi controlul temperaturii apei într-un acvariu cu pești tropicali sau deschiderea și
închiderea unei pompe de apă într-un circuit de încălzire.
În proiectul de față am folosit un buzzer activ care să semnalizeze depășirea unei temperaturi
setate ce poate să ne ajute în caz de probleme într-o anumită încăpere după cum se vede din
imaginile atașate:
Figura 3.7 Imagine proiect conectat la sursă dar nealimentat
Figura 3.8 Imagine proiect conectat și alimentat la sursa de current

Figura 3.9 Imagine proiect alimentat la sursă ce semnalizează acustic și vizual depășirea
temperaturii setate

În concluzie, un termometru digital, releu și releu alimentat de la un accumulator de 12


v sau de un transformator sau direct de la o sursă reglabilă la acești parametri are posibilitatea
de a măsura temperatura dintr-o încăpere sau un spațiu deschis și de a comanda în funcție de
parametri de temperatură setați pentru închiderea și deschiderea releului diverși consumatori
care să asigure o anumită stabilitate a mediului măsurat. Astfel se pot porni sau opri în funcție
de temperature circuite de încălzire a spațiului, de degrivare a anumitor obiecte, de alarmare în
caz de temperaturi mari, de stingere a incendiilor prin deschiderea unor valve, de aerisire
automata a unor spații….. .
BIBLIOGRAFIE
1. Borcoci E., Zoican S., Popovici E., Arhitectura microprocesoarelor, partea I, Ed. Media
Publishing, Bucureşti, 1995.
2. Burileanu,C., Arhitectura microprocesoarelor, Editura DENIX, Bucureşti, 1994;
3. Crutu, Gh., Romanca, M., Fratu, A., Calculatoare, microsisteme de calcul, Universitatea
din Brasov, 1987;
4. Dodescu, Gh., Ionescu, D., Misdolea, T., Nisipeanu, L., Pilat, F., Sisteme electronice de
calcul şi teleprelucrare, Ed.Didactică şi Pedagogică, Bucuresti, 1980;
5. Lupu, C., s.a., Microprocesoare, Ed. Militară, Bucureşti 1986;
6. Mic dicţionar enciclopedic, Editura enciclopedică română, Bucureşti, 1972
7. Nicula, D., Arhitecturi de microprocesoare de performanţe ridicate, Teză de doctorat,
Universitatea TRANSILVANIA Braşov, 1997
8. Pfaffenberger, B., Dicţionar explicativ de calculatoare, Ed. Teora, Bucureşti, 1996
9. Ştefan, Gh., Funcţie şi structură în sistemele digitale Ed. Academiei Române, 1991;
10. Ştefan, Gh., Drăghici, I., Mureşan, T., Barbu, E., Circuite integrate digitale, Ed.Didactică
şi Pedagogică, Bucureşti 1983;
11. Strugaru, C., Popa, M., Microprocesoare pe 16 biţi, Editura TM, Timişoara 1992;
12. Sztojanov, I., Borcoci, E., Tomescu, N., Bulik, D., Petrec, M., Petrec, C., De la poarta TTL
la microprocesor, Ed.Tehnică, Bucureşti, 1987;
13. Tanenbaum, A., Organizarea structurată a calculatoarelor, ediţia a IV-a, Computer Press
Agora, Tg. Mureş, 1999.
14. Toacşe, Gh. Nicula, D. Electronică digitală, Ed. Teora, 1996

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