SPECIALIZAREA: ELECTRONICĂ APLICATĂ PROIECT DE DIPLOMĂ Coordonator: Prof. Dr. Ing. Laurean Bogdan Absolvent: Chiș Răzvan -Sorin Specializarea:… [609692]

UNIVERSITATEA „LUCIAN BLAGA”, SIBIU
FACULTATEA DE INGINERIE
SPECIALIZAREA: ELECTRONICĂ APLICATĂ

PROIECT DE DIPLOMĂ

Coordonator: Prof. Dr. Ing. Laurean Bogdan

Absolvent: [anonimizat]: Electronică Aplicată

-Sibiu, 2017 –

2

UNIVERSITATEA „LUCIAN BLAGA”, SIBIU
FACULTATEA DE INGINERIE
SPECIALIZAREA: ELECTRONICĂ APLICATĂ

TESTER SIMULATOR SWITCH -URI AUTO

Coordonator: Prof. Dr. Ing. Laurean Bogdan

Absolvent: [anonimizat], 2017 –

3

4

REZUMAT
“Tester simulator switch -uri auto” este un dispo zitiv implementat pentru Compania
Continental menit să simuleze switch -urile dintr -un automobil cu o interfață touchscreen în
scopul realizării testelor software pe ECU -urile responsabile cu controlul dotărilor din ușă.
Aceste switch -uri sunt foarte scumpe iar înlocuirea lor necesită timp. Testarea ECU -ului este
exclusiv software, deci este permisă înlocuirea acestora. În urma realizării testelor am decis
să realizez acest dispozitiv ce oferă avantaje cum ar fi: preț scăzut, ușor de adăugat/eliminat
switch -uri.
Am decis să împart proiectul în două și să comunice cele două parți între ele serial
prin protocolul I2C, pentru ca switch -urile să poată fi comandate și de la o distanță de câțiva
metri.
Principalele obiective privind implentarea acestui dispozitiv sunt studierea
protocolului I2C, înțelegerea funcționării unui touchscreen și a celorlalte componente
utilizate, proiectarea unei scheme și realizarea cablajului, aplicarea prototipului în cadrul
companiei în vederea testării ECU -ului.

SUMMARY
"Car Switc h Simulator Tester" is a device implemented for the Continental Company
designed to simulate the switches in a car with a touchscreen interface to conduct software
tests on the ECUs in charge of door control. These switches are very expensive and their
replacement takes time. Testing the ECU is software only, so it is possible to replace it. After
testing, I've decided to build this device that offers advantages such as low price, easy to add /
remove switches.
I decided to apart the project in two and make them communicate through with the
I2C protocol, so the switches can be ordered from a distance of several meters.
The main objectives for implementing this device are studying the I2C protocol,
understanding the operation of a touchscreen and other compon ents used, designing a scheme
and making the wiring, applying the prototype to the company for testing the ECU.

5
CUPRINS
CAPITOLUL 1 ………………………….. ………………………….. ………………………….. …………………….. 7
INTRODUCERE ………………………….. ………………………….. ………………………….. ………………….. 7
Evoluția switch -urilor ………………………….. ………………………….. ………………………….. ………… 7
Obiectivele lucrării ………………………….. ………………………….. ………………………….. …………… 10
CAPITOLUL 2 ………………………….. ………………………….. ………………………….. …………………… 10
COMANDA PRIN SWITCH -URI ÎN DOMENIUL AUTO ………………………….. ………………. 10
2.1. Switch -urile în domeniul auto ………………………….. ………………………….. ………………….. 10
2.2.Microcontrolere ………………………….. ………………………….. ………………………….. ………….. 14
2.2.1.Structura hard a microcontrolerelor ………………………….. ………………………….. …….. 15
2.2.2.Programarea microcontrolerelor ………………………….. ………………………….. …………. 20
2.3.Magistrala I2 C ………………………….. ………………………….. ………………………….. …………… 21
2.3.1.Magistrala. Generalități. Clasificare. Probleme de proiectare ………………………….. 21
2.3.2.Magistrala I2C. Scurt istoric ………………………….. ………………………….. ………………. 23
2.3.3. Caracteristici generale ………………………….. ………………………….. ……………………….. 23
2.3.4.Transferul datelor ………………………….. ………………………….. ………………………….. …. 24
2.3.5. Sincronizarea ………………………….. ………………………….. ………………………….. ………. 24
2.3.6.Arbitrarea ………………………….. ………………………….. ………………………….. ……………. 25
2.3.7.Protocolul I2C ………………………….. ………………………….. ………………………….. ……… 26
2.4.Touchscreen -ul ………………………….. ………………………….. ………………………….. …………… 26
2.5.Concluzii ………………………….. ………………………….. ………………………….. …………………… 28
CAPITOLUL 3 ………………………….. ………………………….. ………………………….. …………………… 28
PROIE CTAREA UNUI TESTER SIMULATOR SWITCH -URI AUTO ………………………… 28
3.1.Structura hardware ………………………….. ………………………….. ………………………….. ……… 28
3.2. Schema electrică desfașurată ………………………….. ………………………….. …………………… 43
3.2.1. Verificarea driverului ULN2803 ………………………….. ………………………….. ………… 44
3.2.2.Verificarea releelor HAMLIN HE3621A0500 ………………………….. ………………….. 47

6
3.3. Proiectarea layout ………………………….. ………………………….. ………………………….. ………. 48
CAPITOLUL 4 ………………………….. ………………………….. ………………………….. …………………… 52
APLICAȚII ȘI EXPERIMENTE ………………………….. ………………………….. ……………………….. 52
CAPITOLUL 5 ………………………….. ………………………….. ………………………….. …………………… 57
CONCLUZII ȘI CONTRIBUȚII ………………………….. ………………………….. ……………………….. 57
ANEXE ………………………….. ………………………….. ………………………….. ………………………….. …. 58
ANEXA 1: Programare microcontroler ………………………….. ………………………….. …………… 58
ANEXA 2: Schema ele ctrică desfășurată ………………………….. ………………………….. ………… 66
TABEL DE FIGURI ………………………….. ………………………….. ………………………….. ……………. 68
BIBLIOGRAFIA ………………………….. ………………………….. ………………………….. ………………… 70

7

CAPITOLUL 1
INTRODUCERE1
Industria auto modernă a luat naștere în anul 1886, odată cu primul automobil numit
la acea vreme „Benz Patent -Motorwagen” inventat de germanul Karl Benz. Acest automobil
a fost produs timp de aproximativ 7 ani, timp în care au fost produse doar 25 de exem plare.
Adevărata revoluție în domeniul auto avea să se petreacă în anul 1908, odată cu apariția
renumitului automobil „Ford Model T”. În cei aproximativ 19 ani în care a fost produs, au
fost scoase nu mai puțin de 15 milioane de exemplare, fiind astfel acc esibil oricui.
Electronica2 însă, a fost introdusă mult mai târziu în majoritatea subsistemelor din
domeniul auto și a devenit standard de implementare în multe dintre aceste subsisteme.
De exemplu, sistemele de frânare antiblocare și airbag -urile pot fi realizate numai practic prin
utilizarea electronicii.

Evoluția swi tch-urilor3
Evoluția swi tch-urilor începe în a doua jumătate a sec. 18, mai exact în anul 1784 în
Anglia, unde James Watt avea să realizeze primul regulator de viteză centrifugal și să
producă conflicte în rândul forței de muncă. Mai târziu, în sec. 19, apar și regulatoarele de
tensiune pentru generatoarele electrice, în interiorul cărora sunt montate direct pe
întrerupatoare, relee primare de curent electromagnetice. Dat fiind faptul că produceau un
consum ridicat de putere în momentul acționării, la începutul sec. 20 aveau să apară primele
relee electromagnetice secundare de inducție, urmate apoi de cele diferențiale și direcționale.
Procesul de evoluție continuă între 1920 și 1930 o da tă cu apariția releelor de distanță și celor
de protecție prin înaltă frecvență.
O descoperire importantă are loc în anul 1955 atunci când apar pe piață releele
electronice, denumite și relee cu comutație statică, însă sunt folosite pe scară largă abia în
anul 1970.

1 https://ro.wikipedia.org/wiki/Ford_Model_T
https://en.wikipedia.org/wiki/Benz_Patent -Motorwagen
2 „William B. Ribbens, Understanding Automotive Electronics , 5th Edition, Butterworth,. Heinemann Woburn, 1998
3 M.L.Goia, Relee și protecții electrice, Editura ICEMENERG, București, 2006

8
Următoarea revoluție importantă se petrece odată cu apariția releelor inteligente
bazate pe microprocesoare, în anul 1976. Odată cu această descoperire se trece la o nouă
etapă bazată pe utilizarea calculatorului în scopul protecției, apar perfe cționări metodologice
continue, noi soluții de minimizare a dimensiunilor releelor și la controlul funcționării IP în
puncte centrale de comandă și supraveghere.
Automatizarea și perfecționarea sistemelor de protecție cu relee a dus la creșterea
gradului de continuitate în alimentarea consumatorilor și la creșterea siguranței în timpul
funcționării a sistemelor energetice.
Epoca digitală, deși își are origini încă din cele mai vechi timpuri prin sisteme de
semnalizare cu fum, ia amploare odată cu apariția semafoarelor cu sisteme mecanice în
Franța și cu apariția telegrafului în Anglia, desco perit de inventatorul Wheastone,
perfecționat mai târziu în SUA de Morse. Transmisiile radio și de televiziune apar după
descoperirea telefonului lui Bell în 1872 și a t elefonului fără fir în 1897 . La apariția
transmisiunilor radio și de televiziune a contribuit italianul Marconi și au devenit operaționale
în 1922. Doi ani mai târziu, avea să fie patentată descoperirea inventatorului rus V.
Zworijkin, emigrat în USA, mai exact tubul catodic pentru compania Westinghouse. Astfel a
fost permisă prima demonstrație de transmisie TV în Londra, în 1926, unde 10 ani mai târziu
avea să se realizeze și prima transmisie regulată. În 1938 se va realiza prima transmisie în
culori.

Rol important
Indiferent că vorbim despre relee, butoane sau chiar tranzistori, switch -urile au avut
un rol important nu doar în domeniul auto, ci și în automatizarea sau implementarea
dispozitivelor și calculatoarelor de astăzi. Ele sunt interfața dintre ut ilizator și sistemele
încorporate dintr -un dispozitiv. Pot îndeplinii mai multe roluri ca de exemplu, să
îndeplinească o simplă funcție precum ridicarea/coborârea geamului unei mașini, sau roluri
de protecție precum cel de Reverse Polarity în cazul în care un dispozitiv este alimentat
invers, adică bornele bateriei sunt inversate. Cel mai frecvent însă, sunt utilizate pentru a
îndeplini anumite funcții. În automot ive, au devenit tot mai des întâ lnite în tot ce înseamnă
dotări interioare ale unei mașini și a u rolul de a oferi un comfort sporit utilizatorilor.

9

Figura 1. Exemplu de aplicare a switch -urilor

Modernizări4,
În industria auto vmotive, switch -urile sunt tot mai utilizate pe zi ce trece. Deși, multe
subsisteme din domeniul auto au rămas standard sau altfel spus sunt asemănătoare de la un
model la altul de mașină, ca de exemplu sistemul de frânare ABS ( anti-lock braking system )
sau ESP (electronic stability programme) , switch -urile sunt tot mai utilizate în tot ceea ce
înseamnă dotări interioare ale unui automobil. Asta deoarece, toți producătorii de automobile
încearcă să aducă mereu ceva nou și inovator pentru a se asigura că cumpărătorul beneficiază
de un confort sporit.
Judecând evoluția ecranelor tactile și a fi rmelor care investesc în cercetare pe acest
domeniu și fa ptul că într -un automobil sunt sute de switch -uri și numărul lor crește odată cu
introducerea noilor dotări, foarte curând, butoanelor vor fi înlocuite de către touchscreen -uri.

