Licenta Balanescu Elena Em4111 [306842]

[anonimizat]. Bogdan-Adrian Enache

Pitești

Sesiunea iulie 2017

[anonimizat] a deplasării unghiulare a coloanei de direcție

Absolventa

Bălănescu Elena

Conducător științific

As. Dr. Ing. Bogdan-Adrian Enache

Pitești

Sesiunea iulie 2017

Lista de figuri

Fig.1.1. Sistemele componente din cadrul unui automobil 9

Fig.1.2. Elementele componente ale sistemului de direcție dispus în autoturism 9

Fig.1.3. Construcția sistemului de direcție 11

Fig.1.4. Construcția sistemul hidraulic 14

Fig.1.5. Schema structurală a servodirecției hidraulice 15

Fig.1.6. Schema constructivă a servodirecției hidromecanice 16

Fig.1.7. Schema constructivă a servodirecției hidraulice pure 16

Fig.1.8. Structura unei servodirecții asistate electromecanic 17

Fig.1.9. Servodirecție electromecanică ([anonimizat]) 18

Fig.1.10. Traductor inductiv de cuplu 19

Fig. 1.11. [anonimizat] 20

Fig.1.12. Construcția servodirecției electrice 21

Fig.1.13. Elementele componente ale servodirecției electrice 22

Fig.1.14. Schema de funcționare a servodirecției electrice 23

Fig.1.15. Elemente componente și funcționarea senzorului de cuplu 23

Fig.1.16. Elemente componente și funcționarea senzorului de deplasare unghiulară 24

Fig.1.17. Construcția servodirecției electrice cu pinion dublu 24

Fig.1.18. Construcția servodirecției electrice cu cremalieră 25

Fig.1.19. Construcția servodirecției electrice de tip coloană 25

Fig.1.20. Diagrama sistemului 26

Fig.2.1. Structura platformei de dezvoltare Arduino Leonardo 28

Fig.2.2. Configurația pinilor microcontrolerului ATmega32u4 30

Fig.2.3. Schema bloc a unui microcontroler 31

Fig.2.3. Schema bloc a [anonimizat] 35

Fig.2.4. Diagrama de funcționare a [anonimizat] 35

Fig.2.5. Schema bloc a sistemului 37

Fig.2.6. Axele de măsurare ale unui accelerometru 39

Fig.2.7. Schema de conectare a unui accelerometru la Arduino 39

Fig.2.7. Funcționarea senzorului cu efect Hall 42

Fig.2.8. Senzor magnetic Hall 43

Fig.2.9. Motor de curent continuu 44

Fig.2.10. Construcția motorului de curent continuu 45

Fig.2.11. [anonimizat]. 45

Fig.2.12. Shield pentru conectarea motorului la Arduino 46

Fig.2.13. Construcția unui ecran de afișare LCD Arduino 47

Fig.2.14. Modul de afișare a unui LCD 16×2 48

Fig.2.15. [anonimizat]. 48

Fig.2.16. [anonimizat]. 49

Fig.3.2. Organigrama software a sistemului 54

Fig.3.3. Caracteristica de funcționare a accelerometrului 56

Fig.3.4. Modul de execuție a instrucțiunii while 58

Fig.4.1. Schema electrică de conectare a sistemului pentru măsurarea deplasării unghiulare 62

Fig.4.2. Diagrama în coloane a erorii absolute 63

Fig.4.3. Diagrama în coloane a erorii relative 64

Fig.4.4. Reprezentarea grafică a erorii relative 64

Lista de tabele

Tabelul.2.1. Semnificația pinilor microcontrolerului 32

Tabelul.2.2. Caracteristicile motorului 44

Tabelul.2.3. Pinii de conectare a unui LCD Arduino 49

Tabelul.3.1. Unghiul de înclinare al accelerometrului pe axa X,Y,Z 56

Tabelul.4.1. Valorile și erorile sistemului de măsurare a deplasării unghiulare 63

Introducere

Lucrarea are ca scop proiectarea și simularea sistemului de măsurare a unghiului imprimat de conducătorul auto volanului, această valoare fiind transmisă apoi unității UCH pentru a fi folosită de sistemul anti-derapaj și de control asistat a direcției.

În cadrul lucrării se va realiza un stand care va conține:

un modul Arduino (pentru simularea unității UCH);

un senzor Hall;

un accelerometru;

un motor de curent continuu;

un display pentru afișare;

o sursă externă de alimentare de 12V.

Sistemul va fi proiectat pentru simularea sistemelor de direcție asistate electric, în mod special pentru cele cu servodirecția de tip coloană.

Lucrarea este structurată în 4 capitole după cum urmează:

Capitolul I: Noțiuni introductive despre tipuri de sisteme de direcție, scheme și principii de funcționare.

Capitolul 2: Prezentare structură hardware a sistemului, schema bloc și conectarea elementelor componente.

Capitolul 3: Prezentare structură software a sistemului, organigrama de funcționare și codul sursei explicat.

Capitolul 4: Rezultate experimentale, schema electrică de conectare și reprezentarea erorilor prin diagrame și grafice.

CAPITOLUL I

Noțiuni introductive

Sistemul de direcție este unul dintre cele mai complexe sisteme instalate pe un autovehicul, acesta având multiple roluri și este alcătuit dintr-un grup de componente, legături, care permit oricărui autovehicul (mașină, motocicletă, bicicletă) să urmeze cursul dorit. Un automobil este condus cu ajutorul sistemului de direcție prin elemente componente și legături. Acestea transferă mișcarea manuală efectuată asupra volanului prin intermediul coloanei de direcție, către roțile directoare, pentru a schimba direcția de mers. Scopul principal al sistemului de direcție este de a permite șoferului să ghideze vehiculul.

Elementele componente ale sistemului de direcție se împart în două grupe, în funcție de destinația lor, și anume:

mecanismul de acționare sau comandă a direcției, are rolul de a transmite mișcarea de la volan la levierul de direcție;

transmisia direcției, transmite mișcarea de la levierul de direcție către fuzetele roților;

Sistemele de direcție se clasifică după mai multe criterii și anume:

după locul de amplasare al mecanismului de acționare;

după tipul mecanismului de acționare;

după particularitățile transmisiei;

după locul de plasare a roților de direcție.

După locul de dispunere e mecanismului de acționare a direcției, se deosebesc:

sisteme de direcție pe partea dreaptă;

sisteme de direcție pe partea stângă.

După tipul mecanismului de acționare, sistemele de direcție se pot clasifica în funcție de:

raportul de transmitere, acesta fiind constant sau variabil;

tipul angrenajului, întâlnindu-se diferite mecanisme cu melc, cu șurub, cu manivelă și cu roți dințate;

tipul comenzii, care poate fi mecanică sau cu servomecanism mecanic de tip hidraulic, electric sau pneumatic, și cu comandă hidraulică;

După particularitățile transmisiei direcției, clasificarea se face în funcție de:

poziția trapezului de poziție poate fi anterioară sau posterioară, în raport cu puntea din față;

construcția trapezului de direcție, care poate fi cu bară de direcție transversală dintr-o singură bucată sau conține mai multe părți.

După locul unde sunt plasate roțile de direcție, automobilele pot fi:

cu roți de direcție la puntea din față;

cu roți de direcție la puntea din spate sau la ambele punți.

1.1. Sisteme de direcție asistată

Autoturismul este un vehicul suspendat elastic pe roți, care se deplasează prin mijloace de propulsie. Autoturismele pot fi clasificate după tipul caroseriei și după cilindree. Un grup de mecanisme și organe de mașini asamblate constituie părțile componente ale unui automobil.

Acestea sunt:

Motorul;

Șasiul;

Caroseria.

Prima unitate de servodirecție a fost inventată de Francis W. Davis, la mijlocul anilor 1920, dar nu a fost introdusă în automobile până în 1951. Acest sistem inițial a fost de tipul: minge și piuliță, și se utilizează în vehicule cu forțele de direcție mai mari, în prezent este de tip: cremalieră și pinion, care a fost introdus la sfârșitul anilor 1960, în mașinile sport de performanță medie.

Sistemul de direcție are rolul de a dirija autmobilul pe traiectoria dorită de conducător. Schimbarea direcției de mers se poate obține prin schimbarea direcției de mers a roților, în raport cu planul longitudinal al autoturismului. Asupra siguranței în traficul rutier, un rol deosebit de important îi aparține sistemului de direcție.

Majoritatea automobilelor au roțile din față ca roți principale de direcție. Pentru a schimba direcția automobilului, conducătorul auto acționează asupra volanului. De la volan mișcarea se transmite prin intermediul axului volanului, la melcul care angrenează împreună cu sectorul dințat. Pe axul sectorului dințat este amplasat levierul de direcție, conectat la bara longitudinală de direcție. Pentru a avea o stabilitate bună a autovehiculului la drum, roțile de direcție se pot manevra ușor.

Volanul și transmisia volanului îndeplinesc următoarele funcții:

acestea transmit comanda de virare efectuată de la volan către mecanismul de acționare;

permite reglarea și poziția volanului;

are un rol important în siguranța conducătorului prin : existența airbagului la volanul conducătorului, deformarea componentelor constructive pentru a evita contactul cu șoferul în unui accident;

asigură blocarea manevrării volanului în timpul de staționare a autoturismului.

Caseta de direcție este o componentă a mecanismului de direcție care este plasată la extremitatea opusă a coloanei de direcție a volanului, aici este amplasat angrenajul melcat care transmite mișcarea de la axul volanului, către levierul de direcție, ajutând la fixarea ținutei de drum a automobilului. Când apare uzura provocată de jocul volanului la nivelul angrenajului și trece peste limita admisă , atunci crește oscilația roților la viteze mici.

Bieleta de direcție este un element de articulație care are rolul de a transmite mișcarea efectuată de către partea sistemului de direcție.

Sistemul de direcție este unul dintre cele mai complexe sisteme instalate pe un automobil, acesta având multiple roluri:

nu trebuie să influențeze poziția roților;

nu trebuie să influențeze oscilațiile suspensiilor la denivelarile traseului;

nu trebuie să transmită șocurile primite de la roți către volan;

trebuie să asigure șoferului o schimbare a direcției de mers rapidă și fără efort.

Unghiurile roților directoare ajută extrem de mult la stabilitatea acestora, adică au capacitatea să revină la mersul în linie dreaptă, în cazul în care acestea au fost deviate prin obstacole de drum.

Sistemul de direcție are rolul de a modifica direcția de deplasare a autovehiculului, această schimbare se poate obține prin bracarea roților pentru a schimba direcția de mers.

Sistemul de direcție trebuie să respecte următoarele condiții:

servodirecția trebuie să asigure o stabilitate și o siguranță bună autovehiculului la drum cât și în viraje.

trebuie să asigure o manevrare rapidă și ușoară a roților directoare;

trebuie să asigure un efort de rotire al volanului cât mai mic;

trebuie să asigure un randament cât mai mare;

să permită o manevrare rapidă a direcției, adică unghiurile de rotire ale volanului, sa fie mai mici în raport cu viteza automobilului, pentru o conducere în siguranță;

să permită înclinarea roților în viraje, pentru a evita alunecarea acestora;

să nu permită trecerea șocurilor la volanul autovehiculului;

operațiile de reglare și întreținere să fie cât mai ușoare;

să permită obținerea unei raze de viraj cât mai mică;

să nu prezinte uzuri grave care pot duce la punerea în pericol a conducătorului automobilului;

să aibă o construcție simplă și să prezinte o durabilitate de funcționare cât mai mare;

unghiurile de așezare ale roților să se modifice cât mai puțin în timpul virării;

numărul de rotații ale volanului de la stânga la dreapta să fie egale între ele;

trebuie să asigure o compatibiliate cu mecanismul de ghidare, adică oscilațiile și deplasările să nu afecteze volanul.

construcția trebuie să fie cât mai sigură, simplă și cu o durabilitate cît mai mare, să nu producă blocări.

Principiul de funcționare al sistemului de direcție:

Elementele componente ale sistemului de direcție sunt următoarele:

1- volan;

2- ax;

3 – melc;

4 – sector dințat;

5 – levier de direcție;

6 – bară longitudială de direcție;

7 – bară transversală de direcție;

8-14 – leviere;

9-13- fuzete;

10 – pivot;

11 – brațul fuzetei;

12 -punte.

Pentru a schimba direcția de mers a automobilului, conducătorul trebuie să acționeze manual asupra volanului, mișcarea se va transmite prin intermediul axului volanului, către melcul care funcționează împreună cu sectorul dințat.

Pe axul sectorului dințat este amplasat levierul de direcție, aflat într-o legătură comună cu bara longitudinală de direcție. Când are loc rotirea sectorului dințat, a levierului de direcție, atunci și bara va efectua o mișcare axială în dependență de rotația sectorului dințat.

Prin deplasarea axială a barei de direcție, în jurul pivotului, brațul fuzetei realizează o mișcare de rotație și odată cu ea se va roti și roata din stânga.

Legătura care există între fuzete, prin intermediul levierelor și bara transversală de direcție va produce rotirea fuzetei. Levierele fuzetelor și bara transversală de direcție, formează un patrulater care poartă numele de trapezul direcției.

Stabilizarea roților de direcție

Pentru a avea o bună ținută de drum a automobilului, roțile de direcție se stabilizează. Prin stabilizarea roților de direcție, se înțelege capacitatea acestora de a-și menține direcția la mersul în linie dreaptă și de a reveni în această poziție, după ce au fost deviate datorită influenței unor forțe perturbatoare. Dintre măsurile constructive care ajută la momentul de stabilizare, rolul cel mai important îl constituie unghiurile de așezare a roților și pivoților.

La pivoții fuzetelor se deosebesc două unghiuri: unghiul de înclinare longitudinală și transversală. Roțile de direcție, ca și pivoții, prezintă tot două unghiuri: unghiul de cădere sau de carosaj și unghiul de convergență.

Unghiul de înclinare laterală a pivotului – acesta are rolul de a mări tendința roților directoare de a reveni în poziția mersului în linie dreaptă, și de a face mai ușor procesul de manevrare a volanului, în cazul în care acestea au fost scoase din poziția neutră.

Unghiul de înclinare longitudinală a pivotului – acest unghi este cunoscut și drept unghi de fugă și asigură stabilitatea autovehicului în timpul mersului.

Mașinile de generație mai nouă și toate cele construite la momentul actual au sisteme de direcție servo-asistate, sisteme care permit șoferului să modifice poziția roților fără efort, inclusiv atunci când autovehiculul nu se află în mișcare.

Unghiul de cădere al roților – preia jocul din rulmenții roților și realizează unghiul de înclinare al roții în plan vertical.

Unghiul de convergență – acest unghi asigură paralelismul planurilor de mișcare al roților directoare.

Defecțiunile sistemului de direcție sunt următoarele:

manevrarea grea a volanului – aceasta poate fi determinată de defectarea pompei de presiune a servodirecției, ea apare datorită faptului că pompa nu livrează suficient ulei sau datorită grupării pivoților;

resimțirea șocurilor puternice la volan – această defecțiune este determinată de prezența aerului în instalația hidraulică;

apariția zgomotului în timpul virării roților – această defecțiune este mai puțin semnificativă, deoarece este dată de o cantitate mică de ulei în instalație, lucru care se remediază rapid după ce vasul a fost reumplut până la limita normală de funcționare;

apariția jocului la volan – această defecțiune a sistemului de direcție apare numai atunci când jocul maxim la volan admis depășește valoarea de 15 grade. Acest joc poate apărea din mai multe cauze cum ar fi: uzarea angrenajelor în caseta de direcție, uzarea capetelor la bara longitudinală sau a pivoților și uzarea jocului apărut la articulația volanului.

