1.1 Scurt istoric ………………………….. ………………………….. ………………………….. ……… 3 1.2 Arhitectura von… [604079]

1

Cuprins

1.1 Scurt istoric ………………………….. ………………………….. ………………………….. ……… 3
1.2 Arhitectura von Neumann ………………………….. ………………………….. ………………. 5
1.3 Arhitectura procesorului ………………………….. ………………………….. ………………. 5
1.4 Circuite digitale ………………………….. ………………………….. …………………………. 7
1.5 Memorare de date ………………………….. ………………………….. ………………………. 8
1.6 Periferice de intrare/iesire ………………………….. ………………………….. ……………. 9
1.7 Software ………………………….. ………………………….. ………………………….. ……… 10
CAPITOLUL II – POSIBILITATI DE IMPLEMENTARE ALE ELEMENTELOR COMPONENTE
ALE UNUI SISTEM DE CALCUL ………………………….. ………………………….. ………………………….. ….. 12
2.1 Poartă logică ………………………….. ………………………….. ………………………….. .. 12
2.1.1 Construcție și funcționare ………………………….. ………………………….. ………… 12
2.3.1 Simbolurile echivalente ale lui De Morgan ………………………….. ………………….. 19
2.3.2 Stocarea datelor ………………………….. ………………………….. ………………………….. . 20
2.4 Proiectarea circuitelor aritmetice ………………………….. ………………………….. ………. 22
2.4.1 Proiectarea comparatoarelor ………………………….. ………………………….. ………….. 22
2.4.2 Sumatoare si scazatoare ………………………….. ………………………….. ……………….. 22
2.4.3 Unități aritmetice și logice ………………………….. ………………………….. ……………. 25
CAPITOLUL III – CONTROLUL UNUI SISTEM DE CALCUL ………………………….. ………………………….. …. 27
3.1 Componentele proiectului ………………………….. ………………………….. ……………….. 27
3.1.1 Display LCD ………………………….. ………………………….. ………………………….. ….. 28
3.1.2 Tast atura ………………………….. ………………………….. ………………………….. ……….. 28
3.1.3 Arduino ………………………….. ………………………….. ………………………….. …………. 29
3.1.3.1 Scurt istoric ………………………….. ………………………….. ………………………….. …. 30
3.1.3.2 Hardware ………………………….. ………………………….. ………………………….. ……. 32
3.1.3.3 Shield -uri ………………………….. ………………………….. ………………………….. …… 35
3.1.3.4 Software ………………………….. ………………………….. ………………………….. …….. 36

2
3.1.3.5 De ce am ales Arduino? ………………………….. ………………………….. …………….. 38
3.2 Codul sursa ………………………….. ………………………….. ………………………….. ………. 44
CONCLUZII ………………………….. ………………………….. ………………………….. ………….. 47
BIBLIOGRAFIE ………………………….. ………………………….. ………………………….. …….. 48

3
CAPITOLUL I – SISTEMUL DE CALCUL

Un calculator , numit și sistem de calcul, computer sau ordinator , este o mașină de
prelucrat date și informații conform unei liste de instrucțiuni numită program . În zilele noastre
calculatoarele se construiesc în mare majoritate din componente electronice și de aceea cuvântul
„calculator” înseamnă de obicei un calculator electronic .
Calculatoarele care sunt programabile liber și pot, cel puțin în principiu, prelucra orice fel
de da te sau informații se numesc universale ( engleză general purpose , pentru scopuri generale).
Calculatoarele actuale nu sunt doar mașini de prelucrat informații, ci și dispozitive care
facilitează comunicatia între doi sau mai mulți utilizatori, de exemplu sub formă de numere, text,
imagini, sunet sau video sau chiar toate deodată (multimedia).

Fig. 1.1 Calculator personal

1.1 Scurt istoric

În principiu, orice calculator care deține un anumit set minimum de funcții (altfel spus, care
poate emula o mașină Turing ) poate îndeplini funcțiile oricărui alt asemenea calculator, indiferent că
este vorba de un PDA 1sau de un supercalculator . Această compatibilitate a condus la folosirea
calculatoarelor cu arhitecturi asemăn ătoare pentru cele mai diverse activități, de la
calculul salarizării personalului unei companii până la controlul roboț ilor industriali sau medicali
(calculatoare universale).
În principiu, orice calculator care deține un anumit set minimum de funcții (altfel spus, care

1 Sunt calculatoare mici, de ținut în mână, care au fost inițial proiectate să fie agende personale electronice, dar care în
decursul timpului au devenit polivalente.

4
poate emula o mașină Turing ) poate îndeplini funcțiile oricărui alt asemenea calculator, indiferent că
este vorba de un PDA sau de un supercalculator . Această compatibilitate a condus la folosirea
calculatoarelor cu arhitecturi asemănătoare pentru cele mai diverse activități, de la
calculul salarizării personalului unei companii până la controlul roboților industriali sau medicali
(calculatoare universale).

Cel mai vechi mecanism cunoscut care se pare că putea funcționa ca o mașină de calculat se
consi deră a fi mecanismul din Antikythira , datând din anul 87 î.e.n. și folosit aparent pentru
calcularea mișcărilor planetelor. Tehnologia care a stat la b aza acestui mecanism nu este cunoscută.
Odată cu revigorarea matematicii și a științelor în timpul Renașterii europene au apărut o
succesiune de dispozitive mecanice de calculat, bazate pe principiul ceasornicului , de exemplu
mașina inventată de Blaise Pascal . Tehnica de stocare și citire a datelor pe cartele perforate a apărut
în secolul al XIX -lea. În același secol, Charles Babbage este cel dintâi care proiectează o mașină de
calcul complet programabilă ( 1837 ), însă din păcate proiectul său nu va prinde roade, în parte din
cauza limitărilor tehnologice ale vremii.

În prima jumătate a secolului al XX -lea, nevoile de calcul ale comunității științifice erau
satisfăcute de calculatoare analoage, foarte specializate și din ce în ce mai sofisticate.
Perfecționarea electronicii digitale (datorată lui Claude Shannon în anii 1930 ) a condus la
abandonarea calculatoarelor analogice în favoarea celor digitale (numerice), care modelează
problemele în numere (biți) în loc de semnale electrice sau mecanice. Este greu de precizat care a fost
primul calculator digital ; realizări notabile au fost: calculatorul Atanasoff -Berry, mașinile Z ale
germanului Konrad Zuse – de exemplu calculatorul electromecanic Z32, care, deși foarte nepractic, a
fost p robabil cel dintâi calculator universal, apoi calculatorul ENIAC cu o arhitectură relativ
inflexibilă care cerea modificări ale cablajelor la fiecare reprogramare, precum și calculatorul secret
britanic Colossus , construit pe bază de lămpi și programabil electronic.
Echipa de proiectare a ENIAC -ului, recunoscând neajunsurile acestuia, a elaborat o altă
arhitectură, mult mai flexibilă, care a ajuns cunoscută sub numele de arhitectura von Neumann sau
„arhitectură cu program memorat“. Aceasta stă la baza aproa pe tuturor mașinilor de calcul actuale.
Primul sistem construit pe arhitectura von Neumann a fost EDSAC .

2 Z3 a fost un calculator electromecanic proiectat de Konrad Zuse , prima mașină de calcul programabilă și complet
automată

5
În anii 1960 lămpile (tuburile electronice) au fost înlocuite de tranzistori , mult mai eficienți,
mai mici, mai ieftini și mai fiabili, ceea ce a dus la miniaturizarea și ieftinirea calculatoarelor. Din
anii 1970, adoptarea circuitelor integrate a coborât și mai mult prețul și dimensiunea calculatoarelor,
permițând printre altele și apariția calculatoar elor personale de acum.

1.2 Arhitectura von Neumann

Deși design -ul și performanțele calculatoarelor s -au îmbunătățit dramatic în comparație cu
anii 1940, principiile arhitecturii von Neumann sunt în continuare la baza aproape tuturor mașinilor
de calcul contemporane. Ea este denumită așa după renumitul matematician aus tro-ungar John von
Neumann .
Această arhitectură descrie un calculator cu patru module importante: unitatea aritmetică –
logică (UAL), unitatea de control (UC), memoria centrală și dispozitivele de intrare/ieșire (prescurtat
I/E). Acestea sunt in terconectate cu un mănunchi de fire numit magistrală pe care circulă datele de
calcul și datele de program (instrucțiuni) și sunt conduse în tactul unui ceas (șir de impulsuri
continuu).
Conceptual, memoria unui calculator poate fi văzută ca o mulțime de „celule“ numerotate.
Fiecare celulă primește drept adresă un n umăr unic propriu; ele pot înmagazina o cantitate mică,
prestabilită de informație. Informația poate fi ori o instrucțiune, ori date propriu -zise. Instrucțiunile
spun calculatorului ce să facă, iar datele sunt acele informații care trebuie prelucrate confo rm cu
instrucțiunile. În principiu orice celulă poate stoca (memora) atât instrucțiuni cât și date. Interesant
este și cazul când una sau mai multe instrucțiuni, deja stocate în memorie, sunt privite de către alte
instrucțiuni drept date de prelucrat/modif icat și sunt deci ele însele modificate dinamic („în mers“),
după necesitate.

1.3 Arhitectura procesorului
Arhitecturile de calcul folosite de procesoarele existente pe piata in momentul de fata:
 Arhitecturi CISC (Complex Instruction Set Computer) denumite si Von Neumann
 Arhitecturi RISC (Reduced Instruction Set Computer) denumite si Harvard

6
Arhitecturile CISC stau la baza procesoarelor INTEL/AMD si definesc procesoarele folosite de
platfromele x86/x64 Arhitecturile RISC stau la baza procesoarelor ARM ce sunt folosite de
echipemente mobile si a altor variante industriale pe 8/16/32/64 biti
Diferenta dintre cele 2 arhitecturi sta atat in design -ul setului de instructiuni cat si in felul in care
BUS -ul este folosit pentru a schimba intre RAM si proces or, date si instructiuni.
 Daca la arhitecturile CISC seturile de instructiuni cuprind sute de instructiuni cu utilizare simpla
(instr dest,sursa), la arhitecturile RISC avem zeci de instructiuni cu utilizare complexa
(instructiunile sunt parametrizabile si au numar variabil de parametri)
 Daca la arhitecturile CISC avem un BUS comun pentru DATE si COD arbitrat de un procesor