4 „William B. Ribbens, Understanding Automotive Electronics , 5th Edition, Butterworth,. Heinemann Woburn, 1998

10
Obiectivele lucră rii
Prin pr ezenta lucrare mi -am propus urmă toarele obiective:
1. Realizarea unui studiu privind utlizarea switch -urilor auto
2. Implementarea unor aplicații p entru Compania „Continental ”

CAPITOLUL 2
COMANDA PRIN SWITCH -URI ÎN DOMENIUL AUTO
2.1. Switch -urile î n domeniul auto
Procese de comutație5
Echipamentele de comutație fac parte din categoria echipamentelor electrice, cu rolul
de a stabili respectiv întrerupe conducția în circuitele electrice .
După natura prin care aceste echipamente realizează comutația (p e cale mecanică sau
prin variația comandată a unui parametru electric) distingem două tipuri de comutații: statică
și dinamică.
Ca urmare a comutației circuitelor electrice apar fenomene tranzitorii ale tensiunilor și
curenților, care pot produce solicităr i de intensități mult mai ridicate asupra componentelor
din instalație, decât într -un regim permanent obișnuit de funcționare.
Deconectarea dinamică, împreună cu amorsarea arcului electric între contacte pot
duce la suprasolicitarea instalației. Acest fapt se datorează transferului de energie din arc spre
componentele aflate în imediata vecinătate, care poate provoca creșterea bruscă a
temperaturii acestora la valori ridicate.
Așadar este important ca stingerea definitivă a unui arc electric, produs în urma
întreruperii unui circuit, să aibă loc cât mai rapid, înaintea producerii unor efecte ireversibile
asupra stabilității instalației din care face parte circuitul respectiv.

5 Adrian Baraboi, Marcel Adam, Echipamente electrice , Editura “Gh. Asachi”, Ia și, Volumul I, 2002

11

Releul6
Un releu este practic un switch (întrerupător) acț ionat electric, care ajută la iz olarea
galvanică a două circuite. Astfel un circuit cu tensiuni și curenți mari să poată fi controlat de
un circuit de tensiune joasă fără să existe un contact electric între cele două. Acestea sunt
alcătuite dintr -un întrerupător acționat de un electromagnet . Aceștia au nevoie de curent
pentru a funcționa și ca orice sarcină inductivă, pot provoaca efecte nedorite atunci
întrerupe m alimentarea și se întorc în starea de repaus, eliberează curenți secundari capabili
să distrugă circuitul de t ensiune joasă.

Există relee care au în interior grupuri de contacte și deviatoare și nu doar un simplu
întrerupător . Configurația contactelor este indicată în același fel c a la butoane și
întrerupătoare. Căile de intrare sunt numite Pole (P), căile de ieșire Throw (T). Pentru o
singură cale de intrare/ieșire , se folosește litera S (Single), dacă este dublă se folosește litera
D (Dual /Double ).

Iată câteva simboluri obișnuite:
 SPST (Single Pole – Single Throw): o intrare, o ieșire;
 SPDT (Single Pole – Double Throw): o intrare și două de ieșire;
 DPST (Dual Pole – Single Throw): un releu cu două căi de intrare , fiecare dotată cu o
singură cale de ieșire;
 DPDT (Dual Pol e – Dual Throw): un releu cu două căi de intrare, fiecare dotată cu
două căi de ieșire;

6 Paolo Aliverti, Manual de electronică pentru ama tori, Editura M.A.S.T, București, 2016

12

Figura 2. Tipuri de relee

Clasificarea releelor7:

a) După principiul de funcționare , releele se clasifică în :
 Relee termice;
 Relee electromagnetice;
 Relee de inducție;
 Relee magnetoelectrice;
 Relee electrodinamice;
 Relee electronice;
b) După mărimea de acționare deosebim:
 Relee de curent;
 Relee de tensiune;
 Relee de putere;
 Relee de impedanță;
 Relee de frecvență;

7 Alexandru Vasilievici, Aparate și echipamente electrice , Universitatea Politehnică Timișoara, Volumul II, 1996

13
 Relee de timp;
 Relee de temperatură;
c) După acțiunea dată de valoare a mărimii de intrare, deosebim :
 Relee care acționează atunci când mărimea protejată crește peste o anumită
valoare , numite și relee maximale ;
 Relee care acționează atunci când mărimea protej ată scade sub o anumită
valoare, numite și relee minimale;
 Relee care acționează doar atunci când se schimbă sensul mărimii protejate,
numite și relee direcționale;
d) După modul de acționare și influența lor asupra aparatelor de comutație deosebim :
 Relee pentru care elementul de pr otecție acționează în mod direct asupra
aparatului de comutație , numite și relee directe ;
 Relee care nu acționeză în mod direct ci prin intermediul unor contacte din
circuitul electric aux iliar, numite și relee indirecte ;
e) După poziția lor în circuit se deosebesc:
 Relee primare ;
 Relee secundare ;

Switch -urile sunt monitorizate prin așa numitele sisteme încorporate numite ECU
(Electronic Control Unit). Acestea sunt creierul mașinii, și chiar dacă într -o mașină pot exista
100 de astfel de sis teme, toate comunică între ele prin diferite protocoale precum CAN ,
Flexray, LIN, etc.

Tipuri de ECU:
 Transmission Control Unit (TCU)
 Anti-lock Braking System (ABS)
 Body control modules (BCM)
 Gateways (GW)
 Door Control Modules (DCM)
 Seat Control Units (SCU)
 Electronic Stability Program (ESP)

14

2.2.Microcontro lere

Definiție8:
Un microcontroler este un cip cu densitate foarte mare de integrare, care include toate
componentele necesare pentru o funcție de controller. Mai exact, este un microcalculator
având un CPU (Unitate Centrală de Procesare), mai multe memorii precum RAM (Random
Acces Memory), ROM (Read Only Memory), E PROM sau FLASH și interfețe I/O care pot fi
programate pentru a efectua diferite funcții de contr ol.

Domenii de utilizare:
 Automotive;
 În industrie, pentru controlul liniilor de producție;
 Electrocasnice;
 Electronice;
 Medicină;
 Etc.

Unitatea Centrală de Procesare9 (CPU) poate fi considerată ca fiind “creierul”
microcontroler -ului având responsabilitatea de a efectua operații, codificate binar, de aducere
a instrucțiunilor din memorie, de decodificare și nu în ultimul rând de execuție a acestora.
Pentru efectuarea tuturor instrucțiunilor, unitatea centrală de procesare este responsabilă ș i de
generarea semnalelor precum cele de adresă, de date sau de comandă necesare comunicării cu
memoriile și interfețele gestionate de aceasta.

8 Beriliu Ilie, Microcontrolere , Note de curs
9 Lucian N. Vințan, Organizarea si proiectarea microarhitecturilor de calcul (pentru uzul studen ților), Universitatea “L.
Blaga” din Sibiu, 2010

15
2.2.1. Structura hard a microcontrol erelor

Figura 3. Schemă bloc microsistem

Memorie
Orice microcontroler trebuie să fie capabil să stocheze în anumite memorii, diferite
informații, spre exemplu instrucțiunile necesare ce controlează funcționarea acestuia. Aceste
instrucțiuni trebuie stocate în memorii nevolatile, deoarece acestea au proprietatea de a
înmagazina informația și după oprirea sursei de alimentare.
Pentru stocarea unor variabile sau rezultate intermediare , se utilizează deobicei
memoriile volatile , având avantajul scrierii/citirii rapide a informației.

Tipuri de memor ii:
a) Memoria RAM (Random Acces Memory) este o memo rie volatilă ce poate fi scrisă
sau citită rapid și simplu de către CPU (Unitatea Centrală de Procesare) , deoarece locațiile
aflate în această memorie, pot fi accesate în orice ordine. Ca dezavantaj însă, aceste memorii
ocupă mult loc pe chip și implicit, necesită costuri de implementare mult mai mari.
b) Memoria ROM (Read Only Memory) este cea mai simplă și ieftină memorie fiind

16
utilizată la stocarea programelor aflate în faza de fabricație. După cum îi zice și numele „read
only memory”, în cazul acestei memorii, unitatea centrală de procesare poate doar s ă citească
date din memorie , nu le poate modifica .
c) Memoria PROM (Programmable Read Only Memory) este similară memoriei
ROM , cu diferența că datele aflate în această memorie pot fi modificate de către utilizator. În
funcție de posibilitățile de ștergere, această me morie poate fi de mai multe feluri:
 Memoria EPROM (Erasable Programmable Read Only Memory ), se poate
șterge prin expunere la ultraviolete. Deobicei, un microc ontroler cu o astfel de memorie
conține un mic „geam” din cuarț prin care EPROM -ul să poată fi expus la ultraviolete. Poate
fi ștearsă și reînscrisă de un număr finit de ori, ștergerea fiind neselectivă, adică nu se pot
șterge doar fragmente din memorie, ci doar în întregime. Deoarece necesită o procedură mai
specială de programare, microcontrolerel e care conțin o astfel de memorie sunt mai rar
întalnite.
 Memoria EEPROM (Electrically Erasable Programmable Read Only
Memory) este o memorie ce poate fi ștearsă electric de către unitatea centrală de procesare.
Spre deosebire de memoria EPROM, ștergerea acestei memorii este selectivă. Deși este foarte
des întâlnită în componența unui microcontroler, fiind și ieftină, această memorie este foarte
lentă, având și un număr de ștergeri/scrieri limitat (până la 10 000).
 Memoria FLASH este asemănătoare celor dou ă amintite anterior deoarece
poate fi reprogramată fără a fi nevoie de vreun sistem dedicat. Cu alte cuvinte poate fi ștearsă
și reprogramată electric, dar doar în întregime, fiind o memorie neselectivă.

Magistrale

Magistrala de adrese , este o magistrală unidirecțională, prin intermediul căreia
unitatea centrală de procesare pune adresa memoriei și a dispozitivelor periferice I/O.
Unitatea centrală de procesare nu vede perfericele direct, ci se folosește de interfețele de I/O.
Magistral a de date , este o magistrală bidirecțională, prin intermediul căreia unitatea
centrală de procesare aduce datele (instrucțiunile) din memorie sau citește datele dintr -un port
de intare.

17

Figura 4. Direcția de transmisie a datelor pe cele două magistrale10

Periferice

Interfețe seriale și paralele
În cazul transmisiei seriale, informația transmisă sau recepționată este codificată
binar. Biții sunt trimiși unul după celălalt pe un singur fir. O metodă simplă însă viteza de
transmisie a datelor este destul de scăzută. Soluția ar fi transmisia paralelă, asta presupune ca
pentru fiecare bit transmis există un cablu unic.

Port serial
Deoarece microcontroler -ul se ocupă în mod normal de date pe 8 biți, la un moment
dat, acesta funcționează în paralel, efectuându -se conversii seriale/paralele, cu mențiunea că
pe unul se trasnmite informația iar pe celalalt se recepționează. Acest lucru este realizat cu
ajutorul regi strului de deplasare (shift register) controlat întotdeauna de un semnal de clock.

10 John Crisp , Introduction to Microprocessors and Microcontrollers -2nd edition , Newnes, 2004

18
Acest port fiind capabil să primească și să transmită date, în același timp, poartă numele de
sistem complet duplex. Rezultă astfel, că biții de date sunt puși unul după alt ul într -un flux
continuu. Pe pinul RXD se recepționează datele iar pe pinul TXD se transmit.

ADC -ul (Covertor Analog Digital) , după cum îi zice și denumirea, este o conversie
din analog în digital. Există mai multe tipuri de ADC -uri din punct de vedere c onstructiv, cel
mai simplu fiind un comparator. Acesta funcționează după un principiu foarte simplu și
anume, compară tensiunea de la intrare cu semnalul de referință. Dacă tensiunea de la intrare
este mai mare, la ieșirea din comparator vom avea „1” logic , în caz contrar vom avea „0”
logic.