Toate aceste probleme tehnice au impus necesitatea îmbunătățirii sistemului de direcție. Aceste îmbunătățiri nu s-au produs dintr-o dată ci în mai multe etape care corespund diferitelor tipuri de sisteme.

1.2. Tipuri de sisteme de direcție asistată

Clasificarea mecanismelor de direcție se face după mai multe criterii cum ar fi, după mecanismul de acționare cu melc, cu roți dințate sau cu șurub. După tipul comenzii există mecanisme cu comandă mecanică sau cu servomecanism hidraulic, electric, pneumatic asistate sau nu electronic de un calculator sau de la unitatea centrală de procesare.

Servomecanismele de direcție – au rolul de a face mai ușor efortul necesar de a acționa volanul de către conducătorul auto și este obligatorie folosirea lor atunci când forța la volan depășește valoarea de 20 daN.

Servomecanismele de direcție trebuie să îndeplinească următoarele cerințe:

să asigure o corespondență bună între unghiul de rotire al volanului și unghiul de bracare al roții;

după viraj roțile trebuie să revină automat la mersul în linie dreaptă;

virarea trebuie să fie asigurată chiar și atunci când servomecanismul nu funcționează;

să transmită conducătorului senzația de contact al roților cu drumul;

să prezinte siguranță contra vibrațiilor șă să le amortizeze.

Principiul de funcționare al unei servodirecții are la bază scopul de a utiliza o sursă exterioară de energie pentru a realiza mișcarea de rotație a roților de direcție, iar volanul având rolul doar de a comanda rotirea roților.

În funcție de sursa de energie utilizată, servodirecțiile pot fi clasificate astfel:

servodirecții hidraulice;

servodirecții electrice;

servodirecții mixte.

În funcție de tipul legăturii existente între volan și roțile de direcție, servodirecțiile pot fi clasificate astfel:

servodirecții hidromecanice;

servodirecții hidraulice pure.

Atât la servodirecțiile hidraulice cât și la cele electrice, între volan și roțile de direcție pot exista sau nu legături prin elemente mecanice (pârghii, tije). În cazul în care există, acestea asigură legătura și atunci când sistemul hidraulic sau electric se defectează (este folosită la autoturisme, datorită vitezelor mari de rulare). În cazul în care nu există legături mecanice, siguranța se realizează prin dublarea sau chiar triplarea circuitelor hidraulice sau electrice, care asigură blocarea roților. Circuitele hidraulice simple se utilizează doar la mașinile agricole lente (traductoare, combine).

1.2.1. Sisteme de direcție hidraulice

Mecanismele cu asistare hidraulică sunt cele mai des întâlnite. Pentru a crește efectul de amplificare a forței, servomecanismul întrebuințează lichidul sub presiune, acesta fiind un proces destul de complicat, dar foarte avantajos din mai multe puncte de vedere cum ar fi costurile, greutatea și spațiul necesar.

Mecanismul de direcție poate detecta perturbații produsede suprafața drumului și efectul vibrațiilor unghiulare care pot fi reduse prin utilizarea amplificatoarelor hidraulice, mai ales la nivelul ansamblului pinion-cremalieră. Acest proces poartă numele de auto-amortizare a sistemului hidraulic. De altfel, mai există o metodă de atenuare a vibrațiilor realizată cu ajutorul unui amortizor montat între carcasa mecanismului de direcție și tija cremalierei.

Sistemele hidraulice sunt antrenate de către un motor și ele furnizează în mod constant o presiune cu ajutorul unei pompe de lichid hidraulic. Aceste sisteme hidraulice trebuie să utilizeze supape pentru controlul debitului, deoarece mecanismele generează permanent un debit și o presiune suficient de mare pentru a satisface manevrarea de virare. Chiar și în condițiile de turație redusă a motorului.

Pentru a preveni pierderile hidraulice care pot apărea la turațiile mari ale motorului, aceste sisteme limitează debitul de alimentare la aproape 8 l/min și are un consum de carburant suplimentar, curpind între 0.2 și 0.5 l/km.

Sistemul hidraulic este compus din:

1 – pompă hidraulică acționată de motor prin intermediul unei curele trapezoidale;

2 – conductă de retur;

3 – circuit de răcire;

4 – conducte de înaltă presiune, de la supapa regulatorului la pompă;

5 – mecanismul de direcție;

6 – bloc supape;

7, 8 – circuite de presiune spre cilindrul de lucru;

9 – coloana volanului cu arbore intermediar;

10 – volan.

Lichidul hidraulic aflat sub presiune ajunge din pompa 1 prin intermediul conductei de înaltă presiune 4 și a circuitului de răcire 3 direct în distribuitorul mecanismului de direcție prin blocul regulatorului 6, localizat în carcasa pinionului. Aici, în funcție de sensul de rotație al volanului și a forțelor de rezistență, la roți are loc distribuirea lichidului în cilindrul drept 7 sau stâng 8 al mecanismului de direcție 5. Există și un piston plasat la nivelul cremalierei cu rolul de a separa cele două camere de presiune.

Servodirecțiile mai pot fi :

deschise – volanul acționează asupra elementului intermediar, iar acesta acționează asupra roților de direcție(RD). Poziția roților depinde de poziția volanului, iar abaterile de la traiectorie se corectează prin acțiunea conducătorului asupra volanului;

cu reacție – acestea sunt prevăzute cu o legătură de reacție (LR), care ajută atunci când roțile de direcție deviază de la traiectoria stabilită și acționează asupra traductorului de eroare (distribuitorul D), astfel roțile sunt readuse la traiectoria inițială (fără intervenția conducătorului).

Elementele componente:

V – volan;

Mc – mecanismul casetei de direcție;

P- sursa de energie(pompa);

DS – distribuitor ;

M – motor de acționare a roților;

RD – roți de direcție ;

LR – legătura de reacție.

Servomecanismul hidraulic de direcție are în componența sa o pompă hidrostatică care este acționată de către un MAI (motor cu ardere internă) sau de către un motor electric. Acesta mai conține și un distribuitor care este acționat de la volan cu ajutorul unui motor hidrostatic liniar cu dublu efect, el având rolul de a transforma energia hidrostatică în lucru mecanic prin acționarea roților de direcție cu comenzile primite de la volan. Cel mai des folosit este servomecanismul hidraulic cu legătură închisă între elemente, deoarece acesta permite o sincronizare mai bună a vitezei și a mișcării volanului, permite și urmărirea roților motoare astfel compesând automat influența acțiunilor perturbatoare.

Servodirecțiile hidraulice sunt de 2 tipuri:

hidromecanice;

hidraulice pure.

La servodirecțiile hidromecanice există o legătură de reacție. În fig.1.6. se observă că mecanismul de acționare (MC) acționează atât distribuitorul (DS) cât și roata de direcție (RD) prin intermediul legăturii de reacție (LR) care poate fi de exemplu bara longitudinală de reacție. Atunci când servodirecția funcționează, rotirea volanului (V) se face prin intermediul sertarului distribuitorului și acesta va transmite ulei la motorul hidraulic (M), astfel realizându-se bracarea roților.

Dacă roțile deviază de la direcția prestabilită de la volan, mișcarea lor se transmite la legătura de reacție LR și prin aceasta la distribuitorul DS, ceea ce va duce la readucerea roților la poziția inițială. Fără să se mai efecteze acționarea volanului. În cazul în care partea hidraulică nu funcționează, legătura mecanică va asigura rotirea roților cu ajutorul creșterii efortului la volan.

Servodirecțiile hidraulice pure sunt deschise atunci când nu există o legătură mecanică între volanul (V) și roata de direcție (RD), ceea ce înseamnă că orice modificare a direcției prestabilite roții trebuie efectuată de la volan. La această servodirecție, distribuitorul (DS) poate prelua și rolul pompei (P), iar atunci când pompa nu mai funcționează se poate realiza rotirea roților prin intermediul distribuitorului, însă cu un efort mai sporit la volan. Această servodirecție nu mai funcționează doar atunci când legăturile dintre motorul hidraulic și distribuitor sunt defecte și din această cauză nu se utilizează decât la mașinile lente. Componentele hidraulice formează doar un singur bloc hidraulic care este comandat electric.

Comanda electrică a blocului hidraulic se realizează prin intermediul servovalvelor. Servovalvele sunt distribuitoare cu sertate, comandate electric, furnizează la ieșire un debit de lichid proporțional cu mărimea semnalului electric de comandă.

Acestea se realizează pe unu, două sau trei etaje hidraulice de amplificare, ceea ce permite realizarea unor debite de până la 1000 l/min și a unor presiuni de până la 32 MPa.

1.2.2. Servodirecțiile electromecanice

Servodirecțiile electromecanice sunt sisteme de energie asistate electric, sensibile la viteze, dar care sunt activate numai atunci când este nevoie și nu utilizează componente hidraulice.

În comparație cu servodirecția hidraulică, mașinile echipate cu sisteme de direcție asistate electromecanic beneficiază de servodirecție la un consum redus de combustibil și noi funcții de confort și siguranță. Printre acestea se numără întoarcerea rapidă a direcției la punctul său central pentru a îmbunătăți senzația de direcție în jurul punctului de mijloc.

Direcția este optimizată prin adaptarea personalizată a asistenței puterii relevante pentru motorul și echipamentele din mașină. Includerea acestor funcții suplimentare a fost făcută posibilă prin integrarea unității de comandă în mafistrala de date CAN.

Servodirecția electromecanică controlează și asistă vehiculul folosind un motor electric controlat inteligent. Acesta este bazat pe direcția semnalului înregistrat de către senzorul de cuplu, ECU calculează cu ajutorul direcției optime și transmite această informație la motorul electric, care furnizează forța necesară.

Datorită integrării ECU în sistemul electric, aceasta oferă un potențial considerabil pentru punerea în aplicare a funcțiilor de asistență.

Servodirecția electromecanică nu utilizează componente hidraulice, astfel nu se elimină uleiul hidraulic din sistemul de direcție, ceea ce ajută la protejarea mediului. Servodirecția electromecanică este de tip pinion dublu. Acesta este caracterizat prin două pinioane de direcție și conducere, care permit ca forța de direcție să fie transmisă la caseta de direcție. Sistemul oferă șoferului asistență la volan în funcție de condițiile de conducere (servotronic).

Servodirecția electromecanică acceptă revenirea volanului înapoi în poziția de centru prin intermediul funcției revenirea activă. Acest lucru duce la un sistem echilibrat și la o bună stabilitate în orice situație de conducere.

Funcția de stabilitate în linie dreaptă, este generată pentru a face direcționarea automobilului cu o viteză constantă mai ușoară. Sistemul de direcție are ca avantaj reducerea consumului de combustibil, deoarece se activează numai atunci când este nevoie de ea.

Sistemul de direcție electromecanic oferă avantaje față de un sistem hidraulic:

nu conține elemente hidraulice, de exemplu pompa de ulei, rezervorul de ulei, filtrul;

economie de spațiu;

reducere zgomot;

economii de energie;

sistemul de cablaj al motorului electric și modulul de comandă se află direct pe mecanismul de direcție.

Aceste servodirecții utilizează un motor electric pentru amplificarea forței necesare bracării roților, fiind formate din următoarele elemente:

motor electric de acționare;

traductor de cuplu.

Elementele componente ale servodirecției electromecanice sunt:

1-motor electric;

2-melc;

3-roată melcată;

4-traductor de cuplu;

5-conexiunile traductorului de cuplu;

6,7-legături electrice;

8-coloană deformabilă;

9-ansamblul cheii de contact;

10-ansamblul comutatoarelor;

11-suport de prindere;

12-cuplaj elastic.

La varianta din fig.1.9. motorul electric 1 acționează asupra volanului prin

intermediul unui angrenaj, care este format din melcul 2 și roata melcată 3. Cuplul dezvoltat de motorul electric depinde de cuplul cu care șoferul scționează asupra volanului, preluat de

către traductorul de cuplu 4. Roata melcată se va roti cu un cuplu mai mare sau mai mic,

și va antrena cremaliera prin diverse mecanisme.

Traductorul de cuplu este de obicei cu inductanța variabilă și are următoarele elemente componente:

1-arborele volanului;

2-arc bară de torsiune;

3-caneluri;

4-bloc electonic;

5-arborele pinionului;

6-pinion;

7-cremalieră;

8-bobine;

9-miez magnetic;

10-cilindru de aluminiu.

La acționarea volanului apare o mișcare unghiulară relativă între arborii 1 și 5, datorită arcului la bara de torsiune 2. Acest decalaj se manifestă și între canelurile 3 de pe arborele volanului și piesa cilindrică 10, ceea ce face ca inductanțele bobinelor 8 să se modifice în funcție de cuplul aplicat volanului. Prin blocul electronic cuplul cu care este acționat pinionul 6 prin mișcare de translație cu cremaliera 7.

1.2.3. Servodirecția electro-hidraulică

Servodirecția hidraulică are la bază utilizarea unui sistem hidraulic, pentru a multiplica forța aplicată la intrările volanului pentru direcția roților. Pompa acționată de motorul vehiculului produce presiune hidraulică care vine de la roți sau de la palete rotative. Cilindrul hidraulic cu dublă acțiune de direcție aplică o forță care direcționează roțile principale. Volanul de direcție acționează supapele electromagnetice pentru controlul debitului de la cilindru.

Pentru măsurarea cuplului aplicat pe volan, coloana de direcție are un senzor de cuplu plasat pe o bară de torsiune. Pe măsură ce volanul se rotește, la fel și coloana de direcție, precum și bara se va răsuci cu o valoare proporțională cu cuplul aplicat.

Diferența de poziție între capetele opuse ale barei de torsiune controlează o supapă. Supapa permite trecerea fluifului către cilindrul care asigură asistență de direcție, cu cât mai mare este răsucirea barei de torsiune, cu atât mai mare este și forța.

Deoarece pompele hidraulice sunt volumice, debitul care îl livrează este direct proporțional cu turația motorului. Acest lucru înseamnă că la vitezele mari ale motorului, sistemul de direcție ar urma să funcționeze în mod natural cât mai rapid decât la turațiile reduse ale motorului. Pentru acest lucru ar fi de dorit, un orificiu de curgere și de control al supapei de siguranță către rezervorul hidraulic la viteze mari ale motorului. O supapă de siguranță previne acumularea de presiune atunci când pistonul cilindrului hidraulic va ajunge la capătul cursei sale.

Lichidul de lucru, de asemenea, numit lichid hidraulic sau ulei, este mediul prin care se transmite presiunea. Unele sisteme moderne includ și o supapă de control electronică, pentru a reduce presiunea de alimentare hidraulică pe măsură ce viteza automobilului crește, acest lucru ajută considerabil servodirecția.

În acest caz, pompa hidraulică antrenată de motor este înlocuită de o pompă acționată electric. În fig 1.11. se prezintă ansamblul sistemului electrohidraulic. Pompa acționată electric, creează o presiune hidraulică în sistem, care este gestionată electronic,astfel ca în cazul în care nu este necesară o suplimentare de forță, alimentarea cu lichid hidraulic este redusă.

Elementul generator de presiune, este conceput ca o unitate modulară și poate fi acționat de orice motor electric de curent continuu, cu sau fără perii, iar pompa va alimenta citcuitul de diferite volume de lichid hidraulic, de la 1.25 până la 1.75 cm3 /rotație, în funcție de necesitate.

1.2.4. Servodirecția electrică

Înlocuirea sistemului hidraulic sau cel mecanic de amplificare a forței cu un motor electric oferă avantaje suplimentare în ceea ce privește greutatea și spațiul ocupat, în comparație cu primele, datorită eliminării componentelor hidraulice.