numit CHIPSET, la arhitecturile RISC cele 2 BUS -uri sunt total diferite, fapt ce duce la cresterea
vitezei de lucru a procesorului in a numite situatii
 Daca la arhitecturile CISC procesorul fizic ca si capsula coincide cu CPU care doar face calcule,
la arhitecturile RISC, procesorul fizic este numit SoC, iar procesorul care face calcule (CPU)
impreuna cu cantitati mici de RAM (kB), cantiat i mici de FlashDrive (kB) si periferice precum
USB, LAN, module de comunicare seriala, paralele, sunt parte integrata a capsulei SoC (System
on a Chip) .
.
Fig. 1.2 CPU

7

1.4 Circuite digitale

Principiile de mai sus pot fi implementate cu o varietate de tehnologii – de ex. mașina lui
Babbage era alcătuită din componente mecanice. Însă singura asemenea tehnologie care s -a dovedit
suficient de practică este cea a circuitelor digitale (numerice), circuite electronice care pot efectua
operații din algebra booleană și aritmetica binară .
Dar primele „circuite” digitale foloseau relee electromecanice pentru a reprezenta stările "0"
(blocat) și "1" (conducție), aranjate în porți logice . Releele au fost repede înlocuite cu lămpi
electronice – tuburi electronice cu vid, dispozitive 100% electronice, folosite până atunci în
electronica analogă pentru proprietățile lor de amplificare, dar care au putut fi utilizate și drept
comutatoare (elemente de bază î n construcția calculatoarelor) de stare, 1→0 sau 0→1.
Aranjând corect porți logice 3binare , se pot construi circuite care execută și funcții mai
complexe, de exemplu sumatoare . Sumatorul electronic adună două numere folosind același procedeu
(în termeni informatici, algoritm ) învățat de copii la școală: se adună fieca re cifră corespondentă, iar
„transportul” este transmis către cifrele din stânga. În consecință, reunind mai multe asemenea
circuite, se pot obține o UAL și o unitate de control complete. CSIRAC , unul din primele calculatoare
bazate pe arhitectura von Neumann și probabil cel mai mic asemenea calculator posibil, avea circa
2000 de lămpi (tuburi) – deci chiar și pentru sisteme minimale e ne voie de un număr considerabil de
componente.
Lămpile electronice erau caracterizate de câteva limitări severe în folosirea lor pentru
construcția porților logice : erau scumpe, puțin fiabile, ocupau mult spațiu și consumau cantități mari
de curent. Deși erau incredibil de rapide față de releele electromecanice , aveau și ele totuși o viteză
de operare relativ limitată. Astfel că începând din ani i 1960 lămpile ( tuburile electronice ) au fost
înlocuite cu tranzistori , dispozitive ce funcționau asem ănător, însă erau mult mai mici, mai rapide,
mai fiabile, mai puțin consumatoare de curent și mult mai ieftine.

3 O poartă logică este un dispozitiv electronic numeric elementar implementând o funcțiune logică abstractă elementară.
Porțile logice sunt structurile de b ază care permit realizarea unor funcții logice și matematice mult mai complexe
în circuitele integrate digitale.

8

Fig. 1.3 Un circuit integrat văzut la microscop

Din anii 1960 -'70, tranzistorul a fost și el înlocuit cu circuitul integrat , care conținea mai mulți
tranzistori, și firele de interconectare corespunzătoare, pe o singură plăcuță de siliciu (numită cip).
Din anii '70, UAL -urile combinate cu unități de control (UC) au fost produse unitar ca circuite
integrate, numite microprocesoare , sau CPU (Central Processing Unit /unitate de procesare centrală).
În timp, densitatea tranzistorilor din circuitele integrate a crescut incredibil, de la câteva zeci, în anii
70, până la peste 100 de milioane de tranzistoare pe circuit integrat, la procesoarele Intel și AMD din
anul 2005 .

1.5 Memorare de date
Lămpile electronice și tranzistorii pot fi folosite și pentru construirea de memorii – așa-
numitele circuite flip-flop sau „basculante bistabile” (CBB), și chiar sunt folosite pentru mici circuite
de memorie de mare viteză, numite „cu acces direct”. Însă puține designuri de calculatoare au folosit
bistabile pentru grosul nevoilor de memori e, memorii de amploare. Primele calculatoare
foloseau tuburi Williams – în esență proiectând puncte pe un ecran TV și citin du-le din nou mai
târziu, sau linii de mercur , în care datele erau depozitate sub formă de unde sonore care parcurgea u
tuburi cu mercur la viteză mică (comparativ cu viteza de operare a mașinii).
Aceste metode destul de neproductive au fost înlocuite cu dispozitive de stocare (memorare)
în mediu purtător magnetic, de exemplu memoria cu miezuri magnetice de formă inelară, în care un
curent electric era folosit pentru a induce un câmp magnetic remanent (dar slab) într -un material
feros, care putea fi citit ulterior, după necesitate pentru a folosi datele. În cele din urmă a apărut
memoria dynamic random acces s memory , DRAM. DRAM -ul este format din bănci (mulțimi

9
grupate) de condensatori , componente electrice care pot reține o sarcină electrică pentru o anumită
durată de timp. Scrierea informației într -o astfel de memorie se face prin încărcarea condensatorilor
cu o anumită sarcină ele ctrică, iar citirea prin determinarea („măsurarea”) sarcinii acestora (dacă este
încărcat sau descărcat).

1.6 Periferice de intrare/iesire
„I/E” („intrare -ieșire”), sau în engleză I/O (de la input/output ), este termenul general pentru
acele dispozitive pr in care un calculator primește informații din lumea exterioară, inclusiv instrucțiuni
despre ce să facă, sau trimite înapoi (în afară) rezultatele calculelor sau operațiilor logice pe care le -a
efectuat.
Rezultatele pot fi destinate ca informații oamenilor, sau pot fi folosite în mod direct
(nemijlocit) drept decizii în dirijarea altor mașini; de exemplu în cazul unui robot industrial, cel mai
important dispozitiv de ieșire (dispozitiv E) al calculatorului (de robot) înglobat în el
creează comenzile detailate necesare pentru toate operațiile (mișcările) mecanice
ale robotului propriu -zis.
Prima generație de calculatoare era echipată cu o gamă de dispozitive I/E destul de limitată și
cu viteză de execuție redusă; de exemplu, pentru introducerea datelor de calcul și a instrucțiunilor de
program se folosea în principal un c ititor de cartele perforate sau un dispozitiv asemănător, iar pentru
afișarea rezultatelor se folosea o imprimantă, de obicei un teleimprimator modificat de tip „telex”.
De-a lungul timpului însă au apărut o imensă diversitate de dispozitive I/E. Pentru calculatorul
personal de azi, cele mai comune modali tăți de introducere directă a datelor
sunt tastaturile și mausurile , iar principalul mijloc prin care calculatorul prez intă informații către
utilizator sunt monitoarele , deși imprimantele sau dispozitivele de generat sunet sunt fo losite și ele în
mod obișnuit. Alte dispozitive sunt specializate pentru numai anumite tipuri de intrări sau ieșiri, de
exemplu aparatul foto digital și scanerul .
Două categorii principale de dispozitive sunt:
 dispozitivele secundare de stocare: dischetele , unitățile CD, DVD , discurile dure și altele;
capacitățile de stocare a datelor pot diferi foarte mult între ele.

10
 precum și dispozitivele pentru conectarea la rețele de calculatoare . Posibilitatea de a interconecta
calculatoarele pentru a transfera date și informații între ele a deschis calea unei mulțimi de noi
aplicații. Internetul , și aici în special World Wide Web , permit miliardelor de calculatoare de pe
glob să se lege unele cu altele pentru a transfera între ele informații de toate tipurile.

1.7 Software
Instrucțiunile interpretate de către unitatea de control și executate de UAL nu seamănă deloc
cu limbajul uman. Calculatorul cunoaște prin construcție un set relativ mic de instrucțiuni elementare,
care sunt simple, bine definite și neambigue. Exemple de instrucțiuni sunt: „copiază conținutul celulei
de memorie 5 și plasează rezultatul în celula 10”, „adună conținutul celulei 7 cu conținutul celulei 13
și plasează rezultatul în celula 6”, „dacă conținutul celulei 999 este 0 (zero), următoarea instrucțiune
de executat se găsește memorată în celula 30”, dacă nu, „se urmează secvența (șirul de instrucțiuni)
mai departe”.
Instrucțiunile calculatorului se împart în patru mari categorii:
1. mutare de date dintr -o locație în alta (instrucțiuni de transfer ),
2. executare de operații aritmetice și logice asupra datelor (instrucțiuni aritmetice ,
instrucțiuni logice ),
3. testare a unor condiții, de exemplu „conține celula de memorie nr. 999 un 0?” (instrucțiuni
de testare sau de condiție),
4. modificare a secvenței (șirului) de operații (instrucțiuni de comandă propriu -zise).
În calculator instrucțiunile „externe” sunt memorate și deci reprezentate în cod binar , la fel ca
și toate celelalte date de calcul (numere, litere, simboluri). De exemplu, codul în limbaj -mașină
pentru una din operațiile de copiere într-un microprocesor fabricat de firma Inteleste 10110000, „1” și
„0” fiind cele două valori logice binare „înțelese” de microprocesor (computer, mașină). În
completarea exemplului de mai sus, se poate intui că o instrucțiune de adunare în res pectivul Intel –
microprocesor trebuie să fie reprezentată altfel decât cea de copiere, de exemplu 01001110. Mulțimea
de instrucțiuni implementate într -un calculator (computer) formează și este numit limbajul mașină al
acelui calcu lator.

11
Simplificat vorbind, dacă două calculatoare au CPU -uri (unități centrale de procesare) care
răspund la fel la același set de instrucțiuni, programele (executabile) scrise pentru unul pot rula și pe
celălalt aproape fără modificări, dar de exemplu c u viteze diferite. Ușurința portabilității este o
motivație pentru proiectanții de calculatoare ca ei să nu modifice radi cal design -urile existente, decât
pentru motive serioase.

12
CAPITOLUL II – POSIBILITATI DE IMPLEMENTARE ALE ELEMENTELOR
COMPONENTE ALE UNUI SISTEM DE CALCUL