Figura 5. Comparator
Un alt tip de ADC este cel care realizează o discretizare a tensiunii analogice de la
intrare ca de exemplu de la 0 la 1024. Acest număr diferă însă în funcție de numărul de biți
disponibili rezultatului conversiei și este egal cu . Rezoluția unui convertor analog digital
este dată d e cea mai mică treaptă diferită de zero:

Pentru o rezoluție cât mai bună este necesar să creștem numărul de biți necesari
conversiei, însă dezavantajul în acest caz constă în faptul că se reduce viteza de realizare a
conversiei.
Timer -ul nu este altceva decât un contor format din mai multe circuite bistabile care
își schimbă starea în funcție de numărul semnalelor de intrare. Dacă un semnal de intrare este
trecut printr -un circuit bistabil, frecvența la ieșirea din bistabil va fi egală cu 1/2 * frecvența
semnalului de intrare. Dacă aceste semnal este trecut mai departe printr -un alt circuit bistabil
frecvența va deveni 1/4 * frecvența semnalului original. În orice microcontroler există două

19
timere: timer0 și timer1. Acestea pot fi programate s ă se împartă cu 256, 8192 sau 65536
generând astfel un semnal de întrerupere ce poate fi detectat de software . De exemplu, un
timer pe 8 biți poate genera până la 256 de întreruperi. Semnalul de intrare poate fi generat
extern, în acest caz se contorizează numărul de impulsuri de intrare, sau poate uitiliza un
număr intern. În acest caz, semnalul este egal 1/12 din frecvența semnalului de clock.

Porturi I/O au rolul de a monitoriza/controla dispozitivele externe, cu ajutorul
microcontroler -ului. Aceștia su nt configurați ca i ntrări sau ieșiri prin intermeiul registrului de
setare a direcției datelor “TRIS”. Setarea unui pin dintr -un anumit port pe “1” logic înseamnă
că pinul respectiv a fost configurat ca pin de intrare, respectiv punerea în “0” logic, va
configura pinul ca ieșire. Cu alte cuvinte, rolul registrului “TRIS” este de a seta direcția de
transmisie a datelor dintre microcontroler și dispozit ivele externe. În general, pinii unui
microcontroler pot avea o multitudine de funcții, aceștia fiind config urați în funcție de
cerințele proiectului sau sistemului, din care face parte microcontroler -ul. Este cunoscut
faptul că după RESET, pinii unui microcontroler vor fi întotdeauna configurați ca pini de
intrări/ieșiri de uz general. Astfel, dacă dorim ca un anumit pin să fie configurat ca intrare
analogică, vom utiliza ADC -ul (Convertor Analog Digital), apelând la registrul “ADCON1”.

Figura 6. Porturi I/O11

11 John Crisp , Introduction to Microprocessors and Microcontrollers -2nd edition , Newnes, 2004

20

2.2.2. Programarea micro controlerelor
La ora actuală, microcontrolerele12 sunt utilizate într -o gamă largă de aplicații. Asta
datorită limbajelor de programare, unele foarte simple și ușor de implementat. Acest fapt a
incitat unele companii să se adapteze și chiar să actualizeze unele limbaje de programare
basic pentru a satisf ace mai bine nevoile microcontrolerului.
Un limbaj de programare este un set de comenzi și reguli după care urmează să se
scrie un program. Exemple de limbaje de programare: BASIC, C, C++, Pascal, etc.
Programul propriu -zis, constă dintr -o secvență de instrucțiuni sau comenzi scrise
într-un anumit limbaj de programare, microcontrolerul urmând să execute rând pe rând
instrucțiunile.
Compilatorul este un program rulat pe computer cu rolul de a „traduce” codul scris
BASIC într -un cod de execuție cu extensia .HEX. Cu alte cuvinte acest proces nu este altceva
decât o conversie a programului original într -un program pe care microcontrolerul este
capabil să îl înțeleagă. Procesul de compilare constă în conversia programu lui original scris în
BASIC, într -un cod asamblare (.asm), acesta din urmă fiind la rândul său convertit într -un
cod cu extensia .hex care poate fi încărcat în memoria microcontrolerului.
Programatorul este dispozitivul utilizat pentru transferul codului c u extensia .hex din
computer în memoria microcontrolerului.
Alegerea microcontrolerului potrivit unei anumite aplicații are un rol important și
trebuie luate în considerare anumite module sau periferice de care avem nevoie în aplicația
respectivă precum: P WM, ADC, DAC, etc. Alte aspecte ce trebuie luate în considerare sunt
numărul de pini de intrare/ieșire de care avem nevoie, memoria, etc.

12 Nebojsa Matic , BASIC for PIC microcontrollers , 2003

21
Aplicații ale switch -urilor

Figura 7. Exemplu de aplicație

Într-un automobil sunt o mulțime de sisteme încorporate, ce conțin switch -uri
acționate de microcontrolere. Indiferent că vorbim de închidere a centralizată, comanda unui
geam sau blocarea ușilor, switch -urile au rolul de a asigura atât un confort sporit câ t și un
nivel ridicat de siguranță.
Toate aceste sisteme încorporate îndeplinesc, prin intermediul switch -urilor, un
anumit set de funcții. Aceste funcții sunt „apelate” atât indirect prin intermediul unui senzor,
de exemplu un senzor de mișcare care să bl ocheze/deblocheze ușile automobilului, în funcție
de poziția șoferului față de acesta. Cât și direct, de către o persoană printr -o interfață, fie ea
un touchscreen sau un buton. Un caz concret; în timpul deplasării cu automobilul, dorim să
blocăm ușile din spate, pentru siguranța copilului.
2.3.Magistrala I2C13
2.3.1. Magistrala. Generalități. Clasificare . Probleme de proiectare
Magistrala
O magistrală reprezintă liniile de comunicație dintr -un sistem prin intermediul cărora
un dispozitiv sursă comunică cu un dispozitiv destinație. Avantajul acesteia fiind costul

13 Ionel -Daniel Morariu, Interfețe și protocoale de comunicație , Editura Universității “L. Blaga” din Sibiu, 2016

22
scăzut de implementare și versatilitatea (flexibilitatea de a adăuga oricând di spozitive noi pe
magistrală) , prin definirea unei scheme standard de interconectare pe bus (magistrală) .
Ca dezavantaj, pot apărea probleme de comunicație care să producă o limitare a
maximilui lărgimii de bandă de I/O. De asemenea, proiectarea unei magis trale nu este una
facilă, ea fiind influențată în mare măsură de lungimea acesteia și de numărul de dispozitive
conectate pe bus (rezultă o latență scăzută), acești factori influențând fizic viteza de
transmisie a datelor.

Clasificarea magistralelor
 un exemplu de bus este magistrala CPU -MEMORIE – de viteză foarte mare, fiind
extrem de scurte din punct de vedere fizic, sunt adaptate memoriei sistemului pentru
maximizarea lungimii de bandă;
 bus-ul dispotivelor de I/O – au un anumit standard de implemntare, diferite lungimi și
tipuri de dispozitive care pot fi conectate, rezultând diferite lungimi de b andă și capabilități
de latență;
 bus-ul de fundal – este practic un bus care reunește cele două amintite anterior,
scopul fiind acela ca Unitatea Centrală de Procesare, M emoria și Dispozitivele I/O să î mpartă
aceleași linii de comunicație. Ca avantaj, putem spune că nu e nevoie să proiectăm două
magistrale diferite reducând astfel costurile, însă este clar că se reduc cons iderabil
performanțele sistemului;
Transmisia datelor pe bus presupune trimiterea adresei dispozitivului destinație și
transmiterea sau recep ționarea datelor.

Tipuri de dispozitive care pot fi conectate la magistrală:
-dispozitive master ( active ) – sunt acele dispozitivele capabile să inițieze un transfer
pe magistrală;
-dispozitive slave ( pasive ) – sunt acele dispozitivele care pot doar să răspundă la
cererile dispozitivelor master, nu pot iniția un transfer pe magistrală;

Probleme la proiectarea magistralelor
Atunci când proiectăm o magistrală trebuie luate în considerare anumite probleme ce
pot apărea în cazul conectării a mai multor dispozitive pentru a nu afecta capacitatea de
funcționare a bus -ului la parametrii doriți.

23
Exemple d e probleme ce pot apărea:
a) anumite fenomene nedorite de natură electrică, care pot duce la scăderea fiabilității
sistemelor și la apariția reflexiilor de semnal. Cauze: încărcări capacitive necorespunzătoare,
intrări perturbatoare ale anumitor dispozitive c onectate, etc.
b) modalități de sincronizare , frecvența dorită de funcționare poate fi afectată de distanța
(lungimea) pe care sunt transmise datele. Această distanță poate influența și timpul de
transfer minim al datelor.
c) arbitrarea influențată de un dispozitiv conectat la magistrală, care a devenit instabil.

Toate aceste aspecte trebuie luate în considerare la proiectarea unei magistrale
deoarece pot influența semnificativ viteza și fiabiliatatea acesteia.

2.3.2. Magistrala I2C . Scurt istoric
Magistrala I2C ( Inter -Integrated Circuit) a fost i mplementată de firma Philips în anul
1982 și a devenit rapid foarte populară deoarece putea fi utilizată în foarte multe domenii și
aplicații. În prezent, există extrem de multe dispozitive și circuite care folosesc această
magistrală pentru a comunica între ele, inclusiv în domenii precum cel industrial.

2.3.3. Caracteristici generale
-magistrală serială și bidirecțională;
-este alcătuită din 2 linii “Serial Clock” (SCL) și “Serial Data” (SDA);
-modulele de pe această magistrală pot fi transmițătoare sau receptoare;
-este o magistrală de tip master -slave;
-orice dispozitiv conectat la această magistrală este adresabil, printr -o adresă unică;
-este o magistrală de tip mu lti-master, având posibilitatea de ar bitrare at unci când
două sau mai multe dispozitive master inițiază un transfer de date ;
-viteza transferului este de maxim 100kbps în mo dul Standard, 400kbps în modul F ast și 5
Mbps în modul High Speed;

Magistrala I2C este formată din 3 fire:

24
-SDA (Seria l Data) utilizat pentru transmisia datelor;
-SCL (Serial Clock) utilizat pentru transmisia semnalul ui de clock;
-GND;
Liniile SDA și SCL sunt bidirecționale, f iecare dispozitiv conectat la magistr ala I2C
are o adresă unică , care poate fi sau nu modificată. Aceste linii sunt ținute în 5V printr -o
rezistență pull-up, astfel că un dispozitiv trebuie să tragă linia în 0V pentru a putea iniția un
transfer.
Un master poate iniția o transmisie doar dacă îndeplinește condiția de START. Acest
lucru se înt amplă doar atunci când SCL este pe 1 logic, iar SDA trece din 1 logic in 0 logic.
Când fenomenul este invers, adică SCL este pe 1 logic, iar SDA trece din 0 logic în 1
logic, este îndeplinită condiția de STOP și astfel masterul încheie transmisia pe magis trală. În
tot acest timp, masterul ține magistrala ocupată.

2.3.4. Transferul datelor
După fiecare pachet de date de 8 biți transferat pe linia de date, urmează mereu un bit
de confirmare, abia apoi transferul datelor continuă cu următorul pachet. Cu alte cuvinte, se
pot transfera oricâte pachete de date pe magistrală cât timp aceștia sunt mereu însoțiți de un
bit de ACK (Acknowledge). Totuși, dispozitivul ce recepționează datele poate forța valoarea
„0” pe linia SCL și astfel să limiteze viteza de transmi tere a datelor. În acest moment,
masterul care emite se află într -o stare de așteptare și poate relua transmisia datelor doar după
ce receptorul eliberează linia de SCL și transmite bitul de confirmare . Bitul de confirmare
constă în trecerea liniei de date în „0” de către receptor, asta înseamnă că a recepționat corect
pachetul de date. După recepționarea bitului de confimare de către master, acesta va continua
transmisia următorului byte de date. Acesta va forța condiția de STOP atunci când nu va mai
recepționa bitul de confirmare sau nu va mai avea pachete de date de transmis.