Un alt avantaj constă într-o gamă mult mai largă a suplimentării forței, datorită analizei unui singur parametru și anume semnalul electric. Dispozitivul electric de amplificare poate fi montat pe coloana volanului, pe pinion sau pe cremalieră. Sarcina pe mecanism și forța maximă la nivelul cremalierei sunt în funcție de soluția constuctivă și au valori cuprinse între 6 kN sau 10 kN. În figura de mai jos se prezintă părțile componente ale unei servodirecții electrice.

Pentru a schimba direcția automobilului, conducătorul acționează asupra volanului , care transmite mișcarea prin intermediul axului , la melcul ce angrenează cu sectorul dințat. Pe axul sectorului dințat se află levierul de direcție (comandă), care este în legătură cu bara longitudinală de direcție (comandă). Prin rotirea sectorului dințat, deci și a levierului de direcție, bara longitudinală de direcție va avea o mișcare axială care depinde de sensul de rotație a sectorului dințat.

Servoasistarea acestui sistem este una variabilă, în funcție de viteză. Reducerea servoasistării se face odată cu creșterea vitezei, prin intermediul unui calculator care a preluat informațiile de la traductorul de viteză.

Sistemul realizează funcția de retur avtiv cu rolul de a acționa revenirea roților în poziția mersului în linie dreaptă. Acțiunea se realizează prin intermediul servomotorului care participă la mărirea procesului de stabilizare a roților cauzate unghiurilor roților și pivoților.

Funcția de retur activ se modifică în funcție de viteza automobilului, ea are valoarea maximă la o viteză redusă și valoare minimă la o viteză mare. Conducătorul automobilului poate selecta modul normal (pentru viteze medii și ridicate) și modul de circulație urban (pentru o servoasistare sporită în timpul manevrelor), cu ajutorul unui buton.

1.3. Sisteme de direcție asistată electrice

Caseta de direcție servo-electrică este componenta principală a sistemului de direcție ce transformă o mișcare de rotație a axului volanului în mișcare de translație stânga-dreapta. Mișcarea este transmisă mecanic prin intermediul unei cremaliere dințate. Pentru a diminua forța aplicată volanului pentru bracare, se folosește un electromotor. Electromotorul este comandat de un senzor aflat pe coloana de direcție, senzor ce sesizează modificarea poziției axului volanului. Sistemul este mai eficient decât sistemul de direcție asistată hidraulic, deoarece motorul electric funcționează doar în momentele în care volanul este rotit, iar pompa trebuie să funcționeze neîntrerupt.

La acest tip de sistem asistarea este realizată de un motor electric, controlat electronic. Principalele avantaje pe care le are direcția asistată electronic față de cea electro-hidraulică, sunt eficiența energetică, costurile de întreținere mult mai reduse, dimensiunea, greutatea, zgomotul redus.

Sistemul de direcție asistat electronic permite efectul servo și atunci cînd motorul cu ardere internă este oprit. Sensul și mărimea momentului de torsiune realizate de motorul electric sunt obținute în urma informațiilor primite de la calculatorul de bord. Informația ajunge la calculatorul de bord (ECU) prin intermediul a doi senzori: cel care determină viteza automobilului (senzorul de viteză) și cel care determină momentul de torsiune al volanului de către șofer (senzor de cuplu).

Când la nivelul volanului apare un efort acesta este transmis mecanic la cremalieră, dar și la un calculator sub forma unui semnal electric, dat de către un captor de cuplu. Calculatorul furnizează motorului electric un curent electric în funcție de:

viteza automobilului;

efortul la volan.

Prin intermediul unui ambreiaj și al unui reductor efortul de asistență se transmite la pinionul cremalierei. Captorul de cuplu emite un semnal de forma unei tensiuni variabile proporționale cu cuplul de acționare al volanului.

Calculatorul comandă motorul electric numai în funcție de efortul la volan, dacă viteza automobilului este mai mica de 2,5 km/h (este diferit în funcție de tipul automobilului). Dacă viteza de deplasare este mai mare decît intervalul stabilit, determinarea curentului electric de alimentare a motorului depinde de infomațiile date de la captorul de viteză și cuplu. Asistența se reduce odată cu sporirea vitezei de deplasare.

Alimentarea motorului este anulată de la o anumită viteză de deplasare și din motive de securitate el este deblocat.

Un etaj electronic integrat în calculator, împiedică apariția cuplului de asistență la rotirea în sens invers a volanului, și în cazul în care acesta nu este acționat.

Un senzor al sistemului este plasat pe arborele de intrare a cutiei de viteze. Senzorul este compus din doi senzori. Primul este senzorul de deplasare unghiulară, care măsoară viteza unghiulară și sensul de rotație al arborelui, iar al doilea este senzorul de cuplu care măsoară momentul de torsiune al arborelui, mărimi pe care apoi le convertește în semnale electrice.

Unitatea centrală de control (ECU) preia aceste semnale, pe care pe prelucrează iar pe baza informațiilor, transmite instrucțiuni către celelalte sisteme printre care și sistemul de direcție. Unitatea centrală de control pe baza informațiilor primite, determină curentul necesar motorului pentru a antrena pinionul din sistemul de direcție cât și direcția de deplasare a acestuia. Astfel, sporind intensitatea curentuluila motor și creșterea puterii acestuia.

Senzorul de cuplu detectează răsucirea barei de torsiune, calculează cuplul care este aplicat barei de torsiune schimbând-o într-un semnal electric pe care-l transmite apoi către EPS ECU. Senzorul de cuplu contribuie la buna funcționare a sistemului de direcție.

Senzorul de cuplu a fost elaborat pentru vehiculele cu servodirecție electrică, senzorii măsoară forța aplicată de șofer și permite, astfel controlul sistemului de direcție electric. Senzorul este bazat pe un principiu magnetic fără contact de măsurare. El se compue dintr-un magnet, un tub și un senzor. Datorită disponibilizării de componente electronice, senzorul îndeplinește toate cerințele din sistemele moderne de siguranță.

Senzorul de deplasare unghiulară este o parte importantă a sistemului de direcție asistată electric care măsoară unghiul de poziție a volanului și viteza de rotație. Acesta poate fi utilizat pentru a obține aceste date în grade.

Senzorul este situat într-un grup de senzori în coloana de direcție. Grupul are întotdeauna mai mulți senzori de poziție, direcție pentru a confirma datele. Sistemul de direcție asistată trebuie să primească două semnale pentru a confirma poziția volanului. Aceste semnale sunt adesea defazate între ele.

1.3.1. Servodirecția electrică cu pinion dublu

Servodirecția este realizată de către motorul electric, și un caz particular al acestui sistem de direcție este pinionul dublu care este utilizat pentru mașinile de dimensiuni medii.

Această unitate este situată în compartimentul motorului și constă în asistarea unui pinion, ce acționează direct pe cremaliera de direcție, asupra căreia acționează și al doilea pinion care este acționat de către volan.

1.3.2. Servodirecția cu cremalieră

Tipul constructiv al acestei servodirecții are aproape același concept ca cea cu pinion. Diferența constă în locația sistemului de comandă poziționat pe cremaliera servodirecției direct de asupra ei. Acest tip este adecvat pentru vehiculele de dimensiuni mari, cum ar fi camioanele.

1.3.3. Servodirecția de tip coloană

În următoarea figură avem reprezentată schema servo-direcției de tip coloană. Unitatea de tip coloană este folosită pentru mașinile de dimensiuni mici, de nivel mediu și inferior. Motorul este amplasat în compartimentul pentru pasageri și are ca avantaj o performanță mai bună la temperaturi reduse și de etanșare.

Funcționarea acestui sistem se bazează pe principiul de funcționare al unui mecanism de tip diferențial. Acest tip de mecanism permite două acțiuni de torsiune, una de la șofer repectiv volan și alta de la un motor electric care asistă șoferul. Randamentul sistemului este dat de pinionul care angrenează cremaliera direcției.

Întrucât este o mașină de pasageri cu capacitate redusă, efortul produs la manipularea volanului este maxim 250N. Funcția principală a acestui sistem este de a asigura o servodirecție sigură. Acest sistem generează efortul de torsiune folosind un motor DC, un mecanism de reducere montat pe coloana servodiecției pentru a ajuta servodirecția.

Cantitatea de energie este calculată de EPS (servodirecția electrică) și ECU (unitate centrală).

Sistemul are trei moduri de operare:

modul de control “normal” care gestionează semnalele de intrare cu privire la sensul de rotație a arborelui;

modul de control “return” care controlează revenirea volanului la poziția inițială după o virare;

modul de control “damper” care în funcție de viteză rigidizează mai mult sau mai puțin direcția.

Dacă volanul este întors la maxim în una din direcții, unitatea de comandă reduce curentul la motorul electric pentru a împiedica o situație de supraîncărcare care ar putea deteriora motorul. Unitatea de comandă este proiectată de asemenea să protejeze motorul împotriva unei tensiuni prea mari sau a unei încărcări necorespunzătoare.

Unitatea de comandă a direcției este capabilă să-și diagnostizeze propriile defecte, precum și intensitatea curentului. Dacă apare o problemă, unitatea de comandă, ca măsura de siguranță, oprește sistemul prin acționarea unui releu. Prin această măsură se eleimină curentul din sistem, acesta devenind un sistem de direcție obișnuit. Această schimbare este semnalată la bordul autovehiculului.

În această diagramă se pot observa foarte ușor semnalele obligatorii pentru funcționarea corespunzătoare a acestui mecanism. Calculatorul de bord trimite semnalul de viteză a vehiculului către EPS ECU. Motorul termic trimite prin ECU semnalul de pornire a motorului și este trimis apoi către EPS ECU.

Senzorul de cuplu 1 și 2 transmit și raportează către EPS ECU dorința șoferului de a întoarce volanul în orice direcție dorește și cuplul cu care se acționează asupra acestuia. În afara celor mai sus menționate, motorul trimite și primește semnale de la ECU astfel încât poate trimite puterea necesară șoferului.

DLC3 este conectorul prin care se poate conecta la sistem un tester electronic care poate detecta erorile și diagnostica sistemului. Pentru șofer erorile sau defecțiunile din sistem sunt afișate pe panoul de bord prin aprinderea unui indicator de culoare roșie.

CAPITOLUL II

Prezentare structură hardware a sistemului

Pe durata proiectării și realizării acestui proiect, am folosit mai multe componente, iar acestea sunt: o platformă de procesare de la Arduino și anume plăcuța Leonardo, un display pentru afișare, un accelerometru pentru măsurarea deplasării unghiulare a coloanei de direcție și un senzor Hall pentru determinarea numărului de turații ale motorului. Placa de procesare Arduino Leonardo este componentă de bază, fiindcă ea poate prelua informațiile de la dispozitivele externe și le prelucrează pentru a le afișa pe un display.

2.1. Structura hardware a sistemului

Arduino este una dintre cele mai simple platforme de utilizat care conține un microcontroler. Ea are o putere de calcul ca a unui calculator obișnuit, dar care este capabilă să culeagă informații din mediu extern și să reacționeze la acestea. Toate plăcile Arduino au un lucru în comun: ele sunt programate prin intermediul limbajului de programare Arduino IDE. Acesta este software-ul în care se scrie codul și se încarcă pe placă. În afară de acest limbaj, există o mulțime de diferențe cum ar fi: numărul de intrări și ieșiri (cât de mulți senzori, LED-uri și butoane pot fi conectate pe o singură placă), viteza și tensiunea de operare sunt doar câteva dintre aceste diferențe. Unele plăci sunt proiectate fără nici o interfață de programare (hardware) pe care trebuie să o integrăm separat. Unele pot rula direct de la o baterie de 3.7V, altele au nevoie de cel puțin 5V.

Platforma de procesare de la Arduino Leonardo este o placă cu un microcontroler bazat pe Atmega32U4. Aceasta are 20 de pini setați ca pini digitali de intrare/ieșire, 7 dintre pini pot fi utilizați ca ieșiri PWM, iar 12 pini pot fi utilizați ca intrări analogice. Platforma funcționează la o frecvență de 16 MHz, are o conexiune micro USB, o mufă de alimentare și un buton de resetare. Aceasta conține tot ce este necesar pentru a sprijini microcontrolerul, doar trebuie conectat la un calculator cu un cablu USB sau o mufă de alimentare cu un adaptrr AC-DC sau se face alimentarea cu o baterie (7V-12V).

Cei 20 de pini setați ca pini digitali de intrare/ieșire de pe platforma Leonardo pot fi utilizați ca pini de intrare sau ieșire, utilizând următoarele funcții:

pinMode();

digitalWrite();

digitalRead().

Placa Leonardo diferă de toate plăcile precedente deoarece are la bază microcontrolerul ATmega32u4 printr-un USB de comunicare, eliminând necesitatea pentru un procesor secundar. Acest lucru face ca placa să fie mai versatilă: în plus față de sprijinirea unui port de interferență serial/COM, ea poate apărea la un calculator conectată ca un mouse sau ca o tastatură. Arduino are un suport mare deoarece are la bază un set extins de biblioteci care ajută la crearea proiectelor. Ardunino poate prelua informațiile de la o gamă variată de dispozitive cum ar fi senzorii, unde prelucrează informațiile primite prin intermediul microcontrolerului Atmega32U4, și transferă informațiile către ecranul de afișare, motoare, actuatoare. Pentru afișarea informațiilor preluate, există ecrane LCD pentru Arduino, începând cu cele mai simple LCD-uri cu 16 caractere până la ecrane grafice.

Software-ul Arduino este ușor de utilizat pentru începători, dar suficient de fexibil pentru utilizatorii avansați. Se rulează pe Mac, Windows și Linux față de alte platforme care sunt limitate doar la Windows.

Există mai multe platforme de dezvoltare cu microcontroler, însă Arduino are următoarele avantaje:

costuri de achiziție reduse – plăcile Arduino sunt mai ieftine față de alte platforme cu microcontroler;

mediu de programare simpu – este ușor de utilizat pentru începători, dar flexibil pentru avansați;

sursă deschisă pentru mediu de programare – disponibil pentru extinderea programatorilor avansați . Limba poate fi extinsă prin biblioteci C++ ;

sursă deschisă pentru placa de programare – designeri de circuit pot face propria versiune de plăcuță;

poate fi folosit pe orice sistem de operare.

Plăcile de dezvoltare Arduino sunt de mai multe tipuri, toate seamănă între ele fiindcă au elemente comune, cum ar fi: intrările/ieșirile digitale, intrările analogice și microcontrolerul.

Platforma de dezvoltare Arduino Leonardo are următoarele specificații:

Microcontroller (MCU) – este cel mai important element de pe placa de dezvoltare Arduino. Acesta este bazat pe microcontrolere AVR de diferite tipuri, fiecare dintre ele au funcții și caracteristici diferite;

Input voltage – reprezintă tensiunea de intrare pentru placa de dezvoltare. Placa este proiectată pentru o tensiune maximă între 6-20V, dar trebuie să se încadreze în domeniul de operare în siguranță 7-12V. Pentru a păstra tensiunea în limite ar fi bine de utilizat baterii Li-PO care livrează o tensiune de 3.7 V, orice placă care suportă tensinea de intrare de 3.7V poate fi alimentată cu baterii Li-Po;

Operating voltage – reprezintă tensiunea sistemului de dezvoltare, adică tensiunea la care microcontroler de fapt rulează. Acesta este un factor important pentru a proteja placa de tensiuni mari, deoarece nivelul de funcționare este 3.3V în loc de 5V;

Digital I / O Pins – reprezintă numărul de pini digitali de intrare / ieșire care sunt disponibili pe placa Arduino. Acești pini pot fi configurați fie ca o intrare sau ca o ieșire. Unii dintre aceștia sunt capabili să fie setați ca pini PWM, iar unii ca pini de comunicație serială dublă;

