Sunteți pe pagina 1din 10

Facultatea de Automatică și Calculatoare

Departamentul de Automatică și Informatică Aplicată

Master: Sisteme Informatice Aplicate in Productie si Servicii

Interpretarea datelor de catalog ale senzorului


inteligent ADXL345

Conducător științific: Masterand:

Prof. Dr. Ing. Ioan SILEA XXXXXXXXXXXXXXX

Timișoara, 2019
Cuprins
1. Accelerometrul ADXL345............................................................................................3
2. Interfațarea senzorului digital........................................................................................7
3. Măsurarea accelerațiilor unghiulare și liniare................................................................8
4. Bibliografie...................................................................................................................10

2
1. Accelerometrul ADXL345

Figura 1_1. Design-ul Accelerometrului ADXL345(sursa:[2])

Accelerometrul ADXL345 este realizat de Analog Devices și reprezintă un accelerometru


digital ce poate fi utilizat pentru măsurarea accelerației pe 3 axe. Consumul foarte scăzut de curent
electric îi oferă acestuia un avantaj, consumul maxim fiind de 23 μA în momentul în care acesta
realizează măsurătorile (curentul consumat a fost considerat la tensiunea de alimentare de 2.5V).
Valorile maxime pe care le poate citi accelerometrul sunt de ±16ḡ dar acesta poate fi setat și
pentru alte domenii de măsurare :±2ḡ, ±4ḡ sau ±8ḡ.Rezoluția datelor trimise depinde de setările
realizate de către utilizator în cazul configurării inițiale sau în timpul rulării a accelerometrului. În
setările de bază, aceasta este de 10 biți, fixă, pentru domeniul de accelerație ales dar poate fi aleasă
și modalitatea de creștere în funcție de valoarea accelerației crescând până la 13 biți menținând
precizia de 4mḡ pentru bitul cel mai putin semnificativ.
După ce VS este aplicat, aparatul intră în modul de așteptare , unde este redus la minimum
consumul de energie și dispozitivul așteaptă VDD I / O, care urmează să fie aplicate și pentru
comanda de a intra în modul de măsurare care urmează să fie primită ( Această comandă poate fi
inițiată prin setarea bitului de măsură ( Bit D3 ) în registrul POWER_CTL ( Adresa 0x2D ) ). În
plus , în timp ce dispozitivul se află în modul de așteptare , orice registru poate scrie sau să citească.
Se recomandă să se configureze dispozitivul în modul de așteptare și după să se activeze în modul
de măsurare . Golirea bitului de măsură readuce aparatul în modul de așteptare .
Cu CS legat la high VDD I / O, ADXL345 este în modul 𝐼𝐼 2 𝐶𝐶 , care necesită o simplă
conexiune cu 2 fire .Cu pinul ALT ADDRESS la high ,cei 7 biti de adresa 𝐼𝐼 2 𝐶𝐶 pentru dispozitiv
sunt 0x1D, urmat de bitul R / W . Acest lucru se traduce la 0x3A pentru a scrie și 0x3B pentru o
citire . O adresă alternativă I 2 C din 0x53 ( urmat de bitul R / W ) poate fi ales culcând PIN-ul ALT
ADRESA ( PIN 12 ) .

3
Acest lucru se traduce la 0xA6 pentru a scrie și 0xA7 pentru o citire .

Figura 1_2 . Tabel de descriere a comutărilor(sursa:[1])

Tensiunea de alimentare a accelerometrului trebuie să fie între 2V și 3.6V iar intervalul


tensiunii pe care o suportă pinii este între 1.7V și valoarea alimentării.Acesta poate fi conectat atât
la magistrala SPI cu 3 sau 4 linii cât și la cea 𝐼𝐼 2 𝐶𝐶. Pentru a exemplifica functionarea sa am ales
magistrala I 2 C și astfel folosim pinii corespunzători, SDA și SCL.
Frecvența de citire a accelerației este 800Hz standard dar poate fi modificată de la 0.1 Hz până
la 3.2 KHz diferențele constând și în consum mai mic sau mai mare de curent.

Figura 1_3. Configurația pinilor(sursa:[4])

4
Figura 1_4. Descrierea funcțională a pinilor(sursa:[3])

Există mai mulți regiștrii adresabili ai accelerometrului ce vor fi prezentați în pagina