2.1 Poartă logic ă

O poartă logică este un dispozitiv electronic numeric elementar implementând o funcțiune
logică abstractă elementară. Porțile logice sunt structurile de bază care permit realizarea unor funcții
logice și matematice mult mai complexe în circuitele integrate digitale. O poartă logică poate fi
modelată ca o rețea de comutatoare controlate electric (de exemplu cu tranzistoare MOS ). La început
porțile logice erau realizate din diode (lămpi electronice sau semiconductoare) și rezistențe electrice
(discrete).
2.1.1 Construcție și funcționare

O poartă logică are una sau mai multe intrări digitale/binare (semnale reprezentând 0
logic sau 1 logic ), și are ca ieșire o funcție simplă a acestor intrări, de exemplu ȘI logic sau SAU
logic . O poartă logică nu are stări interne, intermediare. Aceasta înseamnă că pentru o combi nație de
valori binare ( 0 și 1) existentă la intrări, corespunde la ieșirea porții numai o anumită (definită) stare
(valoare binară). Altfel exprimat, o poartă logică nu este, electronic, un circuit secvențial ci un circuit
combinațional ("de combinare").
Porțile logice elementare sunt: Poarta ȘI(AND), poarta SAU (OR), poarta ȘI-NU(NAND),
poarta SAU -NU(NOR), poarta SAU -EXCLUSIV (XOR). Porțile ȘI -NU engleză : NAND) și SAU -NU
(engleză : NOR) sunt numite și porți universale, pentru că cu ajutorul lor pot fi reproduse
(combinațial) oricare din funcțiile celorlalte porți. Ele sunt din acest punct de vedere, porți
fundamentale .
Porțile logice au cel puțin două intrări (cu excepția inversorului NU, engleză : NOT), putându –
se ajunge până la 10 intrări, și o singură ieșire.

13

Fig. 2.1 Circuitul integrat 7400 – Poarta NAND

2.2 Porți electronice
Pentru a construi un sistem logic complet funcțional, pot fi utilizate relee, supape (tuburi
vidate) sau tranzistoare. Cea mai simplă familie de porți logice care utilizează tranzistoare bipolare se
numește logica tra nzistor -rezistor (RTL). Spre deosebire de porțile de logică simple diode (care nu au
un element de câștig), porțile RTL pot fi cascadate pe termen nelimitat pentru a produce funcții logice
mai complexe. Porțile RTL au fost utilizate în circuite integrate t impurii.
Pentru o viteză mai mare și o densitate mai bună, rezistențele utilizate în RTL au fost înlocuite
cu diode care au dus la logica diodei tranzistorului (DTL). Logica tranzistor -tranzistor (TTL) a
suplinit apoi DTL. Pe măsură ce circuitele integrat e au devenit mai complexe, tranzistoarele bipolare
au fost înlocuite cu tranzistoare cu efect de câmp mai mic (MOSFET); consultați PMOS și NMOS.
Pentru a reduce în continuare consumul de energie, majoritatea implementărilor cipurilor
contemporane ale siste melor digitale utilizează acum logica CMOS. CMOS utilizează dispozitive
MOSFET complementare (ambele canale și canale p) pentru a obține o viteză mare, cu disipare
redusă a puterii.
Pentru logica la scară redusă, designerii folosesc acum porți logice pref abricate din familii de
dispozitive cum ar fi seria TTL 7400 de la Texas Instruments, seria CMOS 4000 de RCA și
descendenții lor mai recenți. Din ce în ce mai mult, aceste porți logice cu funcții fixe sunt înlocuite cu
dispozitive logice programabile, care permit proiectanților să împacheteze un număr mare de porți
logice mixte într -un singur circuit integrat. Natura programabilă a dispozitivelor logice programabile,
cum ar fi FPGA -urile, a redus caracterul "dur" al hardware -ului; acum este posibilă modific area

14
designului logic al unui sistem hardware prin reprogramarea unor componente ale acestuia, permițând
astfel modificarea caracteristicilor sau funcției unei implementări hardware a unui sistem logic.
Porțile logice electronice diferă semnificativ de echivalentele releelor și comutatoarelor
acestora. Ele sunt mult mai rapide, consumă mult mai puțină putere și sunt mult mai mici (toate cu un
factor de un milion sau mai mult în majoritatea cazurilor). De asemenea, există o diferență structurală
fundament ală. Circuitul de comutare creează o cale metalică continuă pentru ca curentul să curgă (în
ambele direcții) între intrare și ieșire. Poarta logicii semiconductoare, pe de altă parte, acționează ca
un amplificator de tensiune cu câștig mare, care scufundă un curent mic la intrare și produce o
tensiune cu impedanță scăzută la ieșirea sa. Nu este posibil ca curentul să curgă între ieșirea și
intrarea unei porți logice semiconductoare.
Un alt avantaj important al familiilor standard logice ale circuitelor int egrate, cum ar fi
familiile 7400 și 4000, este că pot fi cascadate. Aceasta înseamnă că ieșirea unei singure poarta poate
fi legată la intrările uneia sau mai multor alte porți și așa mai departe. Sistemele cu diferite grade de
complexitate pot fi construi te fără îngrijorare deosebită de proiectant pentru lucrările interne ale
porților, cu condiția să fie luate în considerare limitările fiecărui circuit integrat.
Ieșirea unei singure poarta poate conduce numai un număr finit de intrări la alte porți, un
număr numit "limită fan -out". De asemenea, există întotdeauna o întârziere, numită "întârziere de
propagare", de la o modificare a intrării unei porți la modificarea corespunzătoare a ieșirii acesteia.
Atunci când porțile sunt cascadate, întârzierea totală d e propagare este aproximativ suma întârzierilor
individuale, un efect care poate deveni o problemă în circuitele de mare viteză. Întârzierea
suplimentară poate fi cauzată atunci când un număr mare de intrări sunt conectate la o ieșire, datorită
capacității distribuite a tuturor intrărilor și cablurilor și cantității finite de curent pe care fiecare ieșire
le poate furniza.

2.2.1 Istorie și dezvoltare

Sistemul numeric binar a fost rafinat de Gottfried Wilhelm Leibniz (publicat în 1705),
influențat de sis temul bin ar al vechiului I Ching. Leibniz a stabilit că, prin utilizarea sistemului binar,
ar putea fi combinate principiile aritmetice și logice.

15
Într-o scrisoare din 1886, Charles Sanders Peirce a descris modul în care operațiunile logice ar
putea fi ef ectuate prin cir cuite electrice de comutare. În cele din urmă, tuburile vidate au înlocuit
releele pentru operațiile logice. Modificarea lui Lee De Forest, în 1907, a supapei Fleming poate fi
folosită ca o poartă logică. Ludwig Wittgenstein a introdus o ve rsiune a tabelului de adevăr pe 16
rânduri ca propoziția 5.101 a Tractatus Logico -Philosophicus (1921). Walther Bothe, inventator al
circuitului de coincidență, a primit parte din Premiul Nobel pentru fizică din 1954, pentru prima
poartă electronică modern ă din 1924. Konrad Zuse a proiectat și construit porți logice
electromecanice pentru calculatorul său Z1 (din 1935 -38).
Din 1934 până în 1936, inginerul NEC Akira Nakashima a introdus teoria circuitelor de
comutare într -o serie de lucrări care arată că al gebra booleană cu două valori, pe care le -a descoperit
în mod independent, poate descrie funcționarea circuitelor de comutație. Lucrarea sa a fost ulterior
citată de Claude E. Shannon, care a elaborat utilizarea algebrei booleene în analiza și proiectarea
circu itelor de comutare în 1937. Utilizarea acestei proprietăți a comutatoarelor electrice pentru
implementarea logicii este conceptul fundamental care stă la baza tuturor computerelor electronice
digitale. Teoria circuitelor de comutare a devenit fundamen tul designului de circuite digitale,
devenind cunoscută în comunitatea de inginerie electrică în timpul și după cel de -al doilea război
mondial, cu rigoare teoretică care înlocuiește metodele ad -hoc care au existat anterior.

Fig. 2.2 Un simbol contor sin cron pe 4 biți în sus / în jos (74LS192) în conformitate cu ANSI / IEEE
Std. 91 -1984 și publicația IEC 60617 -12.

2.3 Simboluri
Există două seturi de simboluri pentru porțile logice elementare utilizate în comun, ambele
definite în ANSI / IEEE Std 91 -1984 și în suplimentul său ANSI / IEEE Std 91a -1991. Forma
"distinctivă" stabilită, bazată pe schemele tradiționale, este utilizată p entru desene simple și derivă din

16
MIL-STD -806 din anii 1950 și 1960. Este uneori neoficial descris ca "militar", reflectând originea sa.
Forma "formă dreptunghiulară", bazată pe ANSI Y32.14 și alte standarde industriale timpurii, după
cum a fost ulterior m odificată de IEEE și IEC, are contururi dreptunghiulare pentru toate tipurile de
porți și permite reprezentarea unei game mult mai largi de dispozitive decât este posibilă simboluri
tradiționale. Standardul IEC, IEC 60617 -12, a fost adoptat prin alte standarde, cum ar fi EN 60617 –
12: 1999 în Europa, BS EN 60617 -12: 1999 în Regatul Unit și DIN EN 60617 -12: 1998 în Germania.
Scopul reciproc al IEEE Std 91 -1984 și IEC 60617 -12 a fost de a oferi o met odă uniformă de
descriere a funcțiilor logice complexe ale circuitelor digitale cu simboluri schematice. Aceste funcții
au fost mai complexe decât ușile AND și OR. Acestea ar putea fi circuite pe scară medie, cum ar fi un
contor de 4 biți la un circuit la scară largă, cum ar fi un microprocesor.
IEC 617 -12 și succesorul său IEC 60617 -12 nu prezintă în mod explicit simbolurile "formei
distincte", dar nu le interzic . Acestea sunt totuși prezentate în ANSI / IEEE 91 (și 91a) cu această
notă: "Simbolul de formă distinctivă nu este preferat, conform publicației IEC 617, partea 12, dar nu
este considerat a fi în contradicție cu standardul respectiv .“ IEC 60617 -12 conține în mod
corespunzător nota (secțiunea 2.1). "Deși nu sunt preferate, utilizarea altor simbolur i recunoscute de
standardele oficiale naționale, adică forme distinctive în locul simbolurilor [lista porților de bază], nu
este considerată ca fiind în contradicție cu acest standard. Utilizarea acestor simboluri în combinație
pentru a forma simboluri com plexe (de exemplu, utilizarea ca simboluri încorporate) este descurajată.
" Acest compromis a fost atins între respectivele grupuri de lucru ale IEEE și IEC pentru a permite ca
standardele IEEE și IEC să fie în conformitate reciprocă.
Negatie
NOT
or INPUT OUTPUT
A NOT A
0 1
1 0