2.3.5. Sincronizarea
Fiecare dispozitiv master conectat la magistrală trebuie să fie capabil să genereze
semnalul de clock de p e bus -ul de I2C. Acesta rămane in 1 logic până intervine un modul și
trece linia în 0 logic. Semnalul de clock comandat de unul dintre dispozitivele master va
declanșa măsurarea unei periaode de LOW pentru fiecare dispozitiv. Fiecare dispozitiv

25
master va e libera pe rând linia SCL, după ce această perioadă se va încheia. Logic, cel care v a
elibera ultimul linia, este masterul cel mai lent.

Figura 8.14 Sincronizarea pe magistrala de I2C
Urmează un alt interval de măsurare, de această dată pe HIGH și are loc la trecerea
liniei de clock din 0 logic în 1 logic. Acesta constă în eliberarea liniei, separat, a fiecărui
dispozitiv master. Urmează trecerea liniei de clock în 0 logic, de către master și generarea
unei alte perioade de clock pe magistrală
Ca o concluzie, responsabile de sincronizarea pe magistrală sunt toate dispozitivele
master, acestea realizând pe rând semnalul de tact de durată HIGH și LOW.

2.3.6. Arbitrarea
Datorită faptului că magistrala I2C face parte din categoria magis tralelor multi –
master, este necesar să existe o metodă de arbitrare pentru ca pe magistrală să comunice un
singur dispozitiv și pentru a decide prioritatea dispozitivelor master ce urmează să inițieze un
transfer. După îndeplinirea condiției de STOP, mai e xact după ce S DA trece din 0 logic în 1
logic și SCL este pe 1 logic, intervine problema arbitrării și se efectuează în paralel cu
efectuarea transferului pe magistrală. Linia de date fiind în 5V printr -un rezistor pull -up,
pentru a emite 1 logic pe magist rală nu se modifică nimic pe această linie, iar pentru a emite
un 0 logic, SDA va fi tras în 0V.
După emiterea primului bit, masterul verifică starea liniei SDA, dacă valoarea trimisă
este aceeași cu cea de pe linie, acesta emite următorul bit. În caz con trar, masterul oprește
comunicația pe magistrală prin condiția de STOP și va încerca să emită din nou la următoarea
arbitrare.

14 http://ww1.microchip.com/downloads/en/DeviceDoc/21952b.pdf

26

2.3.7. Protocolul I2C
Orice dispozitiv slave conectat la bus -ul de I2C are o adresă unică ce poate fi sau nu
modificată. Această adresă constă din 7 biți pentru un format standard, iar pentru formatul
extins din 10 biți.
După ce un master câștigă arbitrarea și poate transmite pe bus, acesta transmite, după
bitul de START, adresa dispozitivului cu care dorește să comunice. A rbitrarea constă în
forțarea bitului de START după detectarea unei condiții de STOP emis de un alt dispozitiv
master.

Figura 9.15 Condiția de Start/Stop pentru I2C
După emiterea bitului de START și a celor 7 biți de adresă, următo rul bit decide
sensul transferului de data. Acesta se numeste bit de READ/WRITE. Dacă masterul pune
acest bit în „0” logic , acesta îi comunică receptorului că vrea să transmită date spre acesta, iar
dacă bitul este în „1” logic, acesta va urma să citească date. În acest moment, masterul
așteaptă bitul de confirmare de la dispozitivul cu care dorește să comunice, acesta urmând să
treacă linia în „0” indicând astfel că a recunoscut adresa și a înteles sensul de transitere a
datelor. Dacă acest lucru nu se întamplă masterul crede că acest dispozitiv nu există, urmând
să forțeze condiția de STOP.

2.4.Touchscreen -ul
Touchscreen -ul16 este un dispozitiv electronic utilizat deobicei ca o interfață ce poate
fi utilizată atât pentru afișare, cât și ca dispozitiv de intrare. Cu alte cuvinte, ecranul are două

15 http://ww1.microchip.com/downloads/en/DeviceDoc/21 952b.pdf

27
funcții importante: ca interfață grafică și ca intrare atunci când utilizatorul atinge fizic un
punct de contact de pe acesta. Deși au fost descoperite acum aproximativ 50 de ani, ele au
devenit populare abia în anul 2007, odată cu lansarea de către compania „Apple” a
telefoanelor „iPhone”.

Figura 10. Lansare iPhone 2007

Avantajele oferite de această interfață au făcut ca touchscreen -urile să devină tot mai
utilizate în domeniul industrial și medical pe post de controale ale diferitelor echipamente .
Însă au fost implementate și in dispozitive utilizate în viața de zi cu zi precum televizoare,
frigidere, imprima nte, calculatoare și desigur, telefoane. Totuși, implementarea touchscreen –
ului într -un anumit sistem, presupune luarea în calcul a unor factori precum mediul sistemului
din care urmează să facă parte și sarcinile ce urmează să fie îndeplinite de către uti lizator.
Astfel, touchscreen -ul denumit și ecran tactil, trebuie să îndeplinească o serie de cerințe
privind siguranța, performanța sarcinilor domeniului de activitate și satisfacția utilizatorului.
Proiectarea acestuia necesită cunoștiințe software și hardware, plecând de la componentele
fizice ale acestuia în funție de informațiile pe care trebuie să fie capabil să le primească la
intrare până la capacitatea de a interpreta gesturi. Deobicei, inter pretarea gesturilor este

16 Andreas K. Orphanides, Chang S. Nam, Touchscreen interfaces in context: A systematic review of research into
touchscreens across settings, populations, and implementations, Applied Ergonomics vol. 61, 2017

28
specifică ecranelor multi -touch, ca de exemplu rotirea cu două degete sau mărirea imaginii.
De asemenea, la implementarea ecranului tactil în anumite dispozitive se ține cont și de
dimensiunea fizică sau rezoluția afișării.

2.5.Concluzii
În acest capitol am reușit să cuprind din punct de vedere teoretic tot ce mi -am propus.
E clar faptul că în viitorul nu foarte îndepărtat switch -urile din mașină vor fi înlocuite cu
interfețe touchscreen. De fapt, unii producători au implementat d eja această interfață,
obligând astfel companiile concurente să facă și ele aceste modificări cât de curând pentru a
nu pierde teren pe piața automotive.
Touchscreen -ul este o interfață ce oferă o mulțime de avantaje fiind în același timp
atât interfață grafică cât și intrare atunci când utilizatorul atinge fizic un punct de contact de
pe acesta . Tocmai de aceea acesta a devenit foarte popular, fiind folosit în industria
automotive, industrial ă și nu numai. Însă ele pot fi utilizate numai în sisteme încor porate, ce
necesită neapărat un microcontroler. Un microcontroler reprezintă creierul oricărui subsitem
și are menirea de a efectua operații foarte rapid de aducere, decodificare și efectuare de
operații și instrucțiuni din memorii. Acesta comunică cu disp ozitive exterioare prin
intermediul porturilor de I/O. De multe ori acesta este nevoit să primească și să proceseze
date de la un dispozitiv exterior precum un senzor, de obicei aceast proces are loc prin
intermediul unor protocoale de comunicație precum I 2C. Protocolul I2C este unul foarte
popular, utilizat într -o gamă largă de domenii. Majoritatea senzorilor comunică cu
microcontrolerul pe acest protocol, deoarece este foarte simplu și necesită doar două linii de
transmisie SCL și SDA.
CAPITOLUL 3
PROIEC TAREA UNUI TESTER SIMULATOR SWITCH -URI
AUTO
3.1.Structura hardware
Am implementat un dispozitiv de testare pentru Compania „Continental Automotive
Systems” Sibiu. Acesta este format dintr -un RELAY BOARD care comunică cu un MAIN

29
BOARD prin protocolul de com unicație I2C și care la rândul lui este conectat cu TFT
Capacitive Touchscreen Shield. Acesta din urmă are rolul de interfață cu utilizatorul pentru a
putea comuta switch -urile de pe Relay Board.
Acest dispozitiv va fi folosit în cadrul companiei pentru testarea software a ECU -ului
(Electronic Control Unit) responsabil de controlul dotărilor din interiorul unei mașini.

Figura 11. Schema bloc a sistemului

ECU (Electronic Control Unit) este un modul responsabil de controlul sau
monitorizarea unui subsistem dintr -un automobil. Desigur, într -un automobil există mai multe
astfel de module ECU, care comunică printre ele printr -un protocol de comunicație CAN în
funcție de prioritatea fiecăruia. ECU -urile responsabile de funcțiile de frânare vor fi
întotdeauna cele prioritare. Unul dintre aceste module , dar de o prioritate mai mică, este
DCM-ul (Door Control Unit), responsabil de monitorizarea switch -urilor din mașină precum
cele de ridicare și coborâre a geamurilor, de blocare a ușilo r, de pornire a climei, etc. Fiecare
astfel de swtich (sau buton) responsabil de o anumită funcție, are o rezistență proprie de o
anumită valoare , trasă la GND atunci când switch -ul este închis . Pentru a reduce costul de
implementare acestea sunt distribuite în grupuri de maxim 4 switch -uri pe o intrare analogică
a ECU -ului. Astfel, dacă conducătorul automobilului apasă un buton sau o combinație de
butoane (de exemplu dorește să ridice unul sau ma i multe geamuri), microcontrolerul va stii
care dintre acest ea a fost apăsat în funcție de tensiunea citită pe intrarea analogică.
Toate aceste aspecte trebuie tratate cu maximă seriozitate, iar Compania Continental
testează amănunțit aceste module de cont rol a diferitelor funcții din mașină pentru siguranța

30
și comfortul consumatorului. Însă instalarea pentru test a tuturor switch -urilor din mașină
necesită destul de mult timp, iar trecerea de la un model la altul de mașină necesită asta. Și în
plus, testar ea este exclusiv a soft -ului, nu a uzurii butoanelor în timp, astfel am venit cu
această idee: un simulator al switch -urilor din mașină cu o interfață touchscreen.

Figura 12. Tester Simulator Switch -uri Auto

NAME RESISTOR ( Ω) AD LIMITS DESCRIPTON
Relay 1 820 0x52 -0x79 WL driver (Man Up)
Relay 2 100 0x0E – 0x1C WL driver (Man Down)
Relay 3 180 0x26 Lock
Relay 4 1k 0x00 – 0x07 Unlock
Relay 5 270 0x27 – 0x3B TD(fuel cap)
Relay 6 270 0x23 – 0x3B Kisi (Left+Right)
Relay 7 410 0x32 – 0x50 Kisi (Right)
Relay 8 820 0x52 – 0x79 Kisi (Left)
Tabel 1. Switch -urile din mașină

31
Descriere a Main Board -ului:
Microcontroler Atmega328P17

Figura 13. Configurația pinilor unui ATmega 328P

Principalele caracteristici:
 arhitectură RISC;
 dispune de două contoare pe 8 biți și un contor pe 16 biți având fiecare prescaler
separat și modul propriu de comparare;
 are un contor de timp real dat de un oscilator separat;
 conține u n convertor analog numeric pe 10 biți cu 8 canale;
 conține o interfață serială compatibilă cu I2C;
 are comparator analogic pe cip;
 are 23 de interfețe de intrări/ieșiri;
 interval tensiune: 1,8 – 5,5V;
 interval de temperatură: de la -40șC până la 105 șC;