următoare. Regiștrii folosiți în cazul acestui referat sunt cei de configurare pentru setarea rezoluției
datelor și a pornirii măsurătorilor și regiștrii din care se citesc datele măsurate de către
accelerometru. Aceștia au adresele (în hexazecimal) : 0x2D (pentru pornirea măsurătorilor, 0X31
(pentru setarea rezoluției), 0x32-0x37(adresele de unde se citesc octeții corespunzători accelerației
pentru cele 3 axe).
Regiștrii precizați anterior dar și ceilalți regiștrii ai accelerometrului sunt prezentați în
următoarea figură cu precizarea că accelerometrul poate fi pornit/oprit folosind întreruperi, se pot
seta limite la valorile de accelerație citite și se pot seta funcționalități de consum mic de putere
pentru diferite cazuri de testare.

5
Figura 1_5. Regiștrii accelerometrului ADXL345(sursa:[3]).

6
2.Interfațarea senzorului digital

Senzorul digital ales face parte din categoria senzorilor ce comunică folosind magistrala
I 2 C.Acesta corespunde principiilor de funcționare necesare aplicației dorite fiind ușoară
comunicarea cunoscând adresele de identificare, adresele regiștrilor de unde vom citi datele
precum și comenzile de configurare.
Adresa de identificare în cadrul rețelei I2 C ale senzorului ADXL345 este 0x53.
Pentru accelerometrul ADXL345 se vor face următoarele acțiuni :
- Se verifică citirea pe magistrala I 2 C prin apelarea funcției void readFrom(byte address, int
num, byte _buff[]) și scrierea prin void writeTo(byte address, byte val).
- Are loc o trimitere a unui octet de date, 0x2D , ce va comanda accelerometrului intrarea în
modul de măsurare;
char POWER_CTL = 0x2D;//Power Control Register
- Are loc o trimitere a unui octet de date, 0x31 , ce va seta intervalul de măsurare al accelerației
la [-4ḡ,+4ḡ] și selectarea creșterii rezoluției în funcție de valoarea accelerației menținând precizia
de 4mḡ/LSB;
char DATA_FORMAT = 0x31;
- O dată la fiecare 1000ms se trimite 1 singur octet de date, 0x32, adresa după care se va începe
citirea a 6 octeți corespunzători valorilor accelerațiilor de pe cele trei axe;
char DATAX0 = 0x32;
char DATAX1 = 0x33;
char DATAY0 = 0x34;
char DATAY1 = 0x35;
char DATAZ0 = 0x36;
char DATAZ1 = 0x37;
- Datele citite vor fi grupate în funcție de axe și mai apoi convertite în multiplii ai accelerației
gravitaționale ḡ având precizia menționată anterior de 4mḡ pentru fiecare bit;
writeTo(DATA_FORMAT, 0x01);
readFrom( DATAX0, howManyBytesToRead, _buff); //citește accelerațiile de la senzorul
ADXL345
- Pașii descriși anterior se repetă pe tot parcursul măsurătorilor.
Așa cum am precizat mai sus accelerometrul măsoară valoarea accelerației liniare sau
unghiulare și poate depista cu precizie orientarea unui obiect.Domeniile de măsurare pentru
accelerometre pot fi setate de către utilizator ,setată în acest caz la ∓4𝑔𝑔,la fel rezoluția care este
fixată la 10 biți. Pentru această rezoluție și domeniul de măsurare ales accelerometrul va citi valori
cuprinse în intervalul [-511,511],adică 1024 (210 valori) . În registrul 0x31 la bitul de FULL_RES
care, dacă este setat pe 0, pentru a menține la 10 biți intervalul de informație se poate schimba
valoarea pentru a obține o rezoluție mai mare și anume pe 11 biți pentru domeniul de măsurare
∓4𝑔𝑔.

Figura 2_1.Registrul 0x31(sursa:[3])

7
În tabelul de mai jos se pot observa modificările în cazul în care folosim o rezoluție mai
mare.

Figura 2_2.Setarea gamei de rezoluţie(sursa:[3])


5𝑉𝑉
Fiecărui bit de informație dintre cei 10 îi corespunde o tensiune de = 4,8 mV. Frecventa
1024
de citire a datelor este Output data rate care poate avea valori cuprinse intre 6,25Hz si 3200Hz.
Gama de biți din următorul tabel setează intervalul de măsurare.

Domenii de măsurare
∓𝟐𝟐𝟐𝟐 ∓𝟒𝟒𝟒𝟒 ∓𝟖𝟖𝟖𝟖 ∓𝟏𝟏𝟏𝟏𝟏𝟏
0x00 0x01 0x10 0x11
[-511,511] [-511,511] [-511,511] [-511,511]

Tabel 2_1.Domenii de măsurare

3.Măsurarea accelerațiilor unghiulare și liniare

Putem defini accelerometrul ca fiind un sensor care măsoară valorile acceleraţiilor unghiulare
şi liniare la care este supus un echipament sau obiect.
Acceleraţia gravitaţională este specificată în fizică ca fiind acceleraţia imprimată unui
obiect(punct material) de către atracţia Pamântului,când acel punct material se mişcă fără o
rezistenţă.Orice punct material este accelerat spre alt punct material cu aceeași
accelerație,indiferent de masa obiectelor.
La suprafața Pământului accelerația gravitațională variază între 9,78–9,82 m/s² în funcție
de latitudine.
Valoarea standard considerată este cea măsurată la nivelul mării și la latitudinea de 45°, având
𝑚𝑚
valoarea: 𝑔𝑔𝑛𝑛 ≈ 9.80665 2.
𝑠𝑠
𝑚𝑚
La nivelul mării, la ecuator, are valorea aproximativă : g = 9,781 , iar la poli:
𝑠𝑠 2
𝑚𝑚
g = 9,831 2.
𝑠𝑠

8
Accelerometru sesizează schimbările de poziţie ale unui obiect prin măsurarea acceleraţiilor
unghiulare şi liniare pe cele trei axe x, y,z.În funcţie de valoare şi de axa pe care este măsurată
acceleraţia, un accelerometru poate determina cu precizie orientarea unui obiect în spaţiu.

Figura 3_1.Sistemul de coordonate pentru un accelerometru

Considerând următorul sistem de coordonate ortogonale XYZ, în care vectorul → este în


𝑔𝑔
spaţiu şi ne alegem un sistem de 3 axe de coordonate perpendiculare x, y şi z (cu versorii: → pentru
𝑖𝑖
direcţia x, → pentru direcţia y şi → pentru direcţia z) atunci:
𝑗𝑗 𝑘𝑘

Figura 3_2.Sistem de coordonate cartiziene XOYZ

�⎯� �⎯⎯� �⎯� �⎯� adică, �� �⎯⎯� �⎯⎯� �⎯� unde 𝑔𝑔𝑥𝑥 , 𝑔𝑔𝑦𝑦 , 𝑔𝑔𝑧𝑧 sunt proiecţiile vectorului
𝑔𝑔= 𝑔𝑔𝑥𝑥 + 𝑔𝑔𝑦𝑦 + 𝑔𝑔 𝑧𝑧 𝑔𝑔 = 𝑔𝑔𝑥𝑥 𝑖𝑖 + 𝑔𝑔𝑦𝑦 𝑗𝑗 + 𝑔𝑔𝑧𝑧 𝑘𝑘

→ pe cele trei axe şi �⎯����� , �⎯����⎯� , �⎯����⎯� sau, 𝑔𝑔𝑥𝑥 = g*cosα , 𝑔𝑔𝑦𝑦 = g*cos β , 𝑔𝑔𝑧𝑧
𝑔𝑔 𝑔𝑔𝑥𝑥 = 𝑔𝑔 ∗ 𝑖𝑖 𝑔𝑔𝑦𝑦= 𝑔𝑔 ∗ 𝑗𝑗 𝑔𝑔𝑧𝑧 = 𝑔𝑔 ∗ 𝑘𝑘
= g*cos γ, unde cosα , cosβ , cos γ sunt cosinuşii directori ai direcţiei descrise de vectorul → cu
𝑔𝑔

9
fiecare dintre cele 3 axe.
𝑔𝑔𝑥𝑥 , 𝑔𝑔𝑦𝑦 , 𝑔𝑔𝑧𝑧 se mai numesc şi coordonatele vectorului → pe cele 3 axe.
𝑔𝑔
În cazul în care cunoaştem proiecţiile vectorului pe axele de coordonate putem folosi o forma
simplificată de scriere:
�⎯� �𝑔𝑔𝑥𝑥 , 𝑔𝑔𝑦𝑦 , 𝑔𝑔𝑧𝑧 � expresie care se citeşte vector → de coordonate 𝑔𝑔𝑥𝑥 , 𝑔𝑔𝑦𝑦 , 𝑔𝑔𝑧𝑧 .
𝑔𝑔= 𝑔𝑔

Tot pe baza relaţiilor scrise anterior putem afirma că:

⎧ α = �x 2 + y 2 + z 2
𝑥𝑥 = γ ∗ sin β ∗ cos α ⎪
z
� 𝑦𝑦 = γ ∗ sinβ ∗ sin β => β = cos ��x2 +y2 +z2�
−1

𝑧𝑧 = γ cosβ ⎨
⎪ γ = tan−1 � �
y
⎩ x

4.Bibliografie

[1] AN3461(https://www.nxp.com/files/sensors/doc/app_note/AN3461.pdf)
[2] adxl345-digital-accelerometer(https://cdn-learn.adafruit.com/downloads/pdf/adxl345-
digital-accelerometer.pdf)
[3] ADXL345-datashit(http://www.analog.com/media/en/technical-documentation/
data-sheets/ADXL345.pdf)
[4] http://www.analog.com/en/products/mems/memsaccelerometers/adxl345.html#product-overview

10