17

În electronică, o poartă NOT este mai frecvent numită invertor. Cercul de pe simbol este
numit bule și este folosit în diagramele logice pentru a indica o negare logică între starea logică
externă și starea logică internă (1 la 0 sau invers). Pe o diagramă de circuit trebuie să fie însoțită de o
declarație prin care se afirmă că se folosește convenția logică pozitivă sau convenția logică negativă
(nivelul d e tensiune ridicată = 1 sau nivelul de tensiune joasă = 1, respectiv). Panta este utilizată în
diagrame de circuite pentru a indica direct o intrare sau ieșire activă -joasă (nivel scăzut de tensiune =
1) fără a necesita o convenție uniformă pe întreaga dia gramă a circuitelor. Aceasta se numește
Indicarea polarității directe. Vezi standardele IEEE Std 91 / 91A și IEC 60617 -12. Atât bubble -ul, cât
și pivotul pot fi folosite pe simboluri de formă distinctă și în formă de dreptunghiulară pe diagrame
de circuite , în funcție de convenția logică folosită. Pe diagramele logice pure, numai balonul este
semnificativ.
Conjuncție și disjuncție
AND
or INPUT OUTPUT
A B A AND B
0 0 0
0 1 0
1 0 0
1 1 1

OR
or INPUT OUTPUT
A B A OR B

18
0 0 0
0 1 1
1 0 1
1 1 1

Refuzul alternativ și negarea comună
NAND
or INPUT OUTPUT
A B A NAND B
0 0 1
0 1 1
1 0 1
1 1 0

NOR
or INPUT OUTPUT
A B A NOR B
0 0 1
0 1 0
1 0 0

19
1 1 0

Exclusive sau Biconditional
XOR
INPUT OUTPUT
A B A XOR B
0 0 0
0 1 1
1 0 1
1 1 0

2.3.1 Simbolurile echivalente ale lui De Morgan

Folosind legile lui De Morgan, o funcție AND este identică cu o funcție OR cu intrări și
ieșiri negate. De asemenea, o funcție OR este identică cu o funcție AND cu intrări și ieșiri negate.
O poartă NAND este echivalentă cu o poartă OR cu intrări negate, iar o poartă NOR este
echivalentă cu o poartă AND cu intrări negate.
Aceasta duce la un set de simboluri alternative pentru porțile de bază care utilizează
simbolul de bază opus (AND sau OR), dar cu intrările și ieșirile negate. Folosirea acestor simboluri
alternative poate face diagramele de circuite logice mult mai clare și pot ajuta să se arate
conexiunea accidentală a unei ieșiri active ridicate la o intrare activă scăzută sau invers. Orice
conexiune care are negări logice la ambele capete poate fi înlocuită de o conexiune negantă și o
schimbare ad ecvată a porții sau invers.
Orice conexiune care are o negare la un capăt și nici o negare la cealaltă poate fi mai ușor
de interpretat prin folosirea simbolului echivalent De Morgan la unul dintre cele două capete.

20
Atunci când indicatorii de negație sau de polaritate se potrivesc la ambele capete ale unei
conexiuni, nu există nici o negare logică în această cale (efectiv, anulează bulele), făcând mai ușor
urmărirea stărilor logice de la un simbol la altul. Acest lucru este văzut de obicei în diagramele
logice reale – astfel cititorul nu trebuie să se obișnuiască să asocieze formele exclusiv ca forme OR
sau AND, dar să ia în considerare și bulele la ambele intrări și ieșiri pentru a determina logica
"adevărată" funcție indicată.

Fig. 2.3 Cipul 7400, care conține patru NAND -uri. Cele două borne suplimentare de
alimentare (+ 5 V) și conectați solul.

Un simbol De Morgan poate arăta mai clar un scop logic primar al porții și polaritatea
nodurilor sale care sunt considerate în starea "semnalată" (activă). Lua ți în considerare cazul
simplificat în cazul în care o poartă NAND cu două intrări este utilizată pentru a conduce un motor
atunci când oricare dintre intrările sale sunt reduse printr -un comutator. Starea "semnalizat" (motor
activat) apare atunci când unu l sau celălalt comutator este pornit. Spre deosebire de un simbol
NAND obișnuit, care sugerează ȘI logică, versiunea De Morgan, o poartă cu două intrări negative
OR, arată corect că OR este de interes. Simbolul NAND obișnuit are un balon la ieșire și nici unul
la intrările (opusul stărilor care vor porni motorul), dar simbolul De Morgan prezintă atât intrările,
cât și ieșirile în polaritatea care va conduce motorul.

2.3.2 Stocare a datelor
Porțile logice pot fi, de asemenea, folosite pentru a stoca date. Un element de stocare poate
fi construit prin conectarea mai multor porți într -un circuit "de blocare". Proiecte mai complicate
care utilizează semnale de ceas și care se schimbă numai pe o margine în creștere sau în jos a

21
ceasului se numesc "flip -flops" declanșate de margine. Formal, un flip -flop se numește circuit
bistabil, deoarece are două stări stabile pe care le poate menține pe termen nelimitat. Combinația de
jafuri multiple în paralel , pentru a stoca o valoare mai multor biți, este cunoscută ca un registru.
Atunci când utilizați oricare dintre aceste configurații de porți, sistemul global are memorie; se
numește apoi un sistem logic secvențial, deoarece ieșirea acestuia poate fi influe nțată de starea
(stările) anterioară, adică de secvența stărilor de intrare. În schimb, ieșirea din logica
combinațională este pur o combinație a intrărilor actuale, neafectată de stările de intrare și de ieșire
anterioare.
Aceste circuite logice sunt cuno scute sub numele de memorie de calculator. Acestea variază
în funcție de performanță, pe baza factorilor de viteză, complexitate și fiabilitate a stocării, iar pe
baza aplicației sunt utilizate multe tipuri diferite de modele.
Începând cu anii 1990, cele m ai multe porți logice sunt realizate în tehnologia CMOS
(semiconductori complementari metalici) care utilizează atât tranzistoare NMOS, cât și PMOS.
Adesea, milioane de porți logice sunt ambalate într -un singur circuit integrat.
Există mai multe familii lo gice cu caracteristici diferite (consumul de putere, viteză, cost,
mărime), cum ar fi: RDL (logica rezistor -dioda), RTL (logica tranzistorului rezistor), DTL
(tranzistor tranzistor) logică) și CMOS. Există, de asemenea, sub -variante, de ex. standard CMOS
versus tipuri avansate folosind tehnologia CMOS încă, dar cu unele optimizări pentru a evita
pierderea de viteză datorită tranzistorilor PMOS mai lenți.
Implementările non -electronice sunt variate, deși puține dintre acestea sunt utilizate în
aplicații prac tice. Multe computere digitale electromecanice timpurii, cum ar fi Harvard Mark I, au
fost construite din porți logice releu, utilizând relee electro -mecanice. Porțile logice pot fi realizate
cu ajutorul unor dispozitive pneumatice, cum ar fi releul Sorteb erg sau porți logice mecanice,
inclusiv pe scară moleculară . Porțile logice au fo st făcute din ADN și folosite pentru a crea un
calculator numit MAYA (a se vedea MAYA -II). Porțile logice pot fi făcute din efecte mecanice
cuantice (deși computația cuantică se diferențiază de obicei de designul boolean). Poarta logică
fotonică utilizează efecte optice neliniare.

22
2.4 Proiectarea circuitelor aritmetice

2.4.1 Proiectarea comparatoarelor
Comparatoarele digitale sunt extrem de diverse ca implementare și ca funcții de ieșire.
Ieșirile pot indica egalitatea, ne -egalitatea, relația de ordine (mai mare, mai mare sau egal, etc). în
principiu, la implementarea circuitelor de comparare stau porțile XOR și XNOR. De aceea, într -o
primă parte a acestui paragraf ne vom referi la modelarea funcțiilor XOR și a circuitelor de detecție
a parității.

Fig. 2.4 Circuitul generator de paritate de 9 biți 74×280. a) schema logică; b) schema bloc.

2.4.2 Sumatoare si scazatoare

Fig. 2.5 Tabelul de adevăr pentru adunarea șl scăderea numerelor binare

23
O utilizare obișnuită a operației de scădere în calculatoarele numerice este realizarea
comparației între două numere. De exemplu, dacă operația X -Y produce un borrow out la poziția
bitului cel mai semnificativ, atunci X este mai mic decât Y; în caz contrar, X este mai mare sau
egal cu Y. Un operator complet de scădere (scăzător complet) are ca intrări cei doi biți care trebuie
scăzuți, X (scăzătorul) și Y (descăzutul), și împrumutul BIN; ieșirile sunt diferența D și 4
împrumut ul BOUT. Din tabelul de adevăr se pot deduce ecuațiile logice ale semnalelor de ieșire:

Un sumator tipic integrat este 74×283, sumator pentru două cuvinte de patru biți
A=A3A2A1A0 și B=B3B2B1B0. Ieșirile circuitului sunt suma S=S3S2S1S0 și transportul C4.

Fig. 2.6 Interpretarea unui scăzător ca un sumator.

Deși VHDL are operatori de adunare (+) și de scădere ( -), ei funcționează numai cu tipurile
întregi, reale și enumerare. Așa cum au fost ei definiți, nu funcționează cu tipurile BIT_VECTOR
sau STD_LOGIC_VECTOR. în schimb, alte pachete standard definesc ace ști operatori. . Pachetul
IEEE_std_logic_arith definește două noi tipuri, SIGNED și UNSIGNED. De asemenea, în pachet
se definesc operațiile de adunare și de scădere pentru aceste noi tipuri de date precum și pentru
STD_LOGIC și STD_ULOGIC pentru operanzi d e un bit.

24
type SIGNED ia array (NATURAL range <>) of STD_LOGIC; 5
type UNSIGNED is array (NATURAL range <>) of STD_LOGIC;