Analog Input – reprezintă numărul de pini de intrări analogice, care sunt disponibili pe placa Arduino. Pini analogici sunt etichetați prin litera "A" urmați apoi de numărul lor (0-5), aceștia permit citirea valorile analogice folosind convertorul analog-digital (ADC), care este încorporat în microcontrolerl ATmega. Intrările analogice pot fi de asemenea configurate și ca intrări digitale de intrare/ieșire;

PWM – reprezintă numărul de pini digitali de intrare/ieșire care sunt capabili să producă un semnal cu puls de modulare. Un semnal PWM este ca o ieșire analogică, și permite plăcii Arduino să transfere o tensiune analogică între zero și tensiunea sistemului;

UART – reprezintă numărul de linii de separare pe care îl suportă placa la comunicația serială. Pe cele mai multe placi Arduino, pinii digitale de intrare/ieșire 0 și 1 pot primi și trimite comunicația serială. Unele placi Arduino au mai multe UARTs și pot sprijini mai multe porturi seriale o dată. Toate plăcile Arduino au cel puțin un UART pentru programare;

Flash Space – reprezintă cantitatea de memorie a programului pe care cipul o are la dispoziție, pentru a stoca programul. Nu toată acestea memorie este disponibilă, deoarece o parte foarte mică este preluată de către placă (de obicei, între 0,5 și 2KB).

Interfața de programare – reprezintă conectarea plăcii Arduino la calculator pentru programare. Unele plăci au o mufă USB ca sistem de alimentare, astfel trebuie doar conectate la calculator Unele plăci nu au nevoie de un sistem hardware suplimentar pentru microcontrolere lor, deoarece au suport încorporat pentru USB;

Clock speed – reprezintă frecvența de lucru a microcontrolerului și este viteza cu care el poate executa comenzile. Deși există excepții rare, multe microcontrolere ATmega rulează la 3V și funcționează cu o frecvență de 8MHz, iar cele la 5V funcționează cu ofrecvență de 16MHz.

Microcontrolerul este un chip integrat care execută programe pentru controlul altor dispozitive. Este un dispozitiv micro de dimensiuni reduse, încorporat în diverse dispozitive, de aceea se numește "microcontroler".

În fig.2.3. avem reprezentată configurația pinilior unui microcontreoler Atmega32u4 care pot fi setați ca pini de intrare/ieșire.

Un microcontroller este un circuit realizat pe un singur chip care conține :

unitatea centrală;

generatorul de tact (la care trebuie adăugat din exterior un cristal de cuarț sau în aplicații mai puțin pretențioase, un circuit RC);

memoria volatilă (RAM);

memoria nevolatilă (ROM/PROM/EPROM/EEPROM);

dispozitive I/O seriale și paralele;

controller de întreruperi, controller DMA, numărătoare/temporizatoare (timers), convertoare A/D și D/A, etc.

Microcotrolerul este un dispozitiv care execută instrucțiunile la o viteză foarte rapidă.

Când se începe alimentarea cu energie electrică, oscilatorul de cuarț este activat de registrul de control logic. În primele câteva milisecunde, în timp e primele instrucțiuni sunt în desfășurare, condensatorii sunt încărcați.

Când nivelul de tensiune atinge valoarea maximă și frecvența oscilatorului de cuarț devine stabilă, începe procesul de scriere a biților pe registrele de funcții speciale (SFR). Totul se întâmplă în funcție de ceasul oscilatorului și atunci începe să funcționeze circuitul electronic. Toate aceste instrucțiuni durează foarte puține nano secunde.

După executarea unei instrucțiuni, adresa contorului de programe este incrementată cu 1 și trimite astfel adresa următoarei instrucțiuni către decodorul de instrucțiuni și se execută

instrucțiunile următoare.

Microcontrolerul este compus din cinci elemente de bază: unitate de intrare, unitate de memorie, unitate aritmetică și logică, unitate de control și unitate de ieșire.

Unitatea de control împreună cu unitatea aritmetică și logică compun împreună unitatea centrală de prelucrare (UCP). Unitățile de intrare și ieșire vor fi tratate împreună și vor fi referite prescurtat ca sistem I/O.

Blocurile componente ale microcontrolerului sunt legate între ele printr-o magistrală internă (bus). Magistrala vehiculează semnale de adresă, de date și semnale de control. Mărimea acestor magistrale constituie una dintre caracteristicile cele mai importante ale unui microcontroler.

Prin magistrala de adrese unitatea centrală de prelucrare (UCP) selectează o locație de memorie sau un dispozitiv I/O, iar pe magistrala de date se face schimbul de informație între UCP și memorie sau dispozitivele I/O.

Între UCP și memorie sunt transferate atât date cât și instrucțiuni. Acestea se pot transfera pe o singură magistrală de date sau pe magistrale de date dierite.

În tabelul 2.1. este prezentată semnificația celor 44 de pini de conectare a microcontrolerului la platforma Arduino.

Tabelul.2.1. Semnificația pinilor microcontrolerului

Utilizarea microcontrolerelor a crescut rapid, deoarece acestea sunt folosite în aproape toate echipamentele electronice.

Avantajele utilizarii acestora sunt:

microcontrolerele sunt ieftine și foarte mici, astfel încât acestea pot fi încorporate pe orice dispozitiv;

programarea microcontrolerelor nu este complicată și este ușor de învățat;

se poate simula pe calculator pentru a vedea rezultatele practice ale programului.

Pinii de conectare a microcontrolerului au următoarele funcții:

VCC – reprezintă tensiune de alimentare digitală;

GND – împământarea;

Portul B (PB7..PB0) – portul B este un port bidirecțional I/O pe 8 biți cu rezistențe interne de tracțiune (selectate pentru fiecare bit). Pinii de ieșire a portului B au caracteristici simetrice de antrenare, cu capacitate și cu sursă ridicată. Pinii de intrare a portului B extrag din exterior o sursă de curent dacă sunt activate rezistențele de tracțiune. Portul B are capacități de conducere mai bune decât celelalte porturi;

Portul C (PC7, PC6) – portul C este un port bidirecțional I/O pe 8 biți cu rezistențe interne de tracțiune (selectate pentru fiecare bit). Ieșirile portului C au caracteristici simetrice de antrenare cu capacitate și sursă ridicată. Pinii de intrare a portului C extrag din exterior o sursă de curent dacă sunt activate rezistențele de tracțiune. Numai biții 6 și 7 sunt prezenți pe dispozitivul de identificare a produsului;

Portul D (PD7..PD0) – portul D este un port bidirecțional I/O pe 8 biți cu rezistențe interne de tracțiune (selectate pentru fiecare bit). Pinii de ieșire a portului D au caracteristici simetrice de antrenare, cu capacitate și cu sursă ridicată. Pinii de intrare a portului D extrag din exterior o sursă de curent dacă sunt activate rezistențele de tracțiune;

Port E (PE6,PE2) – portul E este un port bidirecțional I/O pe 8 biți cu rezistențe interne de tracțiune (selectate pentru fiecare bit). Ieșirile portului E au caracteristici simetrice de antrenare cu capacitate și sursă ridicată. Pinii de intrare a portului E extrag din exterior o sursă de curent dacă sunt activate rezistențele de tracțiune. Numai biții 6 și 2 sunt prezenți pe dispozitivul de identificare a produsului;

Portul F (PF7..PF4, PF1, PF0) – portul F servește ca pini de intrări analogice pentru convertorul A/D. Portul F servește, de asemenea, ca un port bidirecțional I/O pe 8 biți, dacă converotul A/D nu este utilizat. Ieșirile portului F au caracteristici simetrice de antrenare cu o capacitate și sursă ridicată. Pinii de intrare a portului F extrag din exterior o sursă de curent dacă sunt activate rezistențele de tracțiune. Numai biții 2 și 3 nu sunt prezenți pe dispozitivul de identificare a produsului. Portul F servește, de asemenea, funcțiile interfeței JTAG. Dacă interfața JTAG este activată, rezistențele de tracțiune pentru pinii PF7 (TDI), PF5 (TMS) și PF4 (TCK) vor fi activate chiar dacă se produce o resetare;

D- – port USB cu viteză maximă / viteză mică negativă în amonte. Se conectează la pinul conectorului D cu o rezistență în serie de 22Ω.

D+ – port USB cu viteză maximă / viteză mică pozitivă în amonte. Se conectează la pinul conectorului D cu o rezistență în serie de 22Ω.

UGND – pinul de împământare a USB-ului;

UVCC – regulator intern pentru tensiunea de alimentare de intrare a USB-ului;

UCAP – regulator intern pentru tensiunea de alimentare de ieșire a USB-ului, este conectat la un condensator extern (1μF);

VBUS – pin pentru a monitoriza intrarea USB-ului;

RESET – pin pentru a reseta intrarea. Un nivel scăzut al acestui pin mai mare decât lungimea minimă a impulsului va genera o resetare, chiar dacă ceasul nu funcționează. Impulsurile mai scurte nu sunt pentru a genera o resetare;

XTAL 1 – este pinul de intrare de la amplificatorul oscilator inversor și intrare la ceasul intern din circuit de operare;

XTAL 2 – este pinul de ieșire de la amplificatorul oscilator inversor;

AVCC – este pinul de intrare a tensiunii de alimentare pentru convertorul A/D. Dacă convertorul A/D nu este utilizat, acesta ar trebui să fie conectat extern la VCC. Dacă se utilizează, ar trebui să fie conectat la VCC printr-un filtru;

AREF – este pin de intrare analogic de referință pentru convertorul A/D.

Platforma Arduino conține și un convertor analog-digital cu 6 pini de intrare, acești pini sunt dirijați către convertorul analog-digital prin intermediul unui multiplexor, ceea ce înseamnă ca acesta nu poate face decât o singură măsurare analogică.

Convertorul transformă o tensiune analogică de pe un pin analogic într-un număr digital. Nu orice pin de pe un microcontroler are capacitatea de a face această conversie analog-digitală.

Pe placa Arduino, acești pini au un "A" în fața etichetei lor (A0 -A5) , de pe acești pini se pot citi tensiuni analogice.

Există moduri diferite de a realiza acest lucru, dar una dintre cele mai comune tehnici utilizează o tensiune analogică pentru încărcarea unui condensator intern și apoi măsoară timpul de descărcare de pe o rezistență internă.

Microcontrollerul monitorizează numărul de cicluri de ceas care trec înainte ca condensatorul să se descarce. Acest număr de cicluri este numărul care este returnat de către convertorul analog digital, pentru conversia tensiunii este nevoie doar de un singur ciclu de ceas. În loc de a folosi un contor binar, convertorul analog digital folosește o serie de comparatoare care toate arată aceeași tensiune de intrare, dar fiecare comparare dintre ele diferă foarte puțin și poartă numele de scară de tensiune liniară.

Conține memorie, periferice programabile de intrare / ieșire, precum și un procesor. Microcontrolerele sunt destinate în majoritate aplicațiilor încorporate și sunt utilizate în mare măsură în dispozitive electronice controlate automat

Ieșirile comparatoarelor sunt introduse în elementele logice digitale, pentru a crea conversia numărului digital instantaneu. Un comparator este un element de circuit simplu care compară două intrări analogice – în cazul în care o intrare are o tensiune mai mare decât cealaltă tensiune de intrare, ieșirea digitală este 1, în caz contrar ieșirea digitală este 0.

Comparatorul binar crește tensiunea pe fiecare ciclu de ceas până când tensiunea este mai mare ca cea de la intrarea analogică, comparatorul se declanșează pentru a opri ciclul de ceasul și deține valoarea de conversie digitală.

Convertorul analog digital de 10 biți poate detecta de la 0 la 1023 de niveluri analogice. În timp ce funcția principală a pinilor analogici este citirea senzorilor, pinii analogici de la 0-13 pot fi utilizați ca pini de intrare/ieșire. Prin urmare, dacă un utilizator are nevoie de mai mulți pini de intrare/ ieșire, iar pinii analogici nu sunt în uz, ei pot fi utilizați pentru citirea semnalelor logice digitale sau pentru afișarea de nivele logice digitale

Microcontrolerele sunt capabile să detecteze doar semnale digitale: prin semnal digital se înțelege dacă este apăsat butonul sau nu. Atunci când un microcontroler este alimentat de la 5V el înțelege 0V, în binar însemnând 0 și 5V în binar însemnând 1.

Semnalul analogic este un semnal care variază, iar senzorul analogic de 5V poate avea o tensiune de ieșire de 0.01V sau 4.99V sau orice altă valoare.

Toate microcontrolerele au încorporat un dispozitiv în ele, prin intermediul căruia pot să convertească aceste tensiuni în valori pe care le putem utiliza într-un program pentru a lua o decizie.

Valoarea unui semnal digital poate fi calculat cu ajutorul acestei formule:

(2.1)

unde:

VIN – este tensiunea analogică de intrare;

VREF – tensiunea de alimentare.

Pinii operează la o tensiune de 5V. Fiecare pin poate furniza sau primi un curent de maxim 40 mA și are o rezistență de 20-50 kOhms. În plus, unii pini au funcții speciale și acestea sunt:

(serial) RX – este un pin serial utilizat pentru recepția datelor seriale asincrone (intrare-Tx);

(serial) TX – este un pin serial care este utilizat pentru trimiterea datelor asincrone (ieșire –Tx);

GND – împământare;

AREF – Analog REFerence pin – este utilizat pentru tensiunea de referință pentru intrările analogice cu funcția analogReference();

SDA – comunicare I2S;

SCL – comunicare I2S;

Vin – este intrarea pentru o tensiune din sursă externă (input Voltage);

5V – tensiunea de ieșire pentru componentele montate la Arduino. Scoate 5V dacă placa este alimentată corect cu tensiune între 7 și 12 V;

3.3V – tensiunea de ieșire pentru piesele și senzorii care se alimentează la această tensiune. Tensiunea de ieșire este 3.3 V și maxim 50 mA;

RESET – acest pin se setează pe LOW pentru a reseta controlerul de la Arduino;

IOREF – este folosit de unele shield-uri ca referință pentru a se comuta automat la tensiunea furnizată de pe placa Arduino (5 V sau 3.3 V) (Input/Output Refference Voltage);

PWM: 3, 5, 6, 9, 10, 11 și 13 – furnizează 8 biți de ieșire pe PWM cu funcția analogWrite ();

întreruperea alimentarii externe se face cu pinii: 3 (întrerupe 0), 2 (întrerupe 1), 0 (întrerupe 2), 1 (întrerupe 3) și 7 (întrerupe 4)- acești pini pot fi configurați pentru a declanșa o întrerupere pe o valoare scăzută, sau pentru modificarea valorii, cu funcția attachInterrupt();

pin-ul 13 este pin LED – există conectat un LED digital integrat în contactul 13, atunci când contactul are o valoare înaltă, led-ul este aprins, iar când contactul are o valoare scăzută, led-ul este oprit;

A0-A5, A6 – A11 (4, 6, 8, 9, 10 și 12 pe pinii digitali) – sunt intrări analogice etichetate prin A0- A11, care pot fi de asemenea utilizate ca pini de intrare/ieșire, fiecare intrare analogică asigură pinii pe 10 biți, adică 1024 de valori diferite.

Leonardo are o serie de facilități pentru a comunica cu un calculator, un alt Arduino, sau cu alte microcontrolere. Microcontroletul ATmega32U4 prevede o tensiune de (5V) cu o comunicație serială, care este disponibilă pe pinii digitali 0 (Rx) și 1 (Tx). Microcontrolerul ATmega32U4 permite de asemenea o comunicare serială prin USB și apare ca un port virtual COM pentru software-ul de pe computer. Chip-ul, de asemenea, acționează ca un dispozitiv plin de viteză USB 2.0, folosind driverele USB standard COM. Pe Windows este necesar un fișier (.inf).

