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… [306838]

[anonimizat], iar acestea sunt: o [anonimizat], 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. [anonimizat] 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 [anonimizat]. Toate plăcile Arduino au un lucru în comun: ele sunt programate prin intermediul limbajului de programare Arduino IDE. [anonimizat]. [anonimizat] o mulțime de diferențe cum ar fi: numărul de intrări și ieșiri ([anonimizat]-uri și butoane pot fi conectate pe o singură placă), viteza și tensiunea de operare sunt doar câteva dintre aceste diferențe. Unele placi 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 Leonarde este o placă cu un microcontroler bazat pe Atmega32U4. Aceasta are 20 de pini setați ca pini digitali de intrare/ieșire, 7 [anonimizat] 12 pini pot fi utilizați ca intrări analogice. Platforma funcționează la e 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 [anonimizat] o [anonimizat] o baterie (7V-12V).

Cei 20 de pini setați ca pini digitali de intrare/[anonimizat]:

pinMode();

digitalWrite();

digitalRead().

Placa Leonardo diferă de toate plăcile precedente deoarece are la bază microcontrolerul ATmega32u4 printr-[anonimizat]. Acest lucru face ca placa să fie mai versatilă: în plus față de sprijinirea unui port de interfrență 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 [anonimizat]32U4, [anonimizat],actuatoare. [anonimizat], începând cu cele mai simple LCD cu 16 caractere până la ecrane grafice. Software-[anonimizat]. [anonimizat].

[anonimizat]:

[anonimizat]no 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".

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), covertoare A/D și D/A, etc.

Microcontrolerul 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 ce primele instrucțiuni sunt în desfășurare, condensatorii sunt încărcați. Când nivelul de tensiune atinge valoarea maximă și frecvența oscilatorului 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 diferite.

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

Î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:

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 trimite 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 condensatoarele de 0.1uF se setează lățimea de bandă a fiecarei 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;

în activități sportive;

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 extrеmitate 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 componente 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ție arborelui cu came;

pentru determinarea turației cutiei de viteze;

pentru determinarea unghiului de 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. Ele 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.

Similar Posts