Tipul SIGNED se folosește pentru aritmetica în complement față de doi, iar tipul
UNSIGNED se folosește pentru aritmetica ce conține numere binare fără semn. Pachetul conține
operatori aritmetici și operaționali supraîncărcați pentru cele două noi tipuri, precum și numeroase
funcții de conversie de tip: SIGNED și UNSIGNED la INTEGER și STD_LOGIC_VECTOR, etc.
În mod normal, dacă oricare dintre operanzi este de tipul SIGNED, rezultatul este SIGNED, în caz
contrar rezultatul este UNSIGNED.
Totuși, dacă rezultatul este asignat unui semnal sau unei variabile de tipul
STD_LOGIC_VECTOR, atunci rezultatul SIGNED sau UNSIGNED este conve rtit la acel tip.
Lungimea oricărui rezultat este, de obicei, lungimea celui mai lung operand. Dar, dacă un operand
UNSIGNED este combinat cu unul SIGNED sau INTEGER, lungimea crește cu 1 pentru a include
bitul de semn. Aceste considerații sunt incorporate în modelul VHDL din Figura 8, unde se
prezintă adunări pentru diferite tipuri de operanzi și de rezultate.
Primul rezultat, S, este declarat ca având 9 biți, presupunând că proiectantul este interesat în
bitul de transport de la adunarea de 8 biți a oper anzilor UNSIGNED A și B. Operatorul de
concatenare & se folosește pentru a extinde A și B astfel încât funcția de adunare va returna bitul
de transport în poziția MSB a rezultatului. Următorul rezultat, T, are de asemenea 9 biți, pentru că
funcția de aduna re extinde operandul UNSIGNED A atunci când acesta se combină cu operandul
SIGNED C. În a treia adunare, un STD_LOGIC_VECTOR de 8 biți D este convertit la tipul
SIGNED și combinat cu C pentru a obține un rezultat SIGNED de 8 biți U. În ultima instrucțiune,
D este convertit la UNSIGNED, extins automat cu un bit, și scăzut din C, pentru a conduce la un
rezultat V pe 9 biți.
Primul model de sumator propus spre implementare are la intrare doi operanzi de 4 biți, A și
B, o intrare de transport, CIN, și formează la ieșire suma pe 4 biți SUM și transportul către rangul
următor, CAR_OUT. Tipurile de intrare și de ieșire sunt STD_LOGIC sau
STD_LOGIC_VECTOR. Intrările A și B sunt convertite la tipul SIGNED; intrarea CIN este
completată cu trei biți 0 și convertită la tipul SIGNED. Adunarea celor trei operanzi (A, B și CIN)
va produce un rezultat pe 5 biți. în operația de adunare, A este extins la 5 biți (se adaugă un 0 la
stânga) cu ajutorul funcției CONV_UNSIGNED. Operatorul supraîncărcat + ajustează automat
lungimea celorlalți operanzi. Cei mai puțin semnificativi patru biți ai rezultatului (C_UNSIGNED)

25
vor reprezenta ieșirea sumă SUM. Bitul cel mai semnificativ al lui C_UNSIGNED devine
CAR_OUT.
2.4.3 Unități aritmetice și logice
O unitate aritmetică și logică (ALU) e ste un circuit combinațional care poate realiza un
anumit număr de operații aritmetice și logice asupra a două cuvinte binare. O unitate MSI tipică are
operanzi de 4 biți și are 3…5 intrări de selecție a funcției de realizat, permițând astfel până la 32
operații.
Tipul de operație efectuată de 74×181 este selectat prin M (operații aritmetice sau logice).
Operația concretă în cadrul unui grup este stabilită prin intrările S3S2S1S0. Identificatorii A, B și F
din tabelul din Figura 11se referă la cuvintele d e 4 biți A3A2A1A0, B3B2B1B0 și respectiv
F3F2F1F0. Simbolurile . și + se referă la operațiile logice AND, OR.

Fig. 2.7 Schema bloc și tabelul de funcționare pentru ALU 74×181

Dacă M = 1, se selectează operații logice; fiecare ieșire Fi este o funcție numai de datele
corespunzătoare de intrare Ai și Bi. între ranguri nu se propagă semnale de transport (carry) iar
intrarea CIN este ignorată. Intrările S3 -S0 selectează o operație logică particulară; se poate selecta
oricare dintre cele 16 funcț ii logice de tip combinațional care se pot realiza asupra a două variabile.
Dacă M=0, se selectează operații aritmetice, se propagă transport (carry) între ranguri, iar CIN este
interpretat ca intrare de transport pentru rangul cel mai puțin semnificativ. Pentru operații asupra
unor cuvinte mai mari de 4 biți, pot fi cascadate mai multe ALU 74×181, conectând COUT de la

26
fiecare unitate la CIN al unităp'i următoare (mai semnificativă).
Tuturor unităților cascadate li se aplică aceleași semnale de control (M, S3-S0). Pentru a
realiza adunarea în complement față de doi, se selectează „A plus B plus CIN" din S3 -S0. Intrarea
CIN a celei mai puțin semnificative ALU este setată la zero pe durata operațiilor de adunare. Pentru
a realiza scăderea în complement față d e doi. se selectează minus B minus CIN" din S3 -S0. în acest
caz, intrarea CIN a celei mai puțin semnificative ALU este setată la unu, întrucât CIN înseamnă
împrumut (borrow) în cazul scăderilor. 74×181 oferă și alte operații aritmetice, cum ar fi minus 1
plus CIN", care sunt utile în aplicații de procesare (cum ar fi decrementarea cu 1).
Unele operații sunt destul de ciudate „AB plus (A + B) plus CIN" și nu se folosesc aproape
niciodată. Intrările A3_L -A0_L și B3_L -B0_L, precum și funcțiile de ieșire F3__L -F0_L ale
74×181 sunt toate active L. Totuși, 74×181 poate fi folosit și cu intrări/ieșiri active H. în acest caz
trebuie să se ia în considerare un alt tabel de funcționare al circuitului.

Pentru a implementa unele dintre primitivele care au rămas, este util să se definească unele
funcții și proceduri de bază. În figura 12 este descris un pachet care conține aceste funcții Toate
funcțiile operează asupra bit vectorilor a căror lungime este nerestricționată. în fiecare caz se
presupune că acești bit vector i reprezintă un număr binar și că bitul cel mai puțin semnificativ este
în dreapta. în fiecare caz se formează o variabilă internă care are gama descrescătoare, iar valoarea
parametrului se asignează acestei variabile. Deci, parametrii de apelare pot avea fie gamă
crescătoare fie descrescătoare, atâta timp cât bitul cel mai puțin semnificativ este în dreapta.

27
CAPITOLUL III – CONTROLUL UNUI SISTEM DE CALCUL

3.1 Componentele proiectului

– Arduino UNO
– Tastatura
– Display LCD

Fig. 3 .1 Display LCD + Arduino UNO

Fig 4.2 Ard uino UNO

28
3.1.1 Display LCD

Afișajul cu cristale lichide (engleză Liquid Crystal Display , prescurtat LCD ) este
un dispozitiv de afișare pentru litere, cifre, grafică și imagini, fiind constituit dintr -o matrice de
celule lichide care devin opa ce sau își schimbă culoarea sub influența unui curent sau câmp
electric.[1] Din p.d.v. fizic fenomenul se explică prin proprietatea cristalelor lichide de a influența
direcția de polarizare a luminii atunci când ele sunt puse sub o anumită tensiune electrică.
Afișajele cu crista le nu produc ele însele lumină , și au un consum de energie foarte mic. Un
afișaj LCD se prezintă sub forma unui ecran afișor (display) care este comandat electronic printr –
un decodificator de caractere numerice și alfabetice. Este folosit frecvent în
construcția ceasurilor digitale (ceasuri care au în locul acelor arătătoare un afișor de tip LCD), la
afișările de date la mașini CNC, mașini de uz casnic, inscripții și semnalizări electronice.
Cristalele lichide sunt, în cazul de față, combinații chimice de natură organică aflate în stare
lichidă. Ele au proprietatea de a putea fi comandate de o corespunzătoare tensiune electrică , astfel
încât își ordonează moleculele trecând de la stare „transparentă” la stare „netransparentă”. Concret,
este vorba de o polarizare electrică a unor molecule lichide care în contrast cu restul „câmpului”
formează o imagine vizibilă.

3.1.2 Tastatura

Tastatura este o componentă hardware periferică a calculatorului ce permite utilizatorului să
introducă în unitatea centralǎ a acestuia date (litere, cifre și semne speciale) prin apăsarea
unor taste. Cele mai folosite tastaturi pe plan mondial sunt cele de tip QWERTY . Un alt tip de
tastaturi este tipul QWERTZ . Denumirile vin de la primele șase taste de pe rândul al treilea. Tipul
QWERTY se folosește mai ales în țările anglofone, iar celelalte folosesc mai ales tipul QWERTZ.
Tastatura este probabil cel mai vechi dispozitiv de intrare din structura comput erelor
moderne, ea fiind inventată încă înainte de apariția monitoarelor și a mausului . Fiecare tastă are
asociat un număr de identificare care poartă denumirea de "cod de scanare". La apăsarea unei taste,
tastatura trimite sistemului de calcul codul de sc anare corespunzător tastei respective (un număr
întreg de la 1 la „n” – numărul de taste). La primirea codului de scanare de la tastatură, calculatorul
face conversia între numărul primit și codul ASCII corespunzător, în logică binară.

29

Fig.3.3 Tastatură 4×3 fără a folosi o bibliotecă , utilizând cea mai mică ieșire de intrare pe
placa arduino.

3.1.3 Arduino