17http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel -42735 -8-bit-AVR -Microcontroller -ATmega328 –
328P_Summary.pdf

32

Figura 14. Diagrama bloc ATmega328P

Motivul pentru care am ales acest microcontroler este compatibilitatea sa cu mediul
de programare Arduino, necesar pentru a avea acces la librăriile toucscreenului capacitiv
utilizat de mine.
Ca programator am uitilizat o placa Arduino Uno, pentru a putea încărca codul pe
microcontroler.

Figura 15. Programator Arduino Uno18

18 https://store.arduino.cc/usa/arduino -uno-rev3

33
Touchscreen FT260619
Este un TFT Capacitive Touchscreen Shield de 2,8” și este alcătuit din 5 pă rți
principale:

Figura 16. Arhitectura sistemului
 Circuitele de interfațare a ecranului tactil . Rolul controlerului AFE este acela de a fi
interfața cu ecranul tactil. Acesta scanează panoul ecranului tactil prin trimiterea unor
semnale AC spre acesta și procesează răspunsul primit. Astfel, are un rol dublu de
driver și senzor. Configurarea acestui modul se poate face serial.
 MCU îmbunătățit , capabil să poceseze programe mari, având și un Flash ROM
intergat pentru a stoca programe și parametrii cheie necesari. Are și un protocol de
comunicație integrat pentru schimbul de date și informații cu procesorul host (gazdă).

 Interfețe externe :
-I2C, pentru transferul de date cu host -ul;
-INT, este un semnal de întrerupere pentru a informa procesorul host că starea datelor
de pe ecranul tactil este pregătită pentru citire;
-RSTN, un semnal extern de reset al chip -ului;

19 https://cdn -shop.adafruit.com/datasheets/FT6x06 +Datasheet_V0.1_Preliminary_20120723.pdf

34
 Watch dog -ul, un contor ce monitorizează starea chip -ului;
 Regulator de tensiune care generează 1,8V pentru circuitele digitale de la alimentarea
VDDA.

Principalele caracteristici ale MCU -ului FT6x06:
– Memoria program: 32kB Flash ;
– Memoria de date: 2kB SRAM ;
– Contoare, pentru a genera diferite semnale de clock;
– Master Clock dat de oscilatorul de 48MHz;
– Clock Manager, pentru controlul diferitelor operațiuni ale sistemului;

Figura 17. Diagrama bloc a MCU -ului FT6x06

Am ales un touchscreen cu senzor capacitiv deoarece este ușor de utilizat și este f olosit în
majoritatea dispozitivelor din ziua de azi, inclusiv în telefoanele mobile. Touchscreenul
utilizat de mine are un driver încorporat FT6x06 care “scanează” încontinuu ecranul tactil, iar
atunci când uitilizatorul atinge un anumit punct de pe acest ecran acesta transmite mesajul
microcontrolerului gazdă (host) , adică ATmega328P. Comunicația între FT6x06 și

35
ATmega328P are loc atât serial prin protocolul de comunicație I2C , cât și prin întreruperile
generate de FT6x06 sau semnalul de reset generat de ATmega328P.

Figura 18. Intefața Host -MCU
Acest touc hscreen mai are un rol și anume de display. Cu o diagonală de 2,8 inch și
cu o rezoluție de 320×240 oferă posilitatea creării a unor interfețe diferite în funcție de
aplicație. Iar în cazul în care vom fi nevoiți să mai adăugăm dispozitive proiectului, putem
oricând modifica interfața fără a fi nevoiți să adăugăm alte interfețe, cum ar fi de exemplu
butoanele. Astfel, pe termen lung economisim atât timpul de lucru cât și bani.

Figura 19. Interfață proiect

36
Pentru a desena butonul „ON” am utilizat func ția: “tft.fillRect(194, 16, 25, 45,
ILI9341_BLUE)”. Este o fun ție care îți desenează un dreptunghi dacă îi dai coordonatele pe x
și pe y (punctul de plecare), înălțimea, lățimea și culoarea de umplere (albastru) . Pentru
contur am folosit funcția “tft.drawRect(194, 16, 25, 45, ILI9341_WHITE)”.
Pentru a desena indicatorul „OFF” (roșu) am utilizat funția „tft.fillCircle(206, 140, 8,
ILI9341_RED)”. La fel ca și în cazul butonului, trebuie setat punctul de plecare, raza cercului
și culoarea.
Pentru butoanele „ALL ON” și „ALL OFF”, am utilizat aceeași funcție ca și în cazul
butonului „ON”, cu diferența că am setat alte coordonate, înălțime, lățime și culoa re diferită.
Avantajul acestui touchscreen e că se poate oricând modifica rapid și ușor interfața în
funcție de cerințele aplicației.

Descrierea Relay Board -ului:
Integratul MCP23017
Prin intermediul protocolului de comunicație I2C, Main Board -ul va co munica cu
Relay Board -ul cu ajutorul integratului MCP23017.

Figura 20. Configurația pinilor unui MCP23017

37

Figura 21. Diagrama bloc funcțională

MCP2301720 este un I/O Expander pe 16 biți cu o interfață serială, care adaugă 16
porturi suplimentare I/O la un microcontroler. MCP23017 este controlat prin magistrala I2C.
Oricare dintre pinii MCP23017 poate fi configurat ca intrare sau ca ieșire. Astfel, cele 16
porturi suplimentare pot fi utilizate pentru a comanda 16 relee individuale.
Conectarea a mai multor Relay Board -uri pe magistrala I2C:
MCP23017 are trei linii de adresă (A0, A1 și A2), iar fiecare Relay Board de pe
magistrală trebuie să aibă o adresă unică I2C. Pe magistrală pot fi conectate până la 8 astfel
de dispozitive, fiecare cu o adresă unică [0x20:0x27], apoi trebuie precizată adresa internă a
lui MCP23017, pentru ca acesta să știe cu ce registru dorim să lucrăm.

20 http://ww1.microchip.com/downloads/en/DeviceDoc/21952b.pdf

38

Figura 22. Registrul de adrese intern a lui MCP23017

MCP23017 oferă posibilitatea de a accesa în mod continuu aceeași adresă prin
furnizarea de ceasuri suplimentare, lucru util pentru interogarea GPIO, astfel se înregistrea ză
modificăr i de date continuu sau la scrierea blocurilor de ieșire. Un mod special
(IOCON.BANK =0) determină ca pointerul de adresă să treacă între perechea de regiștrii A și
B. Cu alte cuvinte pentru 12h, acesta va indica registrul destinație ca fiind GPIOA, iar pentru
13h acesta va indica GPIOB. În modul secvențial permite indicatorul automat al adresei
Incrementate, adică își mărește numărul contorului de adrese după fiecare o ctet în timpul
transferului de date.
Datele sunt scrise la MCP23017 după fiecare octet transferat . Dacă este generată o
condiție de Stop sau Restart în timpul transferului de date, datele nu vor fi scrise la
MCP23017 .

39
Principiul de funcționare a întregului ansamb lu

Figura 23. Protocolul I2C a proiectului

În proiectarea unei magistrale de I2C, alegerea corectă a valori i rezistorului de pull –
up este foarte importantă deoarece o valoare incorectă poate duce la pierderea semnalului.
Astfel, la proiectarea unei magistrale trebuie să ținem cont de timpul de creștere a semnalelor
SDA și SCL ( ), de sarcina capacitivă pentru fiecare linie de pe magistrală ( ) și de nivelul
de tensiune de ieșire ( ). Acesta din urmă depinde de tensiunea de alimentare. Dacă
tensiunea de alimentare este mai mare decât 2V , atunci , iar Dacă
tensiunea de alimentare este mai mică sau egală cu 2V, atunci , iar
.

Parametrii specifici protocol ului I2C pentru modul standard:
;
;
;
;

Calculul rezistenței minime de pull -up:

;

Calculul rezisten ței maxime de pull -up:

40

Figura 24. Caracteristica de tensiune în funție de rezistența minimă de pull -up21

Figura 25. Sarcina capacitivă în funcție de rezistența maximă de pull -up

21 http://www.ti.com/ lit/an/slva689/slva689.pdf

41

Transmisia datelor de la ATmega328P la MCP23017 este suprinsă mai jos. După ce
transmite bitul de START microcontrolerul pune pe magistrală adresa dispozitivului
destinație (MCP23017) adică 0x 27, după care așteaptă răspunsul acestuia. Dacă acesta este
“1” urmează bitul de STOP și transmisia se încheie. Dacă răspunsul este “0”, ATmega328P
mai trimite o secvență de biți de adresă dar de această dată cu adresa registrului intern a lui
MCP23017 cu care dorește să lucreze, mai exact cu portul GPIOA având adresa 0x12. După
ce primește din nou confirmarea (ACK) de la acesta, microcontrolerul poate pune în sfârșit
cei 8 biți de date pe magistrală. Fiecărui bit îi este asignat un pin din portul GPIOA.

Figura 26. Transmisia datelor pe I2C

42
Stabilirea Relay Board -ului cu care urmează să comunicăm, pot fi conectate până la 7
asfel de dispozitive:

void SetupRelays() {
“void MCP_Write(byte MCPaddress, byte MCPregister, byte MCPdata) {
// I2C write routine
MCPaddress = MCPaddress + 0x20; // 0x20 is base address for MCP
Wire.beginTransmission(MCPaddress);
Wire.write(MCPregister);
Wire.write(MCPdata);
Wire.endTran smission();
}
for (byte i = 0; i <= 7; i = i + 1) {
MCP_Write(i, 0x00, 0b00000000); // set all pins to output
MCP_Write(i, 0x12, 0b00000000); // set all outputs to off
}”
Scrierea datelor:
„void WriteRelays(byte address, byte data) {
// Write data to relays
MCP_Write(address, 0x12, data);
}”

Pentru a putea modifica starea unui singur releu pe ON am realizat o funcție ce face
un “SAU” între starea inițială a releelor și 0b00000001 shiftat cu “a”, unde “a” reprezintă al
câtelea releu dorim să îl comutăm pe ON:

„int data_r=0;
void relay_on(int a)
{data_r= data_r|(1<<a);
WriteRelays(adress, data_r );} ”

În schimb, pentru a comuta un singur releu pe OFF, am realizat o funcție ce face un
“ȘI” între starea inițială a releelor negatul lui 0b00000001 shiftat cu “a”:

„void relay_off(int a)
{data_r=data_r& (~(1<<a));
WriteRelays(adress, data_r );} ”

43
3.2. Schema electrică desfaș urată

Figura 27. Schemă electrică desfășurată (MAIN BOARD)

Schema electrică a întregului proiect este împărțită în două: Main Board și Relay
Board. Main Board -ul conține blocul de alimentare, condensatorii de decuplare, partea de
comunicație cu interfața touchscreen (protocolul SPI și I2C) și cea de comunicație cu Relay
Board -ul (SDA, SCL, +5V, 0V).
Relay Board -ul conține integratul MCP23017, driverul pen tru relee ULN2803, cele 8
relee HAMLIN HE3621A0500 de tip Reed și cele 8 LED -uri cu scopul de a urmări în timp
real starea releelor.

44

Figura 28. Schemă electrică desfășurată (RELAY BOARD)

3.2.1. Verificarea driverului ULN280322
ULN2803 este o matrice coloană formată din 8 perechi de tranzistori NPN Darlington.
Toate aceste perechi au un emițător comun însă cu ieșiri colectoare proprii. În baza perechilor
de tranzistori Darlington se află o rezistență serie ce permite comandarea acestor cu tensiuni
de alimentare între 3,3V și 5V.
ULN2803 este util atunci când se dorește ca un microcontroler să controleze starea
unui releu, exact ca și în aplicația implementată de mine. Microcontrolerul nu este capabil să
genereze curenți suficie nți de mari pentru comutația releului, aceștia urmând să fie
amplificați de perechile de tranzistori Darlington. Acest integrat mai are un avantaj prin
faptul că fiecare releu ce trebuie comutat presupune o sarcină inductivă astfel că avem nevoie
de o diod ă de protecție. Integratul are o astfel de diodă în componența sa asigurând astfel și
un rol de protecție.

22 http://www.ti.com/lit/ds/symlink/uln2803a.pdf

45

Figura 29. Logic diagram
PIN TIP
(INTRARE/IEȘIRE) NUME NUMĂR
1B 1 INTRARE
2B 2 INTRARE
3B 3 INTRARE
4B 4 INTRARE
5B 5 INTRARE
6B 6 INTRARE
7B 7 INTRARE
8B 8 INTRARE
1C 18 IEȘIRE
2C 17 IEȘIRE
3C 16 IEȘIRE
4C 15 IEȘIRE
5C 14 IEȘIRE
6C 13 IEȘIRE
7C 12 IEȘIRE
8C 11 IEȘIRE
COM 10 INTRARE/IEȘIRE
GND 9 –
Tabel 2. Configurația pinilor unui ULN2308

46

Figura 30. Diagrama bloc funcțională

Avantajul acestei conexiuni Darlington este că oferă un câștig ridicat de curent.
Rezultă că niște curenți foarte mici generați de pinii de ieșire a unui microcontroler trecuți
prin această pereche de tranzistori Darlington pot deveni curenți de putere mare ce pot
comuta sarcini inductive. Diodele aflate între COM și ieșirea colectorului au rolul de a
suprima o eventuală tensiune generată de o sarcină inductivă excitată atunci c ând driverele
NPN sunt oprite, iar energia stocată de bobine va face ca un curent invers să curgă în
alimentarea bobinei prin dioda de kick -back.
Utilizarea integratului ULN2803 a dus la reducerea numărului componentelor
necesare pentru a comuta 8 relee de la 32 de componente până la o singură componentă și
astfel proiectarea cablajului va fi mult mai simplă și va reduce dimensiunea totală a acestuia.

Tranzistorii Darlington
Un tranzistor Darlington poate fi considerat ca fiind o pereche de tranzisto ri bipolari
cu avantajul că pot fi comandați de un curent foarte mic în bază. Asta datorită câștigului
(gain) foarte mare pe care îl oferă acești tranzistori. Practic, câștigul unui tranzistor
Darlington este egal cu produsul câștigurilor celor doi tranzis tori:

;

47

Figura 31. Calculul curenților de pe Relay Board
Fie tensiunea ce cade pe releu și tensiunea de saturație colector -emitor a
tranzistorului Darlington, rezultă că:

Rezultă că:

Suma celor doi curenți, înmulțită cu numărul releelor de pe placă dă curentul total:

3.2.2.Verificarea releelor HAMLIN HE3621A0500
HAMLIN HE3621A0500 sunt niște relee de tip reed SPST produse de compania
HAMLIN. Ele funcționează la tensiunea continuă de 5V, cu o rezistență a bobinei interne de
500 Ohm, pot suporta curenți de până la 500mA.

48
3.3. Proiectarea layout

Figura 32. Layout MAIN BOARD (TOP+BOTTOM)
Am proiectat atât schema cât și layout -ul în progr amul “Eagle”. Este un program cu o
librărie stufoasă de componente, dar care oferă și posibilitatea creării rapide a unei
componente noi. Este simplu și ușor de utilizat în orice aplicație indiferenut de gradul
acesteia de dificultate.
Am realizat Main Board -ul pe două straturi (top și bottom) cu scopul de a micșora
considerabil dimensiunea cablajului și totodată de a oferi o suprafață mai mare de GND
pentru a disipa mai rapid și mai eficient căldura acumulată de stabilizatorul de tensiune
LM7805. Am uitilizat atât componente SMD (surface -mounted device ) cât și Through -hole.

49

Figura 33. TOP Layer MAIN BOARD

Figura 34. BOTTOM Layer MAIN BOARD

50

Figura 35. Layout RELAY BOARD

Relay Board -ul a fost realizat pe un singur strat (bottom), nefiind nevoie de o
suprafață mare de GND pentru disiparea căldurii ca și în cazul Main Board -ului.
Toate componentele utilizate pentru realizarea acestuia au fost de tip Through -hole,
iar poziționarea lor pe placă este dată de cerințele și nevoile pe care trebuie să le
îndeplinească acest tester, în realizarea testelor Companiei Continental.

51

Principalele etape ale proiectării și realizării PCB -ului au fost urmatoarele:

 proiectarea cablajului – această etapă a constat în realizarea schemei electrice
desfășurate și a layout -ului;
 imprimarea cablajului –
expunerea cablaju lui la UV
(aproximativ 260 s) și introducerea
acestuia în apă cu sodă caustică
(aproximativ 10g/l) pentru a
îndepărta fotorezistul din zona
expusă la UV;
 corodarea plăcuței – am folisit
clorură ferică cu scopul de a
elimina cuprul din zona expusă la
UV;
 finalizarea plăcuței –este partea în
care am curățat plăcuța cu alcool
pentru a îndepărta fotorezistul
rămas, am dat găuri, am tratat
plăcuța cu flux și am realizat toate
lipiturile necesare;

Figura 37. Realizare PCB Figura 36. Realizare PCB

52

CAPITOLUL 4
APLICAȚII ȘI EXPERIMENTE
Studiu asupra stabilizatorului de tensiune LM7805
Am realizat un studiu asupra stabilității în timp a regulatorului de tensiune LM7805 și
dependența ieșirii acestuia față de temperatură. Pentru că acest dispozitiv va fi utilizat cel
puțin 8 h/ zi în cadrul companiei pent ru testare și fiindcă trebuie să alimenteze atât MAIN
BOARD -ul cât și RELAY BOARD -ul, este important să funcționeze tot timpul în parametrii
optimi pentru a nu influența în vreun fel testele efectuate. Am urmărit tensiunea de intrare și
de ieșire a acestui a timp de 8 h pe un osciloscop pe toată durata efectuării testelor pe ECU .
Am constat în urma experimentul ui că tensiunea scade cu doar 10 -20 mV după 8h de
funcționare.

Figura 38. Intrare/Ieșire regulator LM7805

53

Studiu asupra protocolului I2C, vizualizarea acestuia utilizând osciloscopul
Un alt studiu realizat de mine a fost asupra protocol ului I2C. Am urmărit cu ajutorul
osciloscpului produs de compania “LeCroy”, semnalul de clock SCL și semnalul de date
SDA.

Figura 39. Protocolul I2C

Cel mai ușor de identificat este bitul de START deoarece cunoaștem faptul că pentru
a începe transmisia pe magistrala I 2C este necesar ca semnalul de clock (SCL) să fie pe “1”,
iar pe semnalul de date (SDA) trebuie s ă aibă loc tranziția “1” -> “0” . Imediat dup ă acest bit
observăm cei 7 biți de adresă plus cel de Read/Write. Un alt bit important este cel de
ACK/NACK (răspunsul dispozitivului slave), observăm că dacă acesta nu este “0”,
transmisia se încheie cu bitul de STOP ce constă în tranziția liniei de date “0” -> “1”, în timp
ce linia de clock este pe “1”. Imediat după îndeplinirea condiției de STOP, ATmega328P va
încerca să transmită din nou pe magistrală.

54

Figura 40. Bitul de ST ART
Studiu asupra comutație releelor de tip Reed
Am realizat acest studiu pentru a urmări viteza și stabilitatea acestor relee în timpul
comutației. Am realizat acest studiu sub formă de grafice având ca domeniu de definiție
timpul, iar ca domeniu de valori rezistența de pe ieșirea releului. Diferența dintre cele două
grafice este domeniul de timp. Astfel mărind de la 5 ms domeniul de definiție (atât cât avea
primul grafic ) la 50 ms (atât cât are al doilea grafic), putem compara caracteristica Ω(t) în
cele două cazuri și trage niște concluzii. Releele de tip Reed se pliază cerințelor proiectului
nostru, deoarece sunt stabile în timpul comutației indiferent de viteza de comutație.

Figura 41. Achiziție în timp real a comutației releelor

55

Testarea prototipului în cadrul comapaniei
Am utilizat proiectul pentru efectuarea unor teste în cadrul Companiei Continental.

Figura 42. Prototip Tester Simula tor Switch -uri Auto
Acest prototip a înlocuit testerul switch -urilor realizat de Continetal, fiind conectat
direct la ECU -ul poziționat în mașină în ușa șoferului în vederea realizării testelor. Se
observă ușor dimensionarea substanțial redusă de la tester ul original la prototipul realizat de
mine.

Figura 43. Tester pentru switch -uri al Companiei Contine ntal

56

Figura 44. Realizarea testelor
Testul urmărea ca după comutarea switch -ului, responsabil de coborârea geamului , pe
ON timp de 2 minute, ECU -ul să nu mai țină cont de starea acestuia și să transmită mai
departe o eroare sau să o salveze în EEPROM. Scopul testului este de a simula un eventual
buton blocat în mașină, din diferite motive și de a salva această eroare pentru a putea fi
detectată ulterior într -o diagnoză la un service autorizat. Acesta este un test de funcționalitate,
adică se implementează în mod intenționat o eroare așteptând un anumit comportament din
partea ECU -ului. În urma interpretării rezultatelor am dedus că testul este “PASSED”.

Figura 45. Rezultatul testelor și interpretarea acestora

57
CAPITOLUL 5
CONCLUZII ȘI CONTRIBUȚII
“Tester simulator switch -uri auto” a fost util în studiul și înțe legerea în amănunt a
protocolului I2C. Mi -am îndeplinit toate obiectivele propuse la începerea proiectului.
Dispozitivul meu a fost utilizat în cadrul Companiei Continental pentru efectuarea unor teste
pe ECU -ul responsabil cu controlul dotărilor din ușa ș oferului (față stânga). Mai mult decât
atât, se p reconizeăză că în maxim 10 ani toate switch -urile din mașină vor fi înlocuite cu
aceste interfețe touchscreen. Această interfață a fost deja implementată în câteva modele de
automobile printre care și Audi.
O contribuție importantă consider că e separarea Relay Board -ului de Main Board,
deoarece utilizarea protocolului I2C oferă unele avantaje cum ar fi posibilitatea de a mai
conecta oricând încă 6 Relay Board -uri sau posibilitatea de a controla switch -urile d e la o
distanță de cațiva metrii de interfață. Cu alte cuvinte, interfața nu trebuie să fie în imediata
vecinătate a switch -urilor. Altfel, numărul de fire dintre Relay Board și Main Board erau 10,
fără a menționa că era nevoie de tot atâtea fire pentru al imentarea fiecărui releu. Utilizând
acest protocol am redus numărul de fire la 4:
 + 5V
 0V
 SDA
 SCL
Deasemenea, menționez că un Relay Board conține 8 relee, iar conectarea a încă 6
Relay Board -uri la magistrala I2C oferă posibilitatea de a utiliza 104 de switch -uri, dacă este
nevoie.
Dezvoltări ulterioare:
Proiectarea unei aplicații Android care să permită controlul dotărilor din mașină de pe
telefon și care să trimită un feedback utilizatorului despre starea acestora. De exemplu, să
alerteze printr -un semnal sonor un eventual geam uitat deschis.
De asemenea să permită pornirea aerului condiționat sau a încălzirii din această
aplicație cu un anumit timp înainte de a ajunge șoferul la mașină.

58
ANEXE
ANEXA 1: Programare microcontroler

//Library
#include <Wire.h> // this is needed for FT6206
#include <Adafruit_GFX.h> // Core graphics library
#include <SPI.h> // this is needed for display
#include <Adafruit_ILI9341.h>
#include <Adafruit_FT6206.h>
#include <Fonts/FreeMonoB old9pt7b.h>
#include <Fonts/FreeSerif9pt7b.h>

Adafruit_FT6206 ctp = Adafruit_FT6206(); // The FT6206 uses hardware I2C (SCL/SDA)

// The display also uses hardware SPI, plus #9 & #10
#define TFT_CS 10 //chip select pin
#define TFT_DC 9 //data comunication pin
Adafruit_I LI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);