Software-ul Arduino include și un monitor serial care permite afișarea unor date simple textuale să fie transmise de la placa Arduino către monitor. LED-urile Rx și Tx de pe bord luminează atunci când datele sunt transmise prin intermediul conexiunii USB către calculator (dar nu și pentru comunicația serială pentru pinii 0 și 1). Biblioteca SoftwareSerial permite comunicarea serială pe oricare dintre pinii digitali ai plăcii Leonardo. ATmega32U4 sprijină de asemenea, și comunicarea prin I2C (TWI) și comunicare SPI. Software-ul Arduino include o bibliotecă pentru a simplifica utilizarea magistralei I2C și pentru comunicare SPI .

Platforma Leonardo apare ca o tastatură generică sau ca un mouse, și poate fi programată pentru a controla aceste dispozitive de intrare.

Placa de procesare Leonardo este proiectată într-un mod care îi permite să fie resetată prin software-ul care îl rulează pe un calculator conectat, decât să solicite o apăsare fizică a butonului de resetare înainte de o încărcare. Resetarea este declanșată atunci când portul serial virtual COM este deschis și apoi închis. Atunci când se întâmplă acest lucru, procesorul va reseta platforma, datorită întreruperii conexiunii USB la calculator, ceea ce înseamnă că portul serial virtual COM va dispărea. După ce se reseteaza procesorul, placa rămâne activă timp de aproximativ 8 secunde. Placa poate fi, de asemenea, inițiată prin apăsarea butonului de reset direct de pe Leonardo. Înainte de încărcarea programului, resetarea ar fi mai bine să fie efectuată direct din software-ul Arduino. În cazul în care software-ul nu poate reseta programul, atunci se poate utiliza butonul de reset de pe placă.

Placa Leonardo are o siguranță resetabilă care protejează porturile USB ale calculatorului de scurtcircuit și suprasarcină. Cu toate că majoritatea calculatoarelor furnizează propria lor protecție internă, această siguranța este un avantaj suplimentar de protecție. În cazul în care apare un curent mai mare de 500 mA la portul USB-ului, siguranța se va rupe în mod automat până va apărea scurtcircuitul sau suprasarcina.