Arduino este o companie de software, proiect și comunitate de utilizatori de software și
software de tip open source care proiectează și produce m icrocontrolere cu un singur tablou și
kituri de microcontroler pentru construirea de dispozitive digitale și obiecte interactive care pot
detecta și controla obiecte din lumea fizică și digitală. Produsele proiectului sunt distribuite ca
hardware și softwa re open source și care sunt licențiate sub licența GNU Lesser Public General
(LGPL) sau GNU G eneral Public License (GPL), care permit fabricarea plăcilor Arduino și
distribuția de software de către oricine . Plăcile arduino sunt disponibile comercial în fo rmă
preasamblată sau ca truse de tip do -it-yourself (DIY).
Design -ul utilizează o varietate de microprocesoare și controlori. Plăcile sunt echipate cu
seturi de icoane digitale și analogice de intrare / ieșire (I / O) care pot fi interfațate cu diferite pl ăci
de expansiune sau plăcuțe (scuturi) și alte circuite. Plăcile au interfețe de comunicații seriale,
printre care și Universal Serial Bus (USB) pe unele modele, care sunt de asemenea utilizate pentru
încărcarea programelor de pe calculatoarele personale. Microcontrolerele sunt în mod obișnuit
programate utilizând un dialect de caracteristici din limbile de programare C și C ++. În plus față
de utilizarea instrumentelor tradiționale de compilare, proiectul Arduino oferă un mediu integrat de
dezvoltare (IDE ) bazat pe proiectul Procesarea limbajului.

30

Fig. 3.4 Arduino Uno SMD R3

Proiectul Arduino a început în 2003 ca un program pentru studenții de la Institutul de
Design al Interacțiu nii Ivrea din Ivrea, Italia, care urmărește să ofere un mod ieftin și ușor pentru
novici și profesioniști să creeze dispozitive care să interacționeze cu mediul lor folosind senzori și
actuatori. Exemple comune de astfel de dispozitive destinate pasionaților de hobby -uri începători
includ roboți simpli, termostate și detectoare de mișcare.
Numele Arduino provine dintr -un bar din Ivrea, Italia, unde se întâlneau unii dintre
fondatorii proiectului. Bara a fost numită după Arduin de Ivrea, care a fost margraful marți al lui
Ivrea și al r egelui Italiei între 1002 și 1014.

3.1.3.1 Scurt istoric

Proiectul Arduino a demarat la Institutul de Design Interacțiune Ivr ea (IDII) din Ivrea,
Italia. La acea vreme studenții au folosit un microcontroler BASIC Stamp la un cost de 50 USD, o
cheltuială considerabilă pentru mulți studenți. În 2003, Hernando Barragán a creat platforma de
dezvoltare Wiring ca proiect de masterat la IDII, sub supravegherea lui Massimo Banzi și Casey
Reas, care sunt cunoscuți pentru lucrul la limba de procesare. Scopul proiec tului a fost de a crea
instrumente simple și ieftine pentru crearea de proiecte digitale de către ingineri. Platforma de
cablare a constat dintr -o placă cu circuite imprimate (PCB) cu un microcontroler ATmega168, un
IDE bazat pe funcții de procesare și bib liotecă pentru a programa c u ușurință microcontrolerul. În
2003, Massimo Banzi, cu David Mellis, un alt student IDII și David Cuartielles, a adăugat sprijin
pentru microcontrolerul mai ieftin ATmega8 la Wiring. Dar, în loc să continue lucrul la cablare, au
forțat proiect ul și l -au redenumit Arduino .

31
Echipa inițială Arduino a constat din Massimo Banzi, David Cuartielles, Tom Igoe,
Gianluca Martino și David Mellis , dar Barragán nu a fost invitat să participe.
După finalizarea platformei de cablare, versiuni mai ușoare și mai puțin costisitoare au fost
distribuite în comunitatea open -source.
Adafruit Industries, furnizor de placi, piese și ansambluri de la Arduino din New York, a
estimat la mijlocul anului 2011 că peste 300.000 de Arduinos oficial i au fost produși comerciali , iar
în 2013, 700 000 de consiliile oficiale erau în mâinile utilizat orilor.
În octombrie 2016, Federico Musto, fostul CEO al lui Arduino, a obținut o proprietate de
50% a companiei. În apri lie 2017, Wired a raportat că Musto "și -a fabric at înregistrarea academică.
Pe site -ul companiei sale, conturile personale ale LinkedIn și chiar pe documentele de
afaceri italiene, Musto a fost listat recent ca fiind titular al unui doctorat de la Institu tul de
Tehnologie din Massachusetts. În unele cazuri, biografia lui a solicitat și un MBA de la
Universitatea din New York. " Wired a raportat că nici Universitatea nu a înregistrat nici o prezență
la Musto, iar Musto a recunoscut mai târziu într -un interv iu cu Wired că nu a obținut niciodată
aceste diplome.
În același timp, Massimo Banzi a anunțat că Fundația Arduino va fi "un nou înc eput pentru
Arduino". Dar un an mai târziu, Fundația încă nu a fost stabilită, iar star ea proiectului rămâne
neclară.
Contro versa din jurul lui Musto a continuat atunci când, în iulie 2017, el a tras multe
licențe, scheme și coduri Open Source de pe site -ul web Arduino, provocând scrutări și strigări.
În octombrie 2017, Arduino și -a anunțat parteneriatul cu ARM Holdings (ARM). Anuntul a
spus, in parte, ca "ARM a recunoscut independenta ca o valoare de baza a Arduino … fara nici un
blocaj cu arhitectura ARM". Arduino intentioneaza sa continue sa lucreze cu toti furnizorii d e
tehnologie si arhitecturi .
La începutul anului 2008, cei cinci cofondatori ai proiectului Arduino au cr eat o companie,
Arduino LLC , care deține mărcile asociate cu Arduino. Fabricarea și vânzarea panourilor urmau să
fie efectuate de companii externe, iar Arduino LLC urma să obțină o redevență din partea aces tora.
Statutul fondator al companiei Arduino LLC a precizat că fiecare dintre cei cinci fondatori transferă
dreptul de proprietate asupra mărcii Arduino societății nou formate.
La sfârșitul anului 2008, compania lui Gianluca Martino, Smart Projects, a înre gistrat marca
Arduino în Italia și a păstrat acest secret de la ceilalți cofondatori timp de doi ani. Acest lucru a fost
dezvăluit atunci când compania Arduino a încercat să înregistreze marca în alte zone ale lumii

32
(înregistrate inițial numai în SUA) și a descoperit că a fost deja înregistrată în Italia. Negocierile cu
firma Gianluca și firma sa de a aduce marcă sub controlul companiei originale Arduino au eșuat. În
2014, Proiecte inteligente au început să refuze plata redevențelor. Apoi au numit un nou CE O,
Federico Musto, care a redenumit compania Arduino SRL și a creat site -ul arduino.org, copiind
grafica și aspectul originalului arduino.cc. Acest lucru a dus la o ruptură în echipa de de zvoltare
Arduino.

3.1.3.2 Hardware

Arduino este un hardware open source. Proiectele de referință hardware sunt distribuite sub
licență Creative Commons Attribution Share -Alike 2.5 și sunt disponibile pe site -ul web Arduino.
Sunt disponibile și fișiere de configurare și de producție pentru unele versiuni ale hardware -ului.
Deși design -urile hardware și software sunt disponibile gratuit sub licențele copyleft,
dezvoltatorii au cerut ca numele Arduino să fie exclusiv pentru produsul oficial și să nu fie folosit
pentru opere derivate fără permisiune. Documentul oficial privi nd utilizarea denumirii Arduino
subliniază faptul că proiectul este deschis spre încorporarea muncii altora în produsul oficial . Mai
multe produse compatibile cu Arduino, comercializate, au evitat numele proiectului prin folosirea
numelor diferite care se termină în -duino.
O plăcuță Arduino este compusă dintr -un microcontroler Atmel AVR de 8-, 16- sau 32 -biți
(deși începând cu 2015 s -au folosit microcontrolere de la alți producători) cu componente
complementare care facilitează programarea și încorporarea în alte circuite.
Un aspect important la Arduino este că acesta dispune de conectori standard, care permit
utilizatorului să conecteze plăcuța cu procesorul la diferite module interschimbabile numite shield –
uri. Unele shield -uri comunică cu Arduino direct prin pinii digitali sau analogici, dar altele sunt
adresabile individual prin magistrala serială I²Cpermițând utilizarea mai multor module în paralel.
Până în anul 2015 plăcuțele Arduino ofic iale au folosit cipuri Atmel din seria megaAVR, în special
ATmega8, ATmega168, ATmega328, ATmega1280 și ATmega2560, iar în 2015 au fost adăugate
cipuri de la alți producători.
La nivel conceptual, când se folosește mediul de dezvoltare integrat Arduino, pr ogramarea
tuturor plăcuțelor se face prin conexiune serială. Implementarea acesteia diferă în funcție de
versiunea hardware. Unele plăcuțe Arduino au implementate convertoare de nivel logic pentru a
realiza conversia între nivelele logice RS -232 și cele TT L. Plăcuțele Arduino din prezent sunt
programate prin USB, având integrate cipuri de conversie USB -serial, cum ar fi FTDI FT232.

33
Unele modele UNO, mai noi, folosesc un cip AVR separat programat să funcționeze ca un
convertor USB -serial, care poate fi repro gramat printr -un port ICSP dedicat. Alte variante, cum ar
fi Arduino Mini și versiunea neoficială Boarduino, folosesc adaptoare detașabile USB -serial,
cabluri, Bluetooth sau alte metode.
O multitudine de alte procesoare au fost folosite de dispozitive com patibile Arduino. Multe
plăcuțe includ un regulator liniar de 5 V și un oscilator cu cuarț de 16 MHz (sau un rezonator
ceramic în unele variante), deși anumite plăcuțe, cum ar fi LilyPad, funcționează la 8 MHz și nu
necesită regulator, datorită restricțiil or de formă. Un microcontroler instalat pe Arduino vine
preprogramat cu un bootloader care simplifică încărcarea programelor pe memoria flash a cipului,
în comparație cu alte dispozitive care necesită programatoare externe.
Acest aspect face Arduino o soluție simplă, permițând programarea de pe orice computer
ordinar. În prezent, bootloader -ul optiboot este bootloader -ul implicit instalat pe Arduino UNO.[7]

Arduino -compa tibil R3 UNO bord realizat în China fără logo -ul Arduino, dar cu marcaje
identice, inclusiv textul "Made in Italy"

Cele mai multe plăci Arduino constau dintr -un microcontroler A VR de 8 biți ATMe
(ATmega8, ATmega168, ATmega328, ATmega1280, ATmega2560) cu cantități diferite de
memorie flash, pini și caracteristici. Arduino Due pe 32 de biți, bazat pe modelul Atmel
SAM3X8 E, a fost introdus în 2012. Plăcile folosesc știfturi de unică sau dublă linie sau anteturi
feminine care facilitează conexiunile pentru pr ogramare și încorporare în alte circuite. Acestea se
pot conecta cu module de adăugare numite scuturi. Scuturile multiple și eventual stivuite pot fi
adresate individual printr -o magistrală de serie I2C.