#define adress 0x7
int data_r=0;
void relay_on(int a)
{data_r= data_r|(1<<a);
WriteRelays(adress, data_r );}
void relay_off(int a)
{data_r=data_r&(~(1<<a));
WriteRelays(adress, data_r );}

void setup() {
// put your setup code here, to run once:
Wire.begin();
SetupRelays();
tft.begin();
draw_beggining();
draw_buttons();}

void loop() {

if (! ctp.touched()) { // Wait for a touch
return;
}

59
TS_Point p = ctp.getPoint(); // Retrieve a point

if ((p.x<46 && p.x>21)&& (p.y<304 && p.y>259))
{tft.fillCircle(206, 140, 8, ILI9341 _GREEN);
tft.drawCircle(206, 140, 8, ILI9341_WHITE);
relay_on(7);}
else if ((p.x<46 && p.x>21)&& (p.y<245 && p.y>200))
{tft.fillCircle(206, 140, 8, ILI9341_RED);
tft.drawCircle(206, 140, 8, ILI9341_WHITE);
relay_off(7);}

if ((p.x<92 && p.x>67)&& (p.y<304 && p.y>259))
{tft.fillCircle(160, 140, 8, ILI9341_GREEN);
tft.drawCircle(160, 140, 8, ILI9341_WHITE);
relay_on(6);}
else if ((p.x<92 && p.x>67)&& (p.y<245 && p.y>200))
{tft.fillCircle(160, 140, 8, ILI9341_RED);
tft.dr awCircle(160, 140, 8, ILI9341_WHITE);
relay_off(6);}

if ((p.x<140 && p.x>115)&& (p.y<304 && p.y>259))
{tft.fillCircle(112, 140, 8, ILI9341_GREEN);
tft.drawCircle(112, 140, 8, ILI9341_WHITE);
relay_on(5);}
else if ((p.x<140 && p.x>115) && (p.y<245 && p.y>200))
{tft.fillCircle(112, 140, 8, ILI9341_RED);
tft.drawCircle(112, 140, 8, ILI9341_WHITE);
relay_off(5);}

if ((p.x<193 && p.x>168)&& (p.y<304 && p.y>259))
{tft.fillCircle(65, 140, 8, ILI9341_GREEN);
tft.drawCircle(65 , 140, 8, ILI9341_WHITE);
relay_on(4);}
else if ((p.x<193 && p.x>168)&& (p.y<245 && p.y>200))
{tft.fillCircle(65, 140, 8, ILI9341_RED);
tft.drawCircle(65, 140, 8, ILI9341_WHITE);
relay_off(4);}

if ((p.x<46 && p.x>21)&& (p.y<143 && p.y> 98))
{tft.fillCircle(206, 300, 8, ILI9341_GREEN);
tft.drawCircle(206, 300, 8, ILI9341_WHITE);
relay_on(0);}
else if ((p.x<46 && p.x>21)&& (p.y<87 && p.y>42))
{tft.fillCircle(206, 300, 8, ILI9341_RED);
tft.drawCircle(206, 300, 8, ILI9341_ WHITE);

60
relay_off(0);}

if ((p.x<92 && p.x>67)&& (p.y<143 && p.y>98))
{tft.fillCircle(160, 300, 8, ILI9341_GREEN);
tft.drawCircle(160, 300, 8, ILI9341_WHITE);
relay_on(1);}
else if ((p.x<92 && p.x>67)&& (p.y<87 && p.y>42))
{tft.fillCirc le(160, 300, 8, ILI9341_RED);
tft.drawCircle(160, 300, 8, ILI9341_WHITE);
relay_off(1);}

if ((p.x<140 && p.x>115)&& (p.y<143 && p.y>98))
{tft.fillCircle(112, 300, 8, ILI9341_GREEN);
tft.drawCircle(112, 300, 8, ILI9341_WHITE);
relay _on(2);}
else if ((p.x<140 && p.x>115)&& (p.y<87 && p.y>42))
{tft.fillCircle(112, 300, 8, ILI9341_RED);
tft.drawCircle(112, 300, 8, ILI9341_WHITE);
relay_off(2);}

if ((p.x<193 && p.x>168)&& (p.y<143 && p.y>98))
{tft.fillCircle(65, 300, 8, ILI9341_GREEN);
tft.drawCircle(65, 300, 8, ILI9341_WHITE);
relay_on(3);}
else if ((p.x<193 && p.x>168)&& (p.y<87 && p.y>42))
{tft.fillCircle(65, 300, 8, ILI9341_RED);
tft.drawCircle(65, 300, 8, ILI9341_WHITE);
relay_off(3);}

if ((p.x<230 && p.x>200)&& (p.y<250 && p.y>170))
{ALLON();}
else if ((p.x<230 && p.x>200)&& (p.y<140 && p.y>60))
{ALLOFF();}

// flip it around to match the screen.
p.x = map(p.x, 0, 240, 240, 0);
p.y = map(p.y, 0, 320, 320 , 0);

// Print out the remapped (rotated) coordinates
Serial.print("("); Serial.print(p.x);
Serial.print(", "); Serial.print(p.y);
Serial.println(")");

}

61
void draw_beggining(void)
{
tft.fillScreen(ILI9341_BLACK); //set background black
tft.setFont(&FreeMonoBold9pt7b);
tft.setTextColor(ILI9341_WHITE);
tft.setRotation(1);
tft.setCursor(65, 120);
tft.print("LUCRARE DE DIPLOMA");
tft.setCursor(130, 140);
tft.print(" -2017-");
tft.setRotation(0);
delay(2000);
}

void draw_buttons(void)
{
tft.fillScreen(ILI9341_BLACK); //set background black

// draw interface
tft.fillRect(194, 16, 25, 45, ILI9341_BLUE); //Relay 1 ON Button
tft.fillRect(194, 75, 25, 45, ILI9341_BLUE); //Relay 1 OFF Button
tft.fillCircle(206, 140, 8, ILI9341_RED); //OFF Indicator Relay 1
tft.fillRect(148, 16, 25, 45, ILI9341_BLUE); //Relay 2 ON Button
tft.fillRect(148, 75, 25, 45, ILI9341_BLUE); //Relay 2 OFF Button
tft.fillCircle(160, 140, 8, ILI9341_RED); //OFF Indicator Relay 2
tft.fillRect(100, 16, 25, 45, ILI9341_BLUE); //Relay 3 ON Button
tft.fillRect(100, 75, 25, 45, ILI9341_BLUE); //Relay 3 OFF Button
tft.fillCircle(112, 140, 8, ILI9341_RED); //OFF Indicator Relay 3
tft.fillRect(52, 16, 25, 45, ILI9341_BLUE); //Relay 4 ON Button
tft.fillRect(52, 75, 25, 45, ILI9341_BLUE); //Relay 4 OFF Button
tft.fillCircle(65, 140, 8, ILI9341_RED); //OFF Indicator Relay 4
tft.fillRect(194, 177, 25, 45, ILI9341_BLUE); //Relay 5 ON Button
tft.fillRect(194, 233, 25, 45, ILI9341_BLUE); //Relay 5 OFF Button
tft.fillCircle(206, 300, 8, ILI9341_RED); //OFF Indicator Relay 5
tft.fillRect(148, 177, 25, 45, ILI9341_BLUE); //Relay 6 ON Button
tft.fillRect(148, 233, 25, 45, ILI9341_BLUE); //Relay 6 OFF Button
tft.fillCircle(160, 300, 8, ILI9341_RED); //OFF Indicator Relay 6
tft.fillRect(100, 177, 25, 45, ILI9341_BLUE); //Relay 7 ON Button
tft.fillRect(100, 233, 25, 45, ILI9341_BLUE); //Relay 7 OFF Button
tft.fillRect(52, 177, 25, 45, ILI9341_BLUE); //OFF Indicator Relay 7
tft.fillRect(52, 233, 25, 45, ILI9341_BLUE); //Relay 8 ON Button
tft.fillCircle(65, 300, 8, ILI9341_RED); //Relay 8 OFF Button
tft.fillCircle(112, 300, 8, ILI9341_RED); //OFF Indicator Relay 8
tft.fillRect(10, 70, 30, 80, ILI9341_GREEN); //ALLON Button

62
tft.fillRect(10, 180, 30, 80, ILI9341_RED); //ALLOFF Button

//button outline
tft.drawRect(194, 16, 25, 45, ILI9341_WHITE); //Relay 1 ON Button Outline
tft.drawRect(194, 75, 25, 45, ILI9341_WHITE); //Relay 1 OFF Button Outline
tft.drawCircle(206, 140, 8, ILI9341_WHITE); //OFF Indicator Outline Relay 1
tft.drawRect(148, 16, 25, 45, ILI9341_WHITE); //Relay 2 ON Button O utline
tft.drawRect(148, 75, 25, 45, ILI9341_WHITE); //Relay 2 OFF Button Outline
tft.drawCircle(160, 140, 8, ILI9341_WHITE); //OFF Indicator Outline Relay 2
tft.drawRect(100, 16, 25, 45, I LI9341_WHITE); //Relay 3 ON Button Outline
tft.drawRect(100, 75, 25, 45, ILI9341_WHITE); //Relay 3 OFF Button Outline
tft.drawCircle(112, 140, 8, ILI9341_WHITE); //OFF Indicator Outline Relay 3
tft.drawRect(52, 16, 25, 45, ILI9341_WHITE); //Relay 4 ON Button Outline
tft.drawRect(52, 75, 25, 45, ILI9341_WHITE); //Relay 4 OFF Button Outline
tft.drawC ircle(65, 140, 8, ILI9341_WHITE); //OFF Indicator Outline Relay 4
tft.drawRect(194, 177, 25, 45, ILI9341_WHITE); //Relay 5 ON Button Outline
tft.drawRect(194, 233, 25, 45, ILI9341_WHITE); //Relay 5 OFF Button Outline
tft.drawCircle(206, 300, 8, ILI9341_WHITE); //OFF Indicator Outline Relay 5
tft.drawRect(148, 177, 25, 45, ILI9341_WHITE); //Relay 6 ON Button Outline
tft.drawRect(148, 233, 25, 45, ILI9341_WHITE); //Relay 6 OFF Button Outline
tft.drawCircle(160, 300, 8, ILI9341_WHITE); //OFF Indicator Outline Relay 6
tft.drawRe ct(100, 177, 25, 45, ILI9341_WHITE); //Relay 7 ON Button Outline
tft.drawRect(100, 233, 25, 45, ILI9341_WHITE); //Relay 7 OFF Button Outline
tft.drawCircle(112, 300, 8, ILI9341_WHITE); //OFF Indicator Outline Relay 7
tft.drawRect(52, 177, 25, 45, ILI9341_WHITE); //Relay 8 ON Button Outline
tft.drawRect(52, 233, 25, 45, ILI9341_WHITE); //Relay 8 OFF Button Outl ine
tft.drawCircle(65, 300, 8, ILI9341_WHITE); //OFF Indicator Outline Relay 8
tft.drawRect(10, 70, 30, 80, ILI9341_WHITE); //ALLON Button Outline
tft.drawRect(10, 180, 30, 80, ILI9341 _WHITE); //ALLOFF Button Outline

//write text
tft.setFont(&FreeMonoBold9pt7b); //set text font and size
tft.setTextColor(ILI9341_WHITE); //set text color
tft.setRotation(1);
tft.setCursor(25, 40);
tft.print("ON");
tft.setCursor(80, 40);
tft.print("OFF");
tft.setCursor(25, 15);
tft.print("Relay 1");
tft.setCursor(25, 85);
tft.print("ON");
tft.setCursor(80, 85);
tft.print("OFF");
tft.setCursor(25, 60);

63
tft.print("Relay 2");
tft.setCursor(25, 130);
tft.print("ON");
tft.setCursor(80, 130);
tft.print("OFF");
tft.setCursor(25, 108);
tft.print("Relay 3");
tft.setCursor(25, 179);
tft.print("ON");
tft.setCursor(80, 179);
tft.print("OFF");
tft.setCursor(25, 155);
tft.print("Relay 4");
tft.setCursor(190, 40);
tft.print("ON");
tft.setCursor(237, 40);
tft.print("OFF");
tft.setCursor(190, 15);
tft.print("Relay 5");
tft.setCursor(190, 85);
tft.print("ON");
tft.setCursor(237, 85);
tft.print("OFF");
tft.setCursor(190, 60);;
tft.print("Relay 6");
tft.setCursor(190, 133);
tft.print("ON");
tft.setCursor(237, 133);
tft.print("OFF");
tft.setCursor(190, 109);
tft.print("Relay 7");
tft.setCursor(190, 181);
tft.print("ON");
tft.setCursor(237, 181);
tft.print("OFF");
tft.setCursor(190, 157);
tft.print("Relay 8");
tft.setCursor(77, 220);
tft.print("ALL ON");
tft.setCur sor(182, 220);
tft.print("ALL OFF");
tft.setRotation(0);
}