Platforma de dezvoltare Leonardo are lungimea maximă de 2.7 inch și o lățime de 2.1 inch, cu mufă de conectare a USB-ului. Placa conține 4 orificii pentru șuruburi care permit plăcii să fie atașată pe o suprafață. Distanța dintre pinii digitali 7 și 8 este de 160 mil(0,16 "), nici măcar un multiplu al distanței de 100 mil față de celelalte ace.

În figura de mai jos avem reprezentată schema bloc a sistemului pentru măsurarea deplasării unghiulare a coloanei de direcție.

Pentru măsurarea deplasării unghiulare a coloanei de direcție, la platforma de procesare Arduino Leonardo se conectează un accelerometru, un senzor Hall și un motor prin intermediul shield-ului de conectare, acesta fiind alimentat de la o baterie externă. Placa Arduino are capacitatea de a comunica cu elementele din mediu extern prin intermediul microcontrolerului, ea preia toate informațiile, le prelucrază și le afișează pe display. Pentru a măsura unghiul de deplasare a coloanei de direcție se folosește accelerometrul.

În funcție de rotația accelerometrului pe un interval de la 0-90°, motorul este programat să se rotească astfel:

când unghiul accelerometrului este <40° motorul se rotește în stânga;

când unghiul accelerometrului este pe intervalul 40°-50 ° motorul nu se rotește;

când unghiul accelerometrului este >50° motorul se rotește în dreapta.

Motorul este conectat la Arduino prin shield-ul de conectare a motorului. Motorul se alimentează de la o baterie externă cu o tensiune de 9-12V. Pe axul motorului este amplasat un magnet, senzorul Hall este plasat în apropierea acestuia și detectează numărul de turații și transmite informațiile către placa Arduino.

Platforma Arduino prelucrează infomațiile prin intermediul microcontrolerului, și transferă datele pentru a fi afișate pe display. Pe display se va afișa unghiul de deplasare a accelerometrului, turația și direcția de rotație a motorului. Aceste date vor fi apoi transmise unității UCH pentru a fi folosite de sistemul anti-derapaj și de controlul asistat a direcției.

2.2. Prezentarea elementelor componente ale sistemului

Pentru măsurarea deplasării unghiulare a coloanei de direcție se folosesc următoarele elementele componente:

un accelerometru ADXL335;

un senzor Hall;

un motor;

un shield pentru conectarea motorului;

un ecran de afișare LCD 16×2;

2.2.1. Prezentarea accelerometrului ADXL 335

Accelerometrele sunt dispozitive care măsoară accelerația și nivelul de schimbare a vitezei unui obiect. Accelerometrele măsoară în (m / s2) sau în forțe gravitaționale G (g). O forță gravitațională este echivalentă cu g=9,8 m/s2.

Accelerometrele sunt utile pentru detectarea vibrațiilor în sisteme sau pentru aplicații de orientare.

ADXL335 este un accelerometru de dimensini mici, conține 3 axe care condiționează ca semnal de ieșire o tensiune. Accelerometrul măsoară accelerația pe un interval ± 3g pe o scală de 6g. Acesta poate măsura accelerația statică a gravitației în aplicații de detectare a înclinării, precum și accelerarea dinamică rezultată din mișcare, șoc sau vibrații.

Utilizatorul selectează lățimea de bandă a accelerometrului folosind condensatorii CX, CY, CZ ai pinilor XOUT, YOUT și ZOUT.

Lățimile de bandă înseamnă de câte ori poate fi citit un accelerometru, ele pot fi selectate pe un interval de 0,5 Hz la 1600 Hz pentru axele X și Y, și pe intervalul de 0,5 Hz la 550 Hz pentru axa Z. Există mai multe tipuri de accelerometre, cu o axă, două, dar cele mai des întâlnite sunt accelerometrele cu trei axe.

Specificațiile accelerometrului sunt:

ADXL335 este un accelerometru cu o axă triplă, cu zgomot extrem de redus și cu consumul de energie de 320uA. Curentul necesar de obicei, se încadrează în micro sau în intervalul de miliA. Prin măsurarea accelerației datorită gravitației, un accelerometru își poate da seama dacă unghiul este înclinat în raport cu pământul.

Prin detectarea accelerației, accelerometru poate afla în ce direcție și cât de repede dispozitivul se află în mișcare.

Accelerometru este foarte ușor de utilizat la un Arduino, prin intermediul micro-controlerului se poate citi accelerația prin conectarea celor 3 pini de intrare analogică.

Circuitul se conectează astfel:

Arduino 3.3 V se conectează la ADXL335 VCC;

Arduino GND se conectează la ADXL335 GND;

Arduino A0 se conectează la ADXL335 X;

Arduino A1 se conectează la ADXL335 Y;

Arduino A2 se conectează la ADXL335 Z.

ADXL335 este foarte ușor de utilizat, este un accelerometru analogic capacitiv, ceea ce înseamnă că transmite informația către placa Arduino sub forma unui semnal analogic. Tensiunea accelerometrului este direct proporțională cu accelerația.

Semnalul de ieșire analogic al accelerometrului are nevoie de deplasare, amplificare și filtrare. Accelerometru poate avea tensiunea de ieșire pozitivă sau negativă, în funcție de direcția accelerației. De asemenea, semnalul este continuu și proporțional cu forța de accelerație. Ca și în cazul oricărui senzor destinat unui convertor analog digital, valoarea trebuie să fie scalată și amplificată pentru a întinde la maximum intervalul de lucru.

Accelerometrele pot comunica cu Arduino printr-o interfață de comunicare. Accelerometrele cu o interfață digitală pot comunica fie prin SPI sau protocoale de comunicație I2C.

Accelerometru conține un sistem de reglare a tensiunii, care permite alimentarea cu o tensiune de la 3 V la 6 V în cc. Pentru condenatoarele de 0.1uF se setează lățimea de bandă a fiecărei axe la 50Hz.

Pentru majoritatea aplicațiilor, un singur condensator de 0,1 pF, plasat aproape de pinii de alimentare decuplează în mod adecvat accelerometru de la zgomot pe sursa de alimentare. Cu toate acestea, în aplicațiile în care zgomotul este prezent la frecvența 50 kHz, este necesară o putere suplimentară de aprovizionare, deoarece acest zgomot poate cauza erori în măsurarea accelerației. Dacă este necesară decuplarea suplimentară, un rezistor de 100 Ω (sau mai mici) pot fi introduse în conducta de alimentare.

Conexiunea de împământare a accelerometrului la sol trebuie să aibă o impedanță scăzută, deoarece zgomotul transmis prin sol are un efect similar și pot apărea erori de măsurare.

Există mai multe principii pe care un accelerometru analogic poate fi construit. Există două tipuri de accelerometre care se utilizează foarte frecvent, și anume prin senzor capacitiv sau prin efectul piezoelectric.

În general, accelerometrele conțin plăci capacitive în interior. Unele dintre acestea sunt fixate, în timp ce altele sunt atașate la arcuri minuscule, care se deplasează în interior ca forțe de accelerație și acționează asupra senzorului. Deoarece aceste plăci se deplasează una în raport cu cealaltă, capacitatea dintre ele se schimbă. Accelerația poate fi determinată prin aceste schimbări de capacitate cum este și în cazul accelerometrului ADXL335. Alte accelerometre conțin materiale piezoelectrice. Aceste mici structuri de cristal generează o sarcină electrică de ieșire atunci când sunt plasate sub stres mecanic (de exemplu, accelerație).

Accelerometrele care implementează un senzor capacitiv, depind de distanța dintre două suprafețe plane măsurate ca o tensiune de ieșire. Una sau ambele plăci se încarcă cu un curent electric. Modificarea diferenței distanței dintre plăci, modifică capacitatea electrică a sistemului, care poate fi măsurată ca o tensiune de ieșire. Această metodă de detectare este cunoscută pentru o precizie bună și stabilitate ridicată. Accelerometrele capacitive sunt, de asemenea, mai puțin predispuse la zgomot și la variația cu temperatura, în mod tipic disipă mai puțină putere, și pot avea lățimi de bandă mai mari din cauza circuitului intern.

Accelerometrele capacitive convertesc accelerația într-o schimbare de capacitate. Atunci când accelerația este aplicată accelerometrului, masa seismică se învârte din poziția de repaus și modifică capacitatea dintre masă și electrozii conductivi staționari printr-un spațiu îngust. Un circuit electronic poate măsura cu ușurință această schimbare a capacității.

O altă proprietate importantă a accelerometrelor capacitive este disiparea redusă a puterii lor, precum și structura lor simplă. Cu toate acestea, un dezavantaj al accelerometrelor capacitive este sensibilitatea lor la interferența electromagnetică, deoarece nodurile au o impedanță ridicată, abordând necesitatea de ambalare de înaltă calitate și ecranare atât a senzorului, cât și a circuitului de citire.

În concluzie, majoritatea cercetărilor privind accelerometrele se bazează pe accelerometrele capacitive, deoarece oferă o sensibilitate ridicată, un zgomot redus și o dependență scăzută la temperatură, făcându-le atractive pentru zonele în care este necesară o performanță ridicată.

Accelerarea prin efect piezoelectric este naturală, deoarece accelerația este direct

proporțională cu forța. Ea apare atunci când anumite tipuri de cristal sunt comprimate, încarcate cu polaritate pe laturile opuse ale cristalului. Acest lucru este cunoscut sub numele de efect piezoelectric. Într-un accelerometru piezoelectric, încărcarea se acumulează pe cristal și este transferată și amplificată ca o tensiune sau ca un curent de ieșire. Accelerometrele piezoelectrice se bazează pe efectul piezoelectric al cristalelor de cuarț sau ceramice pentru a genera o ieșire electrică proporțională cu accelerația aplicată.

Efectul piezoelectric produce o acumulare opusă a particulelor încărcate pe cristal. Această sarcină este proporțională cu forța sau stresul aplicat. O forță aplicată într-o structură cu cristale de cuarț modifică alinierea ionilor pozitivi și negativi, ceea ce duce la acumularea acestor ioni încărcați pe suprafețele opuse. Acești ioni încărcați se acumulează pe un electrod care în cele din urmă este condiționat de microelectronica tranzistorului.

Suma totală a sarcinii acumulate este proporțională cu forța aplicată, iar forța aplicată este proporțională cu accelerația. Electrozii colectați și cablurile transmit încărcătura unui dispozitiv de condiționare a semnalului care poate fi la distanță sau încorporat în accelerometru.

Modurile de încărcare necesită condiționarea de la distanță sau de la distanță a semnalului. Odată ce încărcarea este condiționată de electronica de condiționare a semnalului, semnalul este disponibil pentru afișare, înregistrare, analiză sau control.

În comparație cu alte tipuri de senzori, accelerometrele piezoelectrice au avantaje importante:

au o gamă dinamică extrem de largă, zgomot de ieșire redus – potrivit pentru măsurare vibrațiilor sau a șocurilor;

gamă largă de frecvențe;

este compact dar extrem de sensibil;

varietate mare de modele disponibile;

semnalul de accelerație poate fi integrat pentru a oferi viteză și deplasare;

Accelerometrele piezoelectrice alternative răspund doar la fenomene cum ar fi vibrațiile sau șocul. Acestea au o gamă largă, dinamică, dar pot fi costisitoare, în funcție de calitatea acestora.

Accelerometrele se utilizează pe mai multe dispozitive datorită consumului mic de energie. Telefoanele mobile, calculatoarele și mașinile de spălat conțin acum accelerometre. Există o serie de aplicații practice unde se utilizează accelerometre și acestea sunt:

se utilizează în aplicații cu jocuri de înclinare;

pentru stabilizarea imaginii;

pe dispozitive mobile pentru rotirea automată a ecranului;

pentru măsurarea vibrațiilor;

pentru a măsura accelația dinamică și statică;

în aplicații industriale;

în industria automobilelor.

2.2.2. Prezentarea senzorului Hall

Deplasarea este o mărime ce caracterizează schimbările de poziție ale unui corp față de un sistem de referință, și ea este unghiulară atunci când corpul execută o mișcare circulară în jurul unui punct fix. Traductoarele folosite la deplasări unghiulare transformă o deplasare unghiulară într-o variație a unui element pasiv de circuit electric. Traductoarele pentru măsurarea deplasării unghiulare au la bază efectul Hall. Acest efect constă în apariția unui câmp electric transversal într-un metal sau semiconductor, care este parcurs de un curent electric într-un câmp magnetic.

Senzorul Hall furnizează o tensiune de ieșire proporțională cu câmpul magnetic. Curentul electric ce parcurge materialul semiconductor este influențat de câmpul magnetic. Asupra electronilor este exercitată o forță de către liniile de flux magnetic, ei sunt deviați către o extremitate a semiconductorului, în funcție de intensitatea și direcția liniilor de câmp. Această deviere de electroni produce o diferență de potențial numită tensiune Hall.

Elementele componene ale senzorului Hall sunt:

B – inducția câmpului magnetic;

UA – tensiunea de alimentare;

IA – curentul electric de alimentare;

UH – tensiunea Hall măsurată.

În forma sa cea mai simplă, senzorul funcționează ca un traductor analogic, returnînd direct o tensiune. Într-un câmp magnetic cunoscut, distanța acestuia față de senzorul Hall poate fi determinată prin utilizarea mai multor grupe de senzori, care pot deduce poziția relativă a magnetului.

Senzorii Hall sunt senzori activi, care necesită alimentarea cu energie electrică și au cel puțin 3 pini:

Pentru tensiunea de alimentare, UA (intrare);

Pentru masă;

Pentru tensiunea Hall, UH (ieșire).

Senzorii de tip Hall sunt senzori digitali și analogici, produc ca tensiune de ieșire doar două valori 0V și +5V. Senzorii au integrate amplificatoare electronice și circuite de reglare cu ajutorul cărora pot crește tensiunea în jur de +5V.

În industria automobilelor, senzorii cu efect Hall sunt foarte utilizați, deoarece sunt stabili la perturbații, ieftini și asigură o bună funcționare.

Senzorii Hall în diverse aplicații din industrie sunt utilizați ca senzori:

pentru determinarea turației motorului;

pentru determinarea poziției arborelui cu came;

pentr pentru determinarea turației cutiei de viteze;

pentru determinarea unghiului da avans și a timpilor de injecție;

pentru determinarea vitezei la roată (ABS/ESP).

Un senzor cu efect Hall poate funcționa ca un comutator electronic și are următoarele avantaje:

un astfel de comutator costă mai puțin decât un comutator mecanic și este mult mai sigur;

acesta poate fi operat până la o frecvență de 100 kHz.

acesta poate fi utilizat în condiții severe,deoarece este într-un pachet sigilat.

În cazul senzorului liniar (pentru măsurătorile intensității câmpului electromagnetic, magnetic), un senzor cu efect Hall:

poate măsura o gamă largă de câmpuri magnetice;

poate măsura câmpuri magnetice fie polul nord sau polul sud;

poate fi plat.

.

Conectarea senzorului Hall la Arduino se face astfel:

Pinul VCC al senzorului se conectează la pinul de 5V la Arduino;

Pinul GND al senzorului se conectează la pinul GND la Arduinno;

Pinul OUT al senzorului se conectează la pinul digital 7 la Arduino.

2.2.3. Prezentarea motorului de curent continuu

Pentru a determina turația motorului pe axul său se montează un magnet. Senzorul hall se va poziționa în apropiere magnetului pentru a determina numărul de turații.

Motorul de curent continuu este un motor destul de simplu, electric care utilizează energie electrică și un câmp magnetic pentru a produce un cuplu, ceea ce îl face să pornească. Motorul conține doi magneți de polaritate opusă și o bobină electrică, care acționează ca un electromagnet.

Curentul din bobină este furnizat prin intermediul a două perii care fac contactul în mișcare cu un inel despărțitor. Bobina se află într-un câmp magnetic constant. Forțele exercitate asupra firelor care transportă curent creează un cuplu pe bobină. Forțele electromagnetice ale magneților furnizează cuplul care determină pornirea motorului.

Un motor de curent continuu necesită cel puțin un electromagnet, care comută curentul ca motorul să pornească, astfel se schimbă polaritatea și el își continuă funcționarea. Celălalt magnet poate fi magnet permanent sau alte electromagnete. De multe ori, electromagnetul este amplasat în centrul motorului și se transformă în magneți permanenți.

Motorul de curent continuu are următoarele caracteristici:

Construcția motorului de curent continuu conține o armătura de transport care este conectată la capătul de alimentare prin segmentul de comutator și perii. Armatura este plasată între polii nord-sud al unui magnet permanent sau a unui electromagnet așa cum este reprezentat în fig.2.10.

Motoarele de curent continuu sunt cele mai simple de utilizat. Un fir al motorului se alimentează cu o tensiune de la o baterie de 9-12V, iar unul se conectează la împământare și motorul pornește. Acestea sunt cele mai utilizate în situații în care se necesită forță sau viteză.

Viteza și cuplul motorului depind de tensiunea motorului. Viteza poate fi controlată printr-un impuls cu modulație, în cazul în care puterea poate fi oprită și pornită rapid pentru a priva motorul de putere și al face să se miște mai lent.

În cazul în care se utilizează un shield de conectare există posibilitatea de a activa comutatorul și opri prin intermediul lui Arduino.

Atunci când un motor se conectează la Arduino, motorul va necesita o sursă externă de alimentare, deoarece platforma Arduino poate furniza o tensiune de ieșire între 3.3 și 5V. Pentru a controla și conecta motorul la Arduino , acesta se poate conecta prin intermediul unui shield. Motorul de curent continuu nu are nici un circuit intern, de aceea pentru a schima direcția de mers el va avea nevoie de o punte H. În esență, o punte citește o altă intrare pentru a comuta la împământare și tensiunea de alimentare 5V, schimbând direcția motorului.

După cum se observă în fig.2.11. pentru conectarea motorului la placa Arduino este necesară folosirea unei punți H, ea are rolul de a controla viteza și direcția motorului. Prin intermediul ei motorul este alimentat și începe să se rotească după cum este proiectat în Arduino. Într-un circuit puntea H, poate conduce un curent în oricare polaritate, și îl controlează printr-un impuls cu modulație (PWM). Modulația este un mijloc de a controla durata unui puls electronic.

Motoarele sunt evaluate la anumite tensiuni, și pot fi deteriorate dacă tensiunea aplicată este mai mare, sau în cazul în care aceasta este scăzută rapid pentru a încetini motorul în jos. Astfel prin controlul motorului cu impuls prin modulație, acesta va avea o durabiltate de funcționare mai mare.

Shield-ul pentru conectarea motoarelor are următoarele specificații:

Tensiunea de alimentare a motoarelor este între 5V – 35V;

Tensiunea de funcționare pe circuitele logice este de 5V;

Curentul de parcurgere a motoarelor este de max 2A;

Curentul de parcurgele pe circuitele logice este de 36mA;

Frecvență maximă prin impuls cu modulație este de 40kHz;

Putere maximă este de 25W;

Dimensiuni: 43 x 43 x 26mm;

Greutatea este de 26g.

Pinii de conectarea a shield-ului la Arduino au următoarele funcții:

Out 1: permite rotirea motorului A;

Out 2: permite rotirea motorului A;

Out 3: permite rotirea motorului B;

Out 4: permite rotirea motorului B;

GND: împământare;

5V:tensiunea de alimentare este de 5V (în cazul în care sursa de alimentare este între 7V-35V, atunci aceasta poate acționa ca o tensiune de 5V);

ENA: acceptă semnalul PWM pentru motor A;

ENB: acceptă semnalul PWM pentru motor B;

IN1: permite controlul direcției motorului A;

IN2: permite controlul direcției motorului A;

IN3: permite controlul direcției motorului B;

IN4: permite controlul direcției motorului B.

Toate aceste componente descrise anterior, transferă informațiile citite de pe senzori sau motoare către platforma Arduino. Platforma prelucrează datele cu ajutorul microcontrolerului și le afișează pe un display.

2.2.4. Prezentarea ecranului de afișare LCD 16×2

Ecranul este destinat pentru afișare textului, el are o iluminare în spate cu LED-uri și poate afișa pe două rânduri, cu până la 16 caractere pe fiecare rând. El este construit dintr-o celulă cu cristale lichide într-un strat subțire, dintr-un cristal lichid înserat între două foi de sticlă, cu electrozi transparenți, depuși pe fețele lor interioare.

LCD-ul nu produce o iluminare proprie, el depinde în totalitate de iluminare care cade pe el dintr-o sursă externă pentru efectul său vizual.

Principiul de bază din spatele moleculelor cu cristale lichide este că, atunci când ele sunt parcurse de un curent electric, ele tind să se răsucească. Această răsucire determină o modificare a unghiului filtrului de polarizare.

Primul filtru va fi polarizat în mod natural pentru că lumina lovește la început. Astfel, lumina trece prin fiecare strat și este ghidată cu ajutorul moleculelor. Atunci când se întâmplă acest lucru, moleculele tind să schimbe planul de oscilație a luminii pentru a se potrivi cu propriul lor unghi. Atunci când lumina ajunge în partea îndepărtată a moleculelor cu cristale lichide, oscilează la același unghi ca și stratul final al moleculelor.

Lumina poate să intre numai în cazul în care al doilea filtru de sticlă polarizat este la fel ca stratul final. Acest lucru duce la o schimbare a unghiului de lumină care trece prin ele.

Astfel este permisă trecerea luminii prin acea zonă specială de LCD și zona devine mai închisă în comparație cu altele.

Ecranul LCD este un modul de afișaj electronic și are o gamă largă de aplicații. Motivele fiind: ecranele sunt economice, ușor de programat, nu au nici o limitare în afișarea cu caractere, animații și așa mai departe. Un LCD 16×2 înseamnă că poate afișa 16 caractere pe 2 linii.

Ecranul conține 2 registre, unu de comandă și unul de date. Registrul de comandă stochează instrucțiunile de comandă de pe ecranul LCD. O comandă este o instrucțiune dată de LCD pentru a face o sarcină, cum ar fi inițializarea, ștergerea datelor de pe ecranul său, stabilind poziția cursorului, controlul de afișare etc. Registrul de date stochează datele care urmează să fie afișate pe ecranul LCD-ului. Datele sunt bazate pe sistemul de codificare a caracterului care urmează să fie afișat pe ecranul LCD-lui.

Funcționarea pinilor ecranului de afișare:

Tabelul.2.3. Pinii de conectare a unui LCD Arduino

Conectarea în paralel a display-ului la placa Arduino folosește librăria LiquidCristal. Libraria LiquidCrystal folosește modul de comunicație cu numai 4 pini, prin urmare vom conecta pinii D4-D7 ai LCD-ului la pinii D5-D2 de pe placa Arduino, ceilalți fiind lăsați neconectați:

LCD D4 (11) — Arduino D5;

LCD D5 (12) — Arduino D4;

LCD D6 (13) — Arduino D3;

LCD D7 (14) — Arduino D2;

În figura de mai jos avem reprezentată schema de conectare a LCD-ului la platforma de procesare Arduino Leonardo.

Display-ul se poate conecta la Arduino astfel:

Arduino 5V se conectează la pinul 1 al potențiometru;

Arduino GND se conectează la pinul 3 al potențiometru;

Pinul 2 al potențiometrului se conectează la pinul 3 VEE al LCD-ului;

Arduino GND se conectează la GND al LCD-ului;

Arduino GND se conectează la pinul 5 RW al LCD-ului;

Arduino 5V se conectează la pinul 2 VCC al LCD-ului;

Arduino pinul digital 12 se conectează la pinul 4 RS al LCD-ului;

Arduino pinul digital 11 se conectează la pinul 6 E al LCD-ului;

Arduino pinul digital 5 se conectează la pinul 11 D4 al LCD-ului;

Arduino pinul digital 4 se conectează la pinul 12 D5 al LCD-ului;

Arduino pinul digital 3 se conectează la pinul 13 D6 al LCD-ului;

Arduino pinul digital 2 se conectează la pinul 14 D7 al LCD-ului.

Avantajele utilizării unui LCD 16×2 :

Fiecare element care este conectat într-un circuit paralel primește o tensiune egală;

Este ușor să conectăm/deconectăm un element nou fără a afecta funcționare altor elemente;

În cazul în care s-a întâmplat o defecțiune în circuit, curentul poate să treacă prin diferite căi.

Dezavantajele utilizării unui LCD 16×2:

Necesită utilizarea mai multor fire;

Nu putem crește sau multiplica tensiunea într-un circuit;

Conectarea în paralel nu reușește în momentul când trebuie să treacă aceeași cantitate de curent prin intermediul elementelor.

CAPITOLUL III

Prezentare structură software a sistemului

În acest capitol, se prezintă structura software a sistemului, care comunică cu elementele componente din mediul exterior prin intermediul microcontrolerului. Microcontrolerul preia informațiile pentru a determina măsurarea deplasării unghiulare a coloanei de direcție. Acest capitol conține organigrama sistemului, funcțiile folosite și codul sursei explicat.

3.1. Structura software a sistemului

Plăcile de procesare Arduino au un lucru în comun: ele sunt programate prin intermediul limbajului de programare Arduino IDE (mediu integrat de dezvoltare). Acesta este software-ul în care se scrie codul și se încarcă pe placă. Arduino IDE reprezintă mediul prin care se realizează comunicarea directă cu microcontrolerul.

Arduino este o platformă prototip bazată pe o structură hardware și software ușor de utilizat. Se compune dintr-o placă de circuite care poate fi programată (denumită microcontroler) și un software numit Arduino IDE care este folosit pentru a scrie și a încărca codul calculatorului la bordul fizic.

Plăcile Arduino pot citi semnale de intrare analogice sau digitale de la diferiți senzori și le pot transforma într-o ieșire, cum ar fi activarea unui motor, activarea / dezactivarea LED-ului. Oferă posibilitatea de a controla funcțiile de bord prin trimiterea unui set de instrucțiuni la microcontroler prin intermediul IDE-ului Arduino (denumit software de încărcare). Spre deosebire de majoritatea circuitelor programabile, Arduino se poate conecta printr-un cablu USB. În plus, IDE-ul Arduino utilizează o versiune simplificată a C ++ ceea ce face mai ușoară utilizarea acestuia.

Software-ul Arduino este ușor de utilizat pentru începători, dar suficient de flexibil pentru utilizatorii avansați. Acesta conține un editor de texte pentru scrierea de cod, o zonă de mesaj în care se afișează acțiunile curente sau erorile programului, o consola de text, o bară de instrumente cu butoane pentru funcții comune și o serie de meniuri. Se conecteaza la partea hardware a plăcii Arduino pentru a încărca programele și de a comunica cu ele. Software-ul Arduino include:

un editor – pentru a crea și edita textul din schiță. Acesta subliniază în mod activ cuvintele cheie, astfel erorile sunt mai evidente;

un sistem de verificare – prin care trece schița, pentru a depista erorile, și apoi programul se compilează pentru a fi încărcat pe placa Arduino prin cablul USB;

un sistem de încărcare – care comunică cu placa Arduino prin USB, se încarcă programul în memoria Arduino și începe programul de funcționare;

o fereastră de serial monitor – care permite afișarea rezultatelor când rulează programul pe placa Arduino. Acest lucru este adesea folosit pentru testarea programelor;

multe exemple de schițe – care sunt incluse în software, care arată cum funcționează diferite dispozitive;

un sistem de biblioteci – care conțin mai multe secțiuni predefinite a software-ului;

un sistem de fișiere – care sunt utilizate pentru a prelua și salva schițe;

un sistem de ajutor – care include întregul document de referință Arduino.

Software-ul Arduino (IDE) efectuează unele operații de lucru ascunse (și de rutină), care simplifică scrierea de cod. Una dintre aceste simplificări este modul în care codul scris într-o schiță este compilat și apoi convertit într-un program pe care microcontroler-ul AVR de pe placa Arduino îl poate rula. Când se apasă butonul Compile, software-ul IDE examinează mai întâi sintaxa din schiță pentru a se asigura că nu există nici o eroare, apoi convertește codul pentru a fi citit și executat de către microcontroler. Software-ul adaugă un program principal care apelează funcțiile din partea de setup() și loop().

Programele scrise în Arduino Software (IDE) sunt numite schițe. Aceste schițe sunt scrise în editorul de text și sunt salvate cu extensia de fișier .ino.

În schițe codul se va evidenția în mod automat în diferite culori în funcție de ceea ce înseamnă. Acest lucru facilitează citirea codului și urmărirea fluxului. Când se încarcă codul pe placa, în partea de jos a ferestrei se afișează informații despre progres și dacă s-au depistat erori.

Când codul este finalizat, pentru a fi încărcat pe placă acesta trebuie să fie compilat. În procesul de compilare codul se convertește într-un cod care poate fi citit de Arduino.

Bara de instrumente din partea de sus a schiței are o varietate de butoane, cu două opțiuni de compilare. Orice eroare depistată va fi afișată în partea de jos a ferestrei. Dacă nu există probleme sau erori, codul se va încărca în Arduino.

O schiță scrisă în Arduino este compusă din următoarele părți: o secțiune care definește variabile, o parte de setup() care stabilește condițiile inițiale ale variabilelor și se execută cod preliminar, o parte loop() care va executa codul în mod repetat până când se va opri alimentarea plăcii și o secțiune cu alte funcții care activează în timpul rutinei setup() și loop(). Toate schițele trebuie să includă partea de setup() și loop().

Atunci când se execută programul, acesta va defini mai întâi variabilele declarate, apoi execută o singură dată funcțiile din partea de setup(), iar apoi execută funcțiile din partea de loop(). O schiță Arduino poate conține funcții definite de utilizator, create pentru a efectua o sub-sarcină specifică a unui program mai complex. Declarațiile de programare sunt încapsulate în blocul de cod care formează corpul funcției.

O schiță este scrisă în C/C++ și este compusă din două funcții care sunt compilate și legate într-un program main() cu o execuție ciclică:

setup() – cuprinde funcțiile care sunt rulate o singură dată la începutul programului, când se inițializează setările;

loop()– cuprinde funcțiile care sunt apelate în mod repetat până la oprirea alimentării cu energie a plăcuței.

În meniul Help se accesează ușor o serie de documente care vin cu Software-ul Arduino (IDE). Acesta conține noțiuni de bază, de referință, ghid pentru IDE si alte documente la nivel local, fără o conexiune la internet. Documentele sunt o copie locală a celor online.

Software-ul Arduino (IDE) utilizează conceptul de Sketchbook care reprezintă un loc standard pentru a stoca programele (sau schițele). Schițele din sketchbook pot fi deschise din File, meniul Sketchbook sau din butonul Open de pe bara de instrumente. Prima dată când se rulează software-ul Arduino, acesta va crea automat un director pentru Sketchbook. Pentru a vedea sau modifica locația din sketchbook se accesează din meniul Preferences.

Începând cu versiunea 1.0, fișierele sunt salvate cu extensia de fișier .ino. Versiunile anterioare folosesc extensia .pde. Este posibilă deschiderea fișierelor cu extensia .pde în versiunea 1.0 și mai târziu, software-ul va redenumi automat extensia la .ino.

Înainte de a încărca programul pe placă trebuie selectate elementele corect, din Tools se selectează portul. Plăcile sunt descrise mai jos. În Windows, porturile apar ca COM1 sau COM2 (pentru o placă serială) sau COM4, ​​COM5, COM7 (pentru o placă USB). După ce se selectează portul serial corect pentru placă, se apasă pe butonul de încărcare din bara de instrumente.

Placa Arduino se resetează automat și începe încărcarea. Pentru plăcile mai vechi, care nu dispun de auto-resetare, se va apăsa butonul de resetare de pe placă, chiar înainte de a începe încărcarea. Pe cele mai multe placi, în momentul încărcării vor clipi led-urile RX și TX. Software-ul (IDE) Arduino va afișa un mesaj atunci când încărcarea este completă sau dacă a depistat vreo eroare.

Atunci când se încarcă o schiță pe Arduino, acesta folosește un program bootloader, care încarcă codul pe microcontroler. Programul permite încărcarea codului fără a utiliza nici un hardware suplimentar.

Bootloaderul este codul executat în momentul în care un microcontroler sau un microprocesor pornește. Fără alimentarea lui cu energie electrică, bootloader nu poate porni. Bootloader-ul este activ timp de câteva secunde atunci când placa se resetează, apoi începe orice schiță care a fost încărcată cea mai recent la microcontroler.

După încărcarea programului pe placă, vizualizarea datelor generate se poate face prin utilizarea funcției Serial.print() din biblioteca Serial pentru a afișa informații pe monitorul calculatorului. O funcție este un instrument de programare care îndeplinește o sarcină specifică. Sarcina funcției Serial.print () este de a trimite informații de la Arduino către monitorul calculatorului pentru a fi afișate valorile generate de Arduino. Funcția print() face parte dintr-o bibliotecă numită Serial Library.

Pentru a utiliza funcțiile bibliotecii Serial, trebuie să inițiem comunicarea serială în partea de void setup, pentru a face acest lucru vom folosi funcția Serial.begin().

Sintaxa funcției serial begin este următoarea:

void setup() {
 Serial.begin(9600); 
}
void loop() {}

Valoarea 9600 specifică rata de transfer a informațiilor care vor trece de la Arduino la calculator sau invers.

Bibliotecile furnizează funcționalități suplimentare pentru utilizarea lor în schițe, de exemplu lucrul cu hardware-ul sau manipularea datelor.

Pentru a utiliza o bibliotecă într-o schiță, ea se selectează din meniul Sketch importare librărie. Acest lucru va însera una sau mai multe instrucțiuni #include la partea de sus a schiței și va compila biblioteca cu schița.

Pentru că bibliotecile sunt încărcate pe placă ca schiță, ele cresc cantitatea de spațiu pe care îl ocupă. În cazul în care o schiță nu mai are nevoie de o bibliotecă, se șterg pur și simplu declarațiile #include din partea de sus a codului.

Există o listă de biblioteci din referință. Unele biblioteci sunt incluse cu software-ul Arduino. Altele pot fi descărcate dintr-o varietate de surse sau prin intermediul Library Manager.

Acestea sunt bibliotecile standard care vin gratuit instalate cu software-ul IDE:

EEPROM – se utilizează pentru citire, scriere și stocarea permanentă;

Firmata – se utilizează pentru a comunica cu aplicațiile de pe computer utilizând un protocol serial standard;

LiquidCrystal – se utilizează pentru a controla ecrane cu cristale lichide (LCD);

SPI – se utilizează pentru a comunica cu dispozitive folosind o interfață periferică serială (SPI);

SoftwareSerial – se utilizează pentru o comunicație serială de la orice pini digitali;

3.2. Organigrama software În figura de mai jos avem organigrama software care reprezintă funcționarea sistemului.

Cele mai importante funcții folosite în organigramă sunt explicate mai jos:

Pentru a pune în funcțiune programul, platforma Arduino se conectează la calculator prin USB și funcționează pe baza software-ului care are la bază limbajului de programare Arduino IDE. Pe placă se încarcă schița programului și aceasta poate prelua informațiile de la o gamă variată de dispozitive cum ar fi senzorii, unde prelucrează informațiile primite prin intermediul microcontrolerului Atmega32U4, și transferă informațiile către ecranul de afișare.

Pentru a afișa datele pe un LCD folosim librăria LiquidCristal, care este inclusă în software-ul Arduino. Ea se poate importa în schiță cu funcția #include <LiquidCrystal.h>. Procesul de a controla display-ul implică punerea datelor care urmează a fi afișate în registrul de date, apoi punerea instrucțiunilor în registrul de instrucțiuni.

Biblioteca LiquidCrystal simplifică acest proces, astfel încât nu este necesar ca aceste comenzi să fie realizate de către utilizator. O comandă este o instrucțiune dată de LCD pentru a face o sarcină, cum ar fi inițializarea, ștergerea datelor de pe ecranul său, stabilirea poziției cursorului sau controlul de afișare.

Libraria LiquidCrystal folosește modul de comunicație cu numai 4 sau 8 pini, prin urmare vom conecta pinii D4-D7 ai LCD-ului la pinii D5-D2 de pe placa Arduino. Inițializarea bibliotecii se face cu funcția LiquidCrystal lcd(12, 11, 5, 4, 3, 2) care conține pinii de conectare ai LCD-ului la platforma Arduino.

O schiță este scrisă în limbajul de programare Arduino IDE conține două funcții pricipale care sunt compilate și legate într-un program main() cu o execuție ciclică:

void setup() – cuprinde funcțiile care sunt rulate o singură dată la începutul programului, când se inițializează setările;

void loop()– cuprinde funcțiile care sunt apelate în mod repetat până la oprirea alimentării cu energie a plăcuței.

Partea de void setup() este apelată atunci când începe o schiță. Ea se utilizează pentru a defini proprietățile inițiale ale ecranului, pentru a inițializa variabilele, pentru a declara modurile de setare al pinilor și se începe utilizarea bibliotecilor declarate. Funcția va rula doar o singură dată, atunci când placa este alimentată cu energie sau când este resetată.

Declarațiile din secțiunea setup() sunt plasate între acolade deschise și închise. Aceste acolade arată de unde începe(acolada de deschidere) și unde se termină (acolada de închidere) partea de setup().

Secțiunea de void setup() conține următoarele funcții:

Serial.begin(9600) – se inițializează portul serial de comunicație cu o viteză de 9600 bps;

lcd.begin(16,2) – această funcție inițializează interfața cu ecranul LCD, și specifică dimensiunile ecranului (lățime și înălțime). lcd.begin() trebuie să fie apelată înainte de orice altă comandă a bibliotecii;

pinMode(pin,mode) – această funcție configurează numărul pinului specificat să se comporte ca o intrare sau ca o ieșire;

analogWrite(pin, value) – această funcție se utilizează pentru a produce o valoare analogică printr-un impuls cu modulație (PWM) unui pin. Poate fi folosită pentru a aprinde un LED de luminozitate variabilă sau pentru a conduce un motor la diferite viteze.

Partea de void loop() este apelată după ce s-au inițializat variabilele, bibliotecile,etc. Această secțiune efectuează acțiunea principală a programului, ea rulează până la întreruperea alimentării platformei Arduino. La fel ca la secțiunea void setup() funcțiile sunt scrise între acoloade deschise și închise. Funcția loop este o funcție obișnuită Arduino, aceasta poate conține toate componentele normale ale limbajului de programare Arduino, inclusiv alte bucle. Secțiunea de void setup poate conține și funcții for, while, if, else, return, break, etc.

Pentru a determina unghiul de rotație prin intermediul platformei Arduino, am măsurat cu ajutorul unui raportor unghiul de înclinare al accelerometrului pe un interval de la 0 la 90. În urma acestor măsurări am obținut valorile prezentate în tabelul 3.1 pentru axa X,Y,Z.

Tabelul.3.1. Unghiul de înclinare al accelerometrului pe axa X,Y,Z

Cu ajutorul valorilor obținute în tabel am determinat următoarea ecuație de funcționare care determină unghiul de rotație al accelerometrului pe axa X:

y=0,0088×2-5,4624x+843,98

În figura 3.4. avem reprezentarea grafică a ecuației de funcționare, în funcție de accelerație și unghiul de rotație.

Cele mai importante funcții folosite în codul sursă sunt:

analogRead(pin) – această funcție returnează valoarea unei intrări analogice de la 0-1023;

digitalRead(pin) – această funcție returnează valoarea unui pin digital setat ca pin de intrare fie LOW sau HIGH;

lcd.setCursor(0, 0) – este o altă funcție care se utilizează pentru a repoziționa cursorul pe rîndul și coloana dorită pe un LCD cu 16 coloane și 2 linii;

lcd.print("text") – funcția se utilizează pentru a afișa textul dorit pe un LCD, ea poate printa și caractere, simboluri, iar pentru a printa numere se specifică baza (bin-baza 2, dec-baza 10, oct-baza 8, hex-baza 16) în care vrem să fie afișată valoarea, de exemplu lcd.print(rpm,DEC);

clear() – șterge conținutul de pe ecranul LCD-ului și poziționează cursorul în colțul din stânga-sus;

Instrucțiunile folosite în codul sursă sunt:

if;

while.

Instrucțiunea if testează dacă a fost atinsă o anumită condiție, cum ar fi o intrare care depășește un anumit număr, pentru a executa comenzile cuprinse în paranteze.

Sintaxa funcției if este următoarea:

if (someVariable > 50)

{

// codul care va fi executat dacă condiția este adevărată

}

Programul testează pentru a vedea dacă variabila este mai mare de 50, dacă este atunci programul îndeplinește o anumită acțiune. Astfel, dacă declarația din paranteze este adevărată, se execută instrucțiunile din paranteze. Dacă nu, programul trece peste cod.

Parantezele pot fi omise după o declarație if. Dacă se procedează astfel, următoarea linie (definită prin punct și virgulă) devine singura declarație condiționată.

Declarațiile evaluate în interiorul parantezelor necesită utilizarea unuia sau mai multor operatori:

Operatori folosiți în codul sursă sunt următorii:

x = = y (x este egal cu y);

x! = y (x nu este egal cu y);

x <y (x este mai mică decât y);

x > y (x este mai mare decât y);

x <= y (x este mai mică sau egală cu y);

x > = y (x este mai mare sau egal cu y).

Instrucțiunea while, ca și if, testează o condiție. Sintaxa ei este următoarea:

while (expresie)

{

// instrucțiunea care va fi executată;

}

Instrucțiunea care se execută în mod repetat se numește corpul buclei. Condiția din instrucțiunea while poate fi o expresie de orice tip de dată. Aproape întotdeauna ea este o expresie logică.

Corpul buclei poate fi și un bloc, fapt care ne permite să executăm mai multe instrucțiuni în mod repetat. Blocul se execută până când expresia devine falsă.

În figura de mai jos avem reprezentat modul de execuție a instrucțiunii while.

Pentru implementarea buclelor folosind instrucțiunea while se pot întâlni două tipuri de bucle:

bucla controlată de un contor;

bucla controlată de un eveniment.

În codul sursă am utilizat instrucțiunea while în buclă controlată de un contor . O astfel de buclă folosește o variabilă numită variabilă de control al buclei. Înaintea buclei ea este inițializată, adică i se atribuie o valoare inițială. Apoi, în fiecare iterație a buclei ea trebuie incrementată.

Bucla controlată de un contor are sintaxa următoare:

int contorBucla = 0; // inițializare;

while(contorBucla <= value) // testare;

{

… // acțiunea care se repetă;

contorBuclă++; // incrementare;

}

Variabila de control a buclei este inițializată cu valoarea 0 înainte de intrarea în buclă. Instrucțiunea while testează expresia și execută bucla atâta timp cât expresia este adevărată. Ultima instrucțiune a buclei incrementează variabila contorBucla. Variabilele folosite în acest fel se numesc contoare.

Programatorul trebuie să urmarească dacă în interiorul buclei valoarea lui se modifică în așa fel încât la un moment dat condiția să devină falsă.

O buclă din care programul nu poate ieși deloc se numește buclă infinită. Această situație apare atunci când în program se omite incrementarea contorului.

3.3. Codul sursei explicat

Mai jos avem explicată funcționarea programului care determină măsurarea deplasării unghiulare a coloanei de direcție .

#include <LiquidCrystal.h> // se include librăria Liquid Crystal în schiță;

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // se declară pinii de conectare ai LCD-ului la placa Arduino;

const int accX = A1; // se declară pinul X al accelerometrului de tip întreg și se conectează la pinul analogic A1;

double valoare; // se declară variabila valoare de tip real dublu cu memoria de stocare a numerelor pe 64 biți;

float unghiul=0.0; // se declară variabila valoare de tip real float cu memoria de stocare a numerelor pe 32 biți;

const int hallPin=7; // se declară pinul senzorului Hall de tip întreg și se conectează la pinul 7 pe placa Arduino;

const unsigned long sampleTime=1000; // se declară constanta sampleTime ca variabilă extinsă cu o memorie de stocare pe 32 biți și i se atribuie valoarea de 1000ms;

const int maxRPM = 10200; // se declară variabila maxRPM de tip întreg și i se atribuie valoarea maximă 10200 rpm;

int backLight=13;// prin intermediul pinului 13 al platformei Arduino se va regla lumina de fundal a ecranului de afișare;

int contrast=9;// prin intermediul pinului 9 al platformei Aduino se va regla contrastul de afișare:

void setup() // cuprinde funcțiile care sunt rulate o singură dată la începutul programului, când se inițializează setările;

{

pinMode(backLight, OUTPUT);// se inițializează pinul de reglare a luminii de fundal ca pin de ieșire;

analogWrite(backLight, 80);// se se atribuie pinului de reglare a luminii valoare de 80%;

pinMode(8,OUTPUT);// se inițializează pinul de reglare a contrastului ca pin de ieșire;

analogWrite(8,40);// se atribuie pinului de reglare a contrastului valoarea de 40%;

pinMode(hallPin,INPUT);// se inițializează pinul senzorului Hall ca pin de intrare;

Serial.begin(9600);// se inițializează portul serial de comunicație cu o viteză de 9600 bps;

lcd.begin(16, 2);// se inițializează interfața cu ecranul LCD, și se specifică dimensiunile ecranului (lățime și înălțime);

pinMode(6, OUTPUT);// se inițializează pinul 6 al plăcii Arduino la care este conectat senzorul Hall ca pin de ieșire;

pinMode(10, OUTPUT);// se inițializează pinul 10 la care este conectat ecranul de afișare ca pin de ieșire;

pinMode(9, OUTPUT);// se inițializează pinul 9 la care este conectat ecranul de afișare ca pin de ieșire;

}

void loop() // cuprinde funcțiile care efectuează acțiunea principală a programului, ea rulează până la întreruperea alimentării platformei Arduino;

{

valoare = analogRead(accX);// citește valoarea accelerometrului de pe pinul X prin portul analogic al plăcii Arduino;

unghiul=0.0088*(valoare*valoare)-5.4624*valoare+843.98;// se calculează unghiul de înclinare a acclerometrului de pe axa X;

int rpm=getRPM();// se declară variabila rpm de tip întreg și va primi valorile numărate de senzor;

displayRPM(rpm);// se afișează valoarea senzorului în rotații pe minut;

}

int getRPM()// se apelează variabila getRPM;

{

int count=0;// se inițializează variabila count de tip întreg și i se atribuie valoarea 0;

boolean position=LOW;// se declară variabila position de tip boolean și se setează ca low;

unsigned long currentTime=0;// returnează numărul în milisecunde atunci când începe rularea programului actual;

unsigned long startTime=millis();// returnează numărul în milisecunde atunci când începe programul;

while (currentTime<=sampleTime)// se testează condiția atâta timp cât timpul curent este mai mic sau egal ca timpul de probă se efectuează condițiile de mai jos;

{

if (digitalRead(hallPin)==HIGH)// se testează daca condiția este adevărată;

{

kflag=HIGH; // se execută instrucțiunea;

}

if (digitalRead(hallPin)==LOW && kflag==HIGH)// se testează daca ambele condiții sunt adevărate;

{

kount++; // incrementează și returnează valoarea veche;

kflag=LOW;// se execută instrucțiunea;

}

currentTime=millis()-startTime;// variabilă care calculează timpul prin bucla inferioară în milisecunde;

}

int kountrpm = int(60000./float(sampleTime))*kount; // variabilă care va stoca valoarea calculată și convertită în rpm;

return kountrpm; // returnează valoarea calculată de la funcția de apelare ;

}

void displayRPM(int rpm) // afișează valoarea în rpm;

{

lcd.setCursor(0, 0);// se setează cursorul pe ecranul de afișare la poziția specificată(rândul 0, coloana 0);

lcd.print("Unghiul=");// se afișează pe ecranul de afișare valoarea unghiului;

lcd.setCursor(8,0); // se setează cursorul pe ecranul de afișare la poziția specificată (coloana 8, rîndul 0);

lcd.print(unghiul);// se afișează unghiul;

lcd.setCursor(13,0);// se setează cursorul pe ecranul de afișare la poziția specificată(coloana 13, rândul 0);

lcd.print(char(223));// se afișează simbolul unghiului de rotație în grade;

delay(400);// se face o pauză de 400ms;

lcd.setCursor(0, 1);// se setează cursorul pe ecranul de afișare la poziția specificată(rândul 1, coloana 0);

lcd.print(rpm,DEC);// se afișează valoarea numărului de turații în rpm;

lcd.setCursor(4,1); // se setează cursorul pe ecranul de afișare la poziția specificată(rândul 1, coloana 4);

lcd.print("RPM"); // se afișează valoarea în RPM;

delay(300);// se face o pauză de 300ms;

if(unghiul<40)// verifică dacă unghiul accelerometrului este <40◦ se efectuează rotația la stânga;

{

digitalWrite(9, HIGH);// se setează pinul de conectare 9 a motorului HIGH;

digitalWrite(10, LOW);// se setează pinul de conectare 10 a motorului LOW;

analogWrite(6,100);// se setează viteza de rotație a motorului prin intermediul pinului 6;

lcd.setCursor(9,1);// se setează cursorul pe ecranul de afișare la poziția specificată (coloana 9, rândul 1);

lcd.print("STANGA");// se afișează pe ecran poziția de rotație a motorului în stânga;

delay(300); // se face o pauză 300ms.

}

if((unghiul>=40) && (unghiul<=50))// se verifică dacă unghiul de rotație se află pe intrevalul 40◦-50◦ motorul se oprește;

{

digitalWrite(9, LOW)// se setează pinul de conectare 9 a motorului LOW;

digitalWrite(10, LOW);// se setează pinul de conectare 10 a motorului LOW;

analogWrite(6,100); // se setează viteza de rotație a motorului prin intermediul pinului 6;

lcd.setCursor(9,1);// se setează cursorul pe ecranul de afișare la poziția specificată (coloana 9, rândul 1);

lcd.print("STOP");// se afișează pe ecran poziția de stop a motorului;

delay(300); // se face o pauză 300ms.

}

if((unghiul>50) && (unghiul<=90))// se verifică daca unghiul accelerometrului este >50◦ se efectuează rotația la dreapta;

{

digitalWrite(9, LOW); // se setează pinul de conectare 9 a motorului LOW;

digitalWrite(10, HIGH);// se setează pinul de conectare 10 a motorului HIGH;

analogWrite(6,100);// se setează viteza de rotație a motorului prin intermediul pinului 6;

lcd.setCursor(9,1);// se setează cursorul pe ecranul de afișare la poziția specificată (coloana 9, rândul 1);

lcd.print("DREAPTA");// se afișează pe ecran poziția de rotație a motorului în dreapta;

delay(300);// se face o pauză 300ms.

CAPITOLUL IV

Rezultate experimentale

În acest capitol se prezintă rezultatele experimentale și erorile de măsurare ale sistemului de măsurare a deplasării unghiulare. Capitolul conține schema electrică de conectare a sistemului, tabele și grafice.

În fig 4.1 avem reprezentată schema electrică de conectare a elementelor componente la platforma de procesare Arduino.

Măsurarea reprezintă un proces experimental de obținere a informațiilor sub forma unui raport numeric. În timpul măsurătorilor sau a calculelor din diferite motive apar diferențe între rezultatele obținute și cele adevărate, aceste diferențe se numesc erori.

Pentru a depista erorile care apar la deplasarea unghiulară a coloanei de direcție, cu ajutorul unui raportor am măsurat unghiul de înclinare al accelerometrului.

Am fixat accelerometrul pe aceeași suprafață cu raportorul și am măsurat unghiul de înclinare al acestuia pe un interval de la 0-90°. Eroarea reprezintă diferența dintre valoarea unghiului și valoarea unghiului măsurat.

În tabelul 4.1 avem valorile unghiului, valorile unghiului măsurat și erorile calculate apărute în urma măsurătorilor.

Tabelul.4.1. Valorile și erorile sistemului de măsurare a deplasării unghiulare

După cum se observă în tabelul.4.1 valoarea unghiului măsurat variază foarte puțin în raport cu valoarea unghiului, din care rezultă ca erorile apărute sunt foarte mici.

În figura.4.2 avem reprezentarea grafică în coloane a erorii absolute.

Conform reprezentarii grafice, se observă că eroarea absolută are valori pozitive doar la unghiurile de 15°, 45°, 50° și 60°.

Eroarea absolută variază crescător pe intervalul 0-10° cu o variație negativă. La unghiul de 15° are o variație pozitivă, după care revine iarăși cu o variație crescătoare, descrescătoare negativă până la intervalul de 45°-50° când devine din nou pozitivă. Aceste variații pozitive și negative se repetă din cauza erorilor foarte mici .

În figura.4.3 avem reprezentarea grafică în coloane a erorii relative.

Din această diagramă în coloane se observă modificarea erorii relative, ea are doar valori pozitive și variază crescător și descrescător pe intervalul 0-90°. După unghiul de 15° eroarea relativă are o variație din ce în ce mai mică.

În figura.4.4. avem reprezentarea grafică a erorii relative și valorile ei afișate.

După cum se observă din această reprezentare grafică eroarea relativă are o variație ușor descrescătoare pe intervalul 0-90°. Aceasta atinge valoarea maximă de 15.70% la unghiul de 10°, iar valoarea minimă de 0.30 la unghiul de 70°. Se observă ca pe intervalul 35°-90° are o variație foarte mică, acesta reprezintă un avantaj pentru conducător, deoarece volanul este cel mai mult solicitat pe acest interval, iar erorile de înclinare pot fi neglijabile.

Concluzii

Principalul obiectiv al acestei lucrări a fost proiectarea și realizarea unui sistem pentru măsurarea deplasării unghiulare a coloanei de direcție. Sistemul de direcție este alcătuit din mai multe elemente componente și are un rol deosebit de important în ghidarea automobilului.

Într-o perioadă de timp scurtă a istoriei, automоbilele au cunoscut o evoluție rapidă. Istoria de dezvoltare a automobilului continuă să aibă o perfecționare, ajungându-se la soluții noi, care asigură o fiabilitate ridicată și o bună siguranță traficului rutier. Ținuta dе drum respectiv stabilitatea și maniabilitatea în special, au atras atenția constructorilor de autovehicule târziu, după realizаrea primelor autovehicule, aceasta explicându-se prin faptul că perfermanțele acestora erаu încă destul de mici, iar importanțа siguranțеi circulațiеi din traficul rutier, era redusă din cauza lipsei traficului.

Problemele care țin de stabilitatea și maniabilitatea automobilelor au apărut în cazul automobilelor de curse. Studiul ținutei de drum i s-a acordat și i se acordă în continuare o atenție deosebită. În ultimii ani de cercetare, mecanismul de ghidare al roții a evoluat foarte mult, atât tehnic cât și calitativ, făcându-și apariția noi soluții constructive de mecanisme de direcție pe piața construcțiilor de autoturisme. Astfel, ca răspuns la cerințele impuse de confort și o bună siguranță în traficul rutier rezultă optimizarea unei funcționări pentru regulatorul mecanismului de direcție.

Odată cu dezvoltarea rapidă a electronicii, în ultimul deceniu au fost realizate componente și sisteme destinate automobilului, atât în scopul de a înlocui reglajele electromecanice cât și în vederea introducerii unui nou control numeric dedicat. Încă de la primele încercări, controlul electronic a avut un impact favorabil asupra performanțelor, fiabilității și mentenabilității sistemelor automobilului în ansamblu, asupra siguranței în exploatare și integrarea automobilului ca o componentă neagresivă a mediului ambiant.

În lucrarea de față au fost prezentate pe larg mai multe tipuri, clasificări de sisteme de direcție asistată, elementele componente și principiile de funcționare ale acestora. Au fost prezentate cele mai importante condiții pe care sistemul de direcție trebuie să le respecte, pentru a avea o bună funcționare. Sistemul a fost proiectat pentru servodirecția asistată electric, în mod special pentru servodirecția de tip coloană.

Lucrarea este alcătuită din 2 părți principale care stau la baza proiectului și anume partea hardware și partea software a sistemului.

Partea hardware a sistemului conține schema bloc și modul de conectare, funcționare a elementelor componente, configurația pinilor, avantajele și dezavantajele utilizării acestora. Partea software conține funcționarea software-ului Arduino IDE, codul sursă explicat și organigrama de funcționare a sistemului.

Pentru măsurarea deplasării unghiulare a coloanei de direcție au fost folosite următoarele elementele componente:

o platformă de procesare Arduino Leonardo;

un accelerometru ADXL335;

un senzor Hall;

un motor;

un shield pentru conectarea motorului;

un ecran de afișare LCD 16×2.

Schema bloc reprezentată în lucrare conține toate aceste elemente și principiul de funcționare al sistemului pentru măsurarea deplasării unghiulare a coloanei de direcție.

Pentru a determina deplasarea unghiulară am utilizat un accelerometru ADXL 335, este foarte ușor de utilizat, este un accelerometru analogic capacitiv, ceea ce înseamnă că transmite informația către placa Arduino sub forma unui semnal analogic. Prin detectarea accelerației, accelerometru poate afla în ce direcție și cât de repede dispozitivul se află în mișcare.

Accelerometru este foarte ușor de utilizat la un Arduino, prin intermediul micro-controlerului se poate citi accelerația prin conectarea celor 3 pini de intrare analogică.

Elementul cel mai important fiind platforma de procesare Arduino, ea poate comunica prin intermediul microcontrolerului cu restul elementelor componente și preia informațiile pentru a fi afișate. Platforma Arduino este una dintre cele mai simple platforme de utilizat și care are o serie de facilități, este ușor de utilizat, programat și poate comunica cu un calculator sau cu alte microcontrolere. Platforma Arduino este programată prin intermediul limbajului de programare Arduino IDE. Acesta reprezintă software-ul în care este scris codul și se încarcă pe placă.

În lucrare mai sunt reprezentate schemele de conectare a acestor elemente la platforma Arduino, semnificația pinilor și caracteristicile de funcționare.

În ansamblu lucrarea prezintă schema electrică de conectare a elementelor componente utilizând produse hardware și software și macheta proprizisă, asupra căreia s-au efectuat măsurători pentru a depista erorile la funcționarea sistemului.

În timpul măsurătorilor sau a calculelor din diferite motive apar diferențe între rezultate, aceste diferențe se numesc erori. Pentru a depista aceste erori care apar la deplasarea unghiulară a coloanei de direcție, cu ajutorul unui raportor s-a măsurat unghiul de înclinare al accelerometrului și au fost efectuate mai multe măsuratori pe intervalul 0-90°.

În urma măsuratorilor s-a calculat eroarea absolută și eroarea relativă pentru fiecare unghi. Erorile rezultate au fost reprezentate prin mai multe diagrame de tip coloane pentru a vedea variația acestora.

În concluzie, erorile sunt foarte mici, aproape neglijabile ceea ce rezultă că sistemul funcționează foarte bine, iar aceste mici diferențe de rezultate nu influențează negativ la ghidarea direcției automobilului.

Bibliografie

[1] http://documents.tips/documents/directie.html

[2] http://www.studentie.ro/proiecte/mecanica/exploatarea-si-intretinerea-sistemului-de-directie_i55_c1653_120885.html

[3] https://www.scribd.com/document/135999513/Asamblarea-Sistemului-de-Directie

[4] https://ro.wikipedia.org/wiki/Servomecanism_hidraulic

[5] Prof. Univ. Dr. Ing. Bogdan-Adrian Enache Curs Sisteme electrice auto Anul III Sem II Pitești 2016

[6] https://learn.sparkfun.com/tutorials/arduino-comparison-guide

[7] https://www.arduino.cc/en/Guide/Introduction

[8] https://www.arduino.cc/en/Reference/HomePage?from=Reference.Extended

[9] http://webbut.unitbv.ro/Carti%20on-line/BSM/BSM/capitol4.pdf

[10] https://www.sparkfun.com/datasheets/Components/SMD/adxl335.pdf

[11] http://www.instructables.com/id/Arduino-Motor-Shield-Tutorial/

[12] https://www.arduino.cc/en/Guide/Windows

[13] https://ro.wikipedia.org/wiki/Arduino

[14] https://playground.arduino.cc/Main/AdafruitMotorShield

[14] https://www.allaboutcircuits.com/projects/arduino-motor-shield-tutorial/

Similar Posts