34
Cele mai multe plăci includ un regulator liniar de 5 V și un oscilator de cristal de 16 MHz
sau un rezonator ceramic. Unele modele, cum ar fi LilyPad, funcționează la 8 MHz și se scot de la
regulatorul de tensiune la bord, datorită restricțiilor specifice form factor.
Microcontrolerele Arduino sunt pre -programate cu un încărcător de încărcare care
simplifică încărcarea programelor pe memoria flash pe cip. Implicit bootloader de Arduino UNO
este bootload er optiboot. Plăcile sunt încărcate cu cod de program printr -o conexiune serială la alt
computer. Unele pl ăci de serie Arduino conțin un circuit de schimbare a nivelului pentru a converti
între nivele logice RS -232 și semnale de nivel logic tranzistor -tranzistor (TTL). Plăcile actuale
Arduino sunt programate prin Universal Serial Bus (USB), implementate cu aju torul chips -urilor
USB -to-serial, cum ar fi FTDI FT232. Unele plăci, cum ar fi placile ulterioare model Uno,
înlocuiesc chipul FTDI cu un cip separat AVR care conține firmware USB -to-serial, care este
reprogramabil prin intermediul propriului antet ICSP. A lte variante, cum ar fi Arduino Mini și
Boarduino neoficiale, utilizează o placă sau un cablu detașabil USB -to-serial, Bluetooth sau alte
metode. Atunci când se utilizează cu unelte tradiționale de microcontroler, în locul programului
IDE Arduino, se folos ește programarea standard în sistem de programare în sistem (ISP).

Fig. 3.5 O placă timpurie Arduino cu o interfață serială RS -232 (stânga sus) și un
microcontroler Atmel ATmega8 (negru, dreapta jos); cele 14 pinuri I / O digitale se află în partea
superioară, cele 6 pini de intrare analogice din dreapta jos și conectorul de alimentare din stânga
jos.

Placa Arduino expune majoritatea pinilor I / O ai microcontrolerului pentru a fi folosiți de
alte circuite. Diecimila, Duemilanove, și curentul Uno furnizează 14 pinuri I / O digitale, dintre
care șase pot produce semnale modulate cu puls și șase intrări analogice, / Pinii O. Acești ace se
află pe partea superioară a plăcii, prin anteturile de sex feminin de 0,1 inch (2,54 mm). Mai multe

35
scuturi de a plicație plug -in sunt de asemenea disponibile în comerț. Arduino Nano și plăcile Bare
Bones Board și Boarduino compatibile cu Arduino pot furniza știfturi de antet masculine pe partea
inferioară a plăcii, care se pot conecta la panourile de lipit fără sud ură.
Multe arduino -compatibile și arduino -derivate panouri derivate. Unele sunt echivalente
funcțional cu un Arduino și pot fi folosite interschimbabil. Mulți sporesc arduinul de bază
adăugând drivere de ieșire, adesea folosite în învățământul la nivel de școală, pentru a simplifica
fabricarea cărucioarelor și a roboților mici. Altele sunt echivalente electric, dar schimbă factorul de
formă, păstrând uneori compatibilitatea cu scuturile, uneori nu. Unele variante folosesc diferite
procesoare, de o varietate de compatibilitate .

3.1.3.3 Shield -uri

Arduino și plăcuțele Arduino -compatibile folosesc plăcuțe de expansiune cu circuite
imprimate numite shield -uri, care se conectează la pinii disponibili pe Arduino. Shield -urile au
capacități de a controla motoare, GPS, Ethernet, LCD sau de prototipare. Un număr de shield -uri
pot fi create în regim de amator(DIY) .

Fig. 3.6 Mai multe shield -uri pot fi suprapuse. În acest exemplu, shield -ul superior conține
un breadboard.

Fig. 3.7 Shield cu terminale cu șuruburi dispuse sub formă de aripi.

36

Fig. 3.8 Shield Adafruit Motor cu terminale cu șurub pentru conectarea motoarelor.

3.1.3.4 Software

Un program pentru hardware -ul Arduino poate fi scris în orice limbaj de programare cu
compilatoare care produc cod mașină binară pentru procesorul țintă. Atmel oferă un mediu de
dezvoltare pentru microcontrolerele bazate pe AVR pe 8 biți și pe 32 de biți ARM Cortex -M: AVR
Studio (mai vechi) și Atmel Stu dio (mai recent).

Captură de ecran a IDE -ului Arduino care prezintă programul Blink

Mediul de dezvoltare integrat Arduino (IDE) este o aplicație cross -platformă (pentru
Windows, MacOS, Linux) care este scrisă în limba de programare Java. Acesta a provenit din IDE

37
pentru prelucrarea și cablarea limbilor. Aces ta include un editor de coduri cu funcții precum tăierea
și lipirea textului, căutarea și înlocuirea textului, indentarea automată, potrivirea bretelelor și
evidențierea sintaxei și oferă mecanisme simple cu un singur clic pentru a compila și a încărca
programe într -o placă Arduino. De asemenea, conține o zonă de mesaje, o consolă de text, o bară
de instrumente cu butoane pentru funcții comune și o ierarhie a meniurilor de operare. Codul sursă
pentru IDE este lansat sub GNU General Public License, versiunea 2.

ID-ul Arduino suportă limbajele C și C ++ folosind reguli speciale de structurare a
codurilor. IDE -ul Arduino furnizează o bibliotecă software din proiectul Cablare, care oferă multe
proceduri comune de intrare și ieșire.
Codul scris de utilizator ne cesită doar două funcții de bază pentru pornirea schiței și buclă
principală de program, care sunt compilate și legate de un program executiv ciclic executiv cu un
șir de instrumente GNU, inclus și în distribuția IDE. ID -ul Arduino utilizează programul avr dude
pentru a converti codul executabil într -un fișier text în codificare hexazecimală care este încărcat în
placa Arduino printr -un program de încărcător din firmware -ul plăcii.
Un exemplu de program numit „blink”
Cele mai multe plăci Arduino conțin o diodă cu emisie de lumină (LED) și un rezistor de
sarcină conectat între pinul 13 și masă, care este o caracteristică convenabilă pentru multe teste și
funcții de program. Un program tipic pentru un începător programator Arduino clipește un LED în
mod repe tat. Acest program utilizează funcțiile pinMode (), digitalWrite () și delay (), care sunt
furnizate de bibliotecile interne inclu se în mediul IDE. Acest program este încărcat, de obicei, într –
o nouă placă Arduino de către producător.

38

Fig. 3.9 LED -ul de putere (roșu) și LED -ul utilizator (verde) sunt atașate la pinul 13 pe o
placă compatibilă Arduino

#define LED_PIN 13 // numarul pinului atasat de LED

void setup() {
pinMode(LED_PIN, OUTPUT); // Modul pinului 13 setat pe iesire digitala
}

void loop() {
digitalWrite(LED_PIN, HIGH); // porneste led ul
delay(1000); // delay de 1 secunda(asteptare)
digitalWrite(LED_PIN, LOW); // opreste led ul
delay(1000); // delay de 1 secunda
}

3.1.3.4 De ce am ales Arduino?

Datorită experienței sale simple și accesibile de utilizare, Arduino a fost utilizat în mii de
proiecte și aplicații diferite. Software -ul Arduino este ușor de utilizat pentru începători, dar
suficient de flexibil pentru utilizatorii avansați. Acesta rulează pe Mac, Windows și Linux.
Profesorii și elevii îl folosesc pentru a construi instrumente științifice ieftine, pentru a dovedi
principiile chimiei și fizicii sau a începe cu programarea și robotica.
Designerii și arhitecții construiesc prototipuri interactive, muzicieni și artiști care îl
folosesc pentru instalații și pentru a experimenta noi instrumente muzicale. Producătorii, desigur, o

39
folosesc pentru a construi multe dintre proiectele expuse la Ma ker Faire, de exemplu. Arduino este
un instrument cheie pentru a învăța lucruri noi. Oricine – copii, pasionați, artiști, programatori –
poate începe să tinkering pur și simplu urmând instrucțiunile pas cu pas ale unui set sau schimbând
idei online cu alți membri ai comunității Arduino.
Există multe alte microcontrolere și platforme de microcontroler disponibile pentru calculul
fizic. Parallax Basic Stamp, Netmedia's BX -24, Phidgets, MIT's Handyboard și multe altele oferă
funcționalități similare. Toate ace ste unelte iau detaliile dezordonate ale programării
microcontrolerului și o înfășoară într -un pachet ușor de utilizat. Arduino simplifică, de asemenea,
procesul de lucru cu microcontrolerele, dar oferă un anumit avantaj pentru profesori, studenți și
amato ri interesați față de alte sisteme:

Ieftin – plăcile Arduino sunt relativ ieftine în comparație cu alte platforme de
microcontroler. Versiunea cea mai puțin costisitoare a modulului Arduino poate fi asamblată
manual, iar modulele Arduino pre -asamblate c ostă mai puțin de 50 $

Cross -platform – Software -ul Arduino (IDE) rulează pe sistemele de operare Windows,
Macintosh OSX și Linux. Cele mai multe sisteme de microcontroler sunt limitate la Windows.

Mediu de programare simplu și clar – Software -ul Arduino (IDE) este ușor de utilizat
pentru începători, dar suficient de flexibil pentru ca utilizatorii avansați să profite de asemenea.
Pentru profesori, se bazează convenabil pe mediul de programare Procesare, astfel încât elevii care
învață să programeze în ac el mediu vor cunoaște modul în care funcționează ID -ul Arduino.

Software open source și extensibil – Software -ul Arduino este publicat ca un instrument
open source, disponibil pentru extensie de către programatori experimentați. Limba poate fi extinsă
prin biblioteci C ++, iar oamenii care vor să înțeleagă detaliile tehnice pot face saltul de la Arduino
la limbajul de programare AVR C pe care se bazează. În mod similar, puteți adăuga codul AVR -C
direct în programele dvs. Arduino dacă doriți.

Sursă open so urce și hardware extensibil – Planurile plăcilor Arduino sunt publicate sub