void ALLON(void)

64
{
tft.fillCircle(206, 140, 8, ILI9341_GREEN);
tft.drawCircle(206, 140, 8, ILI9341_WHITE);
tft.fillCircle(160, 140, 8, ILI9341_GREEN);
tft.drawCircle(160, 140, 8, ILI9341_WHITE);
tft.fillCircle(112, 140, 8, ILI9341_GREEN);
tft.drawCircle(112, 140, 8, ILI9341_WHITE);
tft.fillCircle( 65, 140, 8, ILI9341_GREEN);
tft.drawCircle( 65, 140, 8, ILI9341_WHITE);
tft.fillCircle(206, 300, 8, ILI9341_ GREEN);
tft.drawCircle(206, 300, 8, ILI9341_WHITE);
tft.fillCircle(160, 300, 8, ILI9341_GREEN);
tft.drawCircle(160, 300, 8, ILI9341_WHITE);
tft.fillCircle(112, 300, 8, ILI9341_GREEN);
tft.drawCircle(112, 300, 8, ILI9341_WHITE);
tft.fillCircle( 65, 300, 8, ILI9341_GREEN);
tft.drawCircle( 65, 300, 8, ILI9341_WHITE);
relay_on(0);
relay_on(1);
relay_on(2);
relay_on(3);
relay_on(4);
relay_on(5);
relay_on(6);
relay_on(7);
}

void ALLOFF(void )
{
tft.fillCircle(206, 140, 8, ILI9341_RED);
tft.drawCircle(206, 140, 8, ILI9341_WHITE);
tft.fillCircle(160, 140, 8, ILI9341_RED);
tft.drawCircle(160, 140, 8, ILI9341_WHITE);
tft.fillCircle(112, 140, 8, ILI9341_RED);
tft.drawCir cle(112, 140, 8, ILI9341_WHITE);
tft.fillCircle( 65, 140, 8, ILI9341_RED);
tft.drawCircle( 65, 140, 8, ILI9341_WHITE);
tft.fillCircle(206, 300, 8, ILI9341_RED);
tft.drawCircle(206, 300, 8, ILI9341_WHITE);
tft.fillCircle(160, 300, 8, ILI9341_RED);
tft.drawCircle(160, 300, 8, ILI9341_WHITE);
tft.fillCircle(112, 300, 8, ILI9341_RED);
tft.drawCircle(112, 300, 8, ILI9341_WHITE);
tft.fillCircle( 65, 300, 8, ILI9341_RED);
tft.drawCircle( 65, 300, 8, ILI9341_WHITE);

65
relay_off(0);
relay_off(1);
relay_off(2);
relay_off(3);
relay_off(4);
relay_off(5);
relay_off(6);
relay_off(7);
}

void SetupRelays() {
// Setup all possible relay cards (address 0 to 7)
for (byte i = 0; i <= 7; i = i + 1) {
MCP_Write(i, 0x00, 0b00000000); // set all pins to output
MCP_Write(i, 0x12, 0b00000000); // set all outputs to off
}
}

void Wr iteRelays(byte address, byte data) {
// Write data to relays
MCP_Write(address, 0x12, data);
}

void MCP_Write(byte MCPaddress, byte MCPregister, byte MCPdata) {
// I2C write routine
MCPaddress = MCPaddress + 0x20; // 0x20 is base address for MCP
Wire.beginTransmission(MCPaddress);
Wire.write(MCPregister);
Wire.write(MCPdata);
Wire.endTransmission();
}

66

ANEXA 2: Schema electrică desfășurată

67

68

TABEL DE FIGURI
Figura 1. Exemplu de aplicare a switch -urilor ………………………….. ………………………….. ……….. 9
Figura 2. Tipuri de relee ………………………….. ………………………….. ………………………….. ……….. 12
Figura 3. Schemă bloc microsistem ………………………….. ………………………….. ……………………. 15
Figura 4. Direcția de transmisie a datelor pe cele două magistrale ………………………….. ……… 17
Figura 5. Comparator ………………………….. ………………………….. ………………………….. …………… 18
Figura 6. Porturi I/O ………………………….. ………………………….. ………………………….. …………….. 19
Figura 7. Exemplu de aplicație ………………………….. ………………………….. ………………………….. 21
Figura 8. Sincronizarea pe magistrala de I2C ………………………….. ………………………….. ………. 25
Figura 9. Condiția de Start/Stop pentru I2C ………………………….. ………………………….. ………… 26
Figura 10. Lansare iPhone 2007 ………………………….. ………………………….. ………………………… 27
Figura 11. Schema bloc a sistemului ………………………….. ………………………….. ………………….. 29
Figura 12. Tester Simulator Switch -uri Auto ………………………….. ………………………….. ………. 30
Figura 13. Configurația pinilor unui ATmega 328P ………………………….. ………………………….. 31
Figura 14. Diagrama bloc ATmega328P ………………………….. ………………………….. …………….. 32
Figura 15. Programator Arduino Uno ………………………….. ………………………….. …………………. 32
Figura 16. Arhitectura sistemului ………………………….. ………………………….. ………………………. 33
Figura 17. Diagrama bloc a MCU -ului FT6x06 ………………………….. ………………………….. …… 34
Figura 18. Intefața Host -MCU ………………………….. ………………………….. ………………………….. . 35
Figura 19. Interfață proiect ………………………….. ………………………….. ………………………….. …… 35
Figura 20. Configurația pinilor unui MCP23017 ………………………….. ………………………….. …. 36
Figura 21. Diagrama bloc funcțională ………………………….. ………………………….. ……………….. 37
Figura 22. Registrul de adrese intern a lui MCP23017 ………………………….. ………………………. 38
Figura 23. Protocolul I2C a proiectului ………………………….. ………………………….. ………………. 39
Figura 24. Caracteristica de tensiune în funție de rezistența minimă de pull -up ………………… 40
Figura 25. Sarcina capacitivă în funcție de rezistența maximă de pull -up ………………………… 40
Figura 26. Transmisia datelor pe I2C ………………………….. ………………………….. …………………. 41
Figura 27. Schemă electrică desfășurată (MAIN BOARD) ………………………….. ………………… 43
Figura 28. Schemă electrică desfășurată (RELAY BOARD) ………………………….. …………….. 44
Figura 29. Logic diagram ………………………….. ………………………….. ………………………….. ……… 45
Figura 30. Diagrama bloc funcțională ………………………….. ………………………….. ………………… 46

69
Figura 31. Calculul curenților de pe Relay Board ………………………….. ………………………….. … 47
Figura 32. Layout MAIN BOARD (TOP+BOTTOM) ………………………….. ………………………. 48
Figura 33. TOP Layer MAIN BOARD ………………………….. ………………………….. ……………….. 49
Figura 34. BOTTOM Layer MAIN BOARD ………………………….. ………………………….. ………. 49
Figura 35. Layout RELAY BOARD ………………………….. ………………………….. ………………….. 50
Figura 36. Realizare PCB ………………………….. ………………………….. ………………………….. …….. 51
Figura 37. Realizare PCB ………………………….. ………………………….. ………………………….. …….. 51
Figura 38. Intrare/Ieșire regulator LM7805 ………………………….. ………………………….. …………. 52
Figura 39. Protocolul I2C ………………………….. ………………………….. ………………………….. …….. 53
Figura 40. Bitul de START ………………………….. ………………………….. ………………………….. …… 54
Figura 41. Achiziție în timp real a comutației releelor ………………………….. ………………………. 54
Figura 42. Prototip Tester Simulator Switc h-uri Auto ………………………….. ……………………….. 55
Figura 43. Tester pentru switch -uri al Companiei Continental ………………………….. ……………. 55
Figura 44. Realizarea testelor ………………………….. ………………………….. ………………………….. .. 56
Figura 45. Rezultatul testelor și interpretarea acestora ………………………….. ………………………. 56

70

BIBLIOGRAFIA
[1] Adrian Baraboi, Marcel Adam, Echipamente electrice , Editura “Gh. Asachi”, Ia și,
Volumul I, 2002
[2] Alexandru Vasilievici, Aparate și echipamente electrice , Universitatea Politehnică
Timișoara, Volumul II, 1996
[3] Andreas K. Orphanides, Chang S. Nam , Touchscreen interfaces in context: A systematic
review of research into touchscreens across settings, populations, and implementations ,
Applied Ergonomics vol. 61, 2017
[4] Beriliu Ilie , Microcontrolere , Note de curs
[5] Beriliu Ilie, Protocoale de comunicație , Note de curs
[6] Ioan P. Mihu, Dispozitive și circuite electronice , Volumul I, Editura “Alma Master”,
Sibiu, 2005
[7] Ionel -Daniel Morariu , Interfețe și protocoale de comunicație , Editura Universității “L.
Blaga” di n Sibiu, 2016
[8] John Crisp , Introduction to Microprocessors and Microcontrollers -2nd edition , Newnes,
2004
[9] Laurean Bogdan, Automatizarea proceselor industriale , Note de curs
[10] Lucian N. Vințan , Organizarea si proiecta rea microarhitecturilor de calcu l (pentru uzul
studen ților), Universitatea “L. Blaga” din Sibiu, 2010
[11] M.L.Goia , Relee și protecții electrice , Editura ICEMENERG, București, 2006
[12] Nebojsa Matic , BASIC for PIC microcontrollers , 2003
[13] Paolo Aliverti , Manual de electronică pentru amatori , Editura M.A.S.T, București, 2016
[14] William B. Ribbens, Understanding Automotive Electronics , 5th Edition, Butterworth,.
Heinemann Woburn, 1998
[15] https://ro.wikipedia.org/wiki/F ord_Model_T
[16] https://en.wikipedia.org/wiki/Benz_Patent -Motorwagen
[17]http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel -42735 -8-bit-AVR –
Microcontroller -ATmega328 -328P_Summary.pdf
[18]https://cdn –
shop.adafrui t.com/datasheets/FT6x06+Datasheet_V0.1_Preliminary_20120723.pdf
[19] http://ww1.microchip.com/downloads/en/DeviceDoc/21952b.pdf
[20] http://www.ti.com/lit/ds/symlink/uln2803a.pdf

71
[21] http://www.ti.com/lit/an/slva689/slva689.pdf
[22] https://store.arduino.cc/usa/arduino -uno-rev3
[23] http://ww1.microchip.com/downloads/en/DeviceDoc/21952b.pdf

Similar Posts