40
licență Creative Commons, astfel încât designerii de circuit experimentați pot să facă propria lor
versiune a modulului, să o extindă și să o îmbunătățească. Chiar și utilizatorii relativ lipsiți de
experiență pot construi versiunea cu panou de bord a modulului pentru a înțelege cum funcționează
și pentru a economisi bani.

Software -ul Arduino (IDE) vă permite să scrieți programe și să le încărcați la bord. În
pagina Software Arduin o veți găsi două opțiuni:
1. Dacă aveți o conexiune de Internet de încredere, ar trebui să utilizați IDE online
(Arduino Web Editor). Acesta vă va permite să vă salvați schițele în cloud, să le
aveți disponibile de pe orice dispozitiv și să le salvați. Veți avea întotdeauna cea
mai actualizată versiune a IDE fără a fi nevoie să instalați actualizări sau
biblioteci generate de comunitate.

2. Dacă preferați să lucrați offline, ar trebui să utilizați cea mai recentă versiune a
IDE pentru desktop.

După terminarea descărcării, continuați cu instalarea și permiteți instalarea driverului când
primiți un avertisment din partea sistemului de operare.

41

Alegeți componentele pe care doriți să le instalați

Alegeți directorul de instalare (vă recomandăm să păstrați directorul implicit)

42

Procesul va extrage și instala toate fișierele necesare pentru a executa corect software -ul
Arduino (IDE)

Conexiunea USB cu PC -ul este necesară pentru programarea plăcii și nu doar pentru
alimentarea acesteia. Unitatea Uno atrag automat puterea fie de la USB, fie de la o sursă de
alimentare externă. Conectați placa la computer utilizând cablul USB. LED -ul de alimentare verde
(denumit PWR) ar trebui să se aprindă.

Deschideți schița exemplului de clipir e LED: Fișier> Exemple> 01.Basice> Blink.

Va trebui să selectați înregistrarea din meniul Instrumente> Placă care corespunde plăcii
dvs. Arduino sau Genuino.

43

Selectați dispozitivul serial al plăcii din Instrumente | Serial Port meniu. Acest lucru este
probabil să fie COM3 sau mai mare (COM1 și COM2 sunt de obicei rezervate pentru porturile
seriale hardware). Pentru a afla, puteți să vă deconectați bordul și să redeschideți meniul; intrarea
care dispare ar trebui să fie tabloul Arduino sau Genuino. Reconectați placa și selectați portul
serial.

Acum, faceți clic pe butonul "Încărcați" din mediul înconjurător. Așteptați câteva secunde –
ar trebui să vedeți LED -urile RX și TX de pe panou care clipesc. Dacă încărcarea este reușită,
mesajul "Încărcat terminat". va apărea în bara de stare.

44
3.2 Codul sursa

Se initializeaza librariile pentru clasele necesare .

#include <Keypad.h> – librarie
#include <LCD.h> – librarie
#include <LiquidCrystal_I2C.h> – librarie

LiquidCrystal_I2C lcd(0x3F,2,1,0,4,5,6,7); – initializare LCD

long first = 0;
long second = 0;
double total = 0;

char customKey;
const byte ROWS = 4;
const byte COLS = 4;

// Initializare tastatura
char keys[ROWS][COLS] = {
{'1','2','3','+'},
{'4','5','6',' -'},
{'7','8','9','*'},
{'C','0','=','/'}
};
byte rowPins[ROWS] = {0,1,2,3}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {4,5,6,7}; //connect to the column pinouts of the keypad

//initialize an instance of class NewKeypad
Keypad customK eypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS);

void setup()
{
lcd.setBacklightPin(3,POSITIVE);
lcd.begin(16,2); // initialize the lcd
lcd.clear();
}

void loop()
{
customKey = customKeypad.getKey();
switch(customKey)
{
case '0' … '9': // This keeps collecting the first value until a operator is pressed "+ -*/"
lcd.setCursor(0,0);
first = first * 10 + (customKey – '0');
lcd.print(first);
break;

45

case '+':
first = (total != 0 ? total : first);
lcd.setCursor(0,1);
lcd.print("+");
second = SecondNumber(); // get the collected the second number
total = first + second;
lcd.setCursor(0,3);
lcd.print(total);
first = 0, second = 0; // reset values back to zero for next use
break;

case ' -':
first = (total != 0 ? total : first);
lcd.setCursor(0,1);
lcd.print(" -");
second = SecondNumber();
total = first – second;
lcd.setCursor(0,3);
lcd.print(total);
first = 0, second = 0;
break;

case '*':
first = (total != 0 ? total : first);
lcd.setCursor(0,1);
lcd.print("*");
second = SecondNumber();
total = first * second;
lcd.setCursor(0,3);
lcd.print(total);
first = 0, second = 0;
break;

case '/':
first = (total != 0 ? total : first);
lcd.setCursor(0,1);
lcd.print("/");
second = SecondNumber();
lcd.setCursor(0,3);

second == 0 ? lcd.print("Invalid") : total = (float)first / (float)second;

lcd.print(total);
first = 0, second = 0;
break;

case 'C':

46
total = 0;
lcd.clear();
break;
}
}

long SecondNumber()
{
while( 1 )
{
customKey = customKeypad.getKey();
if(customKey >= '0' && customKey <= '9')
{
second = second * 10 + (customKey – '0');
lcd.setCursor(0,2);
lcd.print(second);
}

if(customKey == '=') break; //return second;
}
return second;
}

47

CONCLUZII

Tehnologia foloseste imaginația, judecata și disciplina intelectuală cunoștințelor umane
existente pentru a crea sau folosi teh nologia în mod util și eficient astfel incat evolutia sa fie una cat
mai rapida.
O definiție complexă a tehnologiei care evidențiază cunoștințele și mijloacele necesare pentru
aplicarea tehnologiei : un ansamblu sistematizat de cunoștințe despre activitățile umane, care fac uz
de rezultate ale cercetării științifice, de experimentări, calcule și proiecte, precum și de unelte, mașini
și aparate; în sens restrâns, tehnologia este ansamblul procedeelor (metode, rețete, reguli) și
mijloacelor materiale (unelte, mașini, aparate) utilizate în vederea desfășurării unei
activități.Cunoștințele tehnologice sunt construite utilizând metode științifice.
Concluzion ăm că am primit tehnologia în viețile noastre indiferent de vârstă și că momentan
încă învățăm să o folosim cât mai avantajos pentru noi – atât copiii, cât și adulții. Iar cheia este
echilibrul, pentru că suntem înconjurați de oportunități, iar în zilele n oastre vrem câte puțin din toate.
Importanța tehnologiei pentru dezvoltarea economică este larg recunoscută, având în vedere
impactul pe care îl poate avea tehnologia asupra succesului, supraviețuirii sau insuccesului activității
economice a companiilor, î n special într -un mediu de concurență intensivă și globală.
Deci, ne putem da seama ca prin tehnologie sau cu ajutorul tehnologiei ne putem depașii într –
un fel condiția umana, astfel încat putem ajunge sa putem pe hârtie marile idei ale omenirii folosind
ceea ce avem, tehnologia.

48
BIBLIOGRAFIE

1. https://ro.wikipedia.org/wiki/Arduino – accesat în data de 21.03.201 8
2. https://ro.wikipedia.org/wiki/C_(limbaj_de_programare) – accesat în data de 21.03.201 8
3. https://profs.info.uaic.ro/~arduino/index.php/Laboratorul_1 – accesat in data de 03.04.2018
4. https://www.scribd.com/presentation/252424174/Mediul -de-Dezvoltare -Arduino -Scribd – accesat in
data de 17.03.201 8
5. http://anycomponents.fnhost.org/prezentare -platforma -arduino/ – accesat in data de 11.03.201 8
6. http://www.roroid.ro/prima -lectie/ – accesat in data de 11.02.2018
7. http://www.timsoft.ro/aux/module/modul 0.html – accesat in data de 01.04.2018
8. http://staff.cs.upt.ro/~marius/curs/pc/curs1.pdf – accesat in data de 05 .04.2018

49
Opis

Numărul de pagini: 50 de pagini în format A4;
Num ărul total de figure: 5 figuri;

Enumerare figure utilizate:

Capitolul 1:

– Fig. 1.1 C alculator personal
– Fig. 1.2 CPU
– Fig. 1.3 Un circuit integrat văzut la microscop

Capitolul 2 :
– Fig. 2.1 Circuitul integrat 7400 – Poarta NAND
– Fig. 2.2 Un simbol contor sincron pe 4 biți în sus / în jos (74LS192) în conformitate cu
ANSI / IEEE Std. 91 -1984 și publicația IEC 60617 -12.
– Fig. 2.3 Cipul 7400, care conține patru NAND -uri. Cele două borne suplimentare de
alimentare (+ 5 V) și conectați solul.
– Fig. 2.4 Circuitul generator de paritate de 9 biți 74×280. a) schema logică; b) schema
bloc.
– Fig. 2.5 Tabelul de adevăr pentru adunarea șl scăderea numerelor binare
– Fig. 2.6 Interpretarea unui scăzător ca un sumator.
– Fig. 2.7 Schema bloc și tabelul de funcționare pentru ALU 74×181

Capitolul 2 :
– Fig. 3.1 Display LCD + Arduino UNO
– Fig. 3.2 Arduino UNO
– Fig. 3.3 Tastatură 4×3 fără a folosi o bibliotecă , utilizând cea mai mică ieșire de intrare
pe placa arduino.
– Fig. 3.4 Arduino Uno SMD R3
– Fig. 3.5 O placă timpurie Arduino cu o interfață serială RS -232 (stânga sus) și un
microcontroler Atmel ATmega8 (negru, dreapta jos); cele 14 pinuri I / O digitale se află
în partea superioară, cele 6 pini de intrare analogice din dreapta jos și conectorul de
aliment are din stânga
– Fig. 3.6 Mai multe shield -uri pot fi suprapuse. În acest exemplu, shield -ul superior
conține un breadboard.
– Fig. 3.7 Shield cu terminale cu șuruburi dispuse sub formă de aripi.
– Fig. 3.8 Shield Adafruit Motor cu terminale cu șurub pentru cone ctarea motoarelor.
– Fig. 3.9 LED -ul de putere (roșu) și LED -ul utilizator (verde) sunt atașate la pinul 13 pe
o placă compatibilă Arduino

Similar Posts