Cuprins:

ADXL345 Utilizarea Arduino Uno R3: 5 pași
ADXL345 Utilizarea Arduino Uno R3: 5 pași

Video: ADXL345 Utilizarea Arduino Uno R3: 5 pași

Video: ADXL345 Utilizarea Arduino Uno R3: 5 pași
Video: ADXL345 Акселерометр 2024, Iulie
Anonim
ADXL345 Utilizarea Arduino Uno R3
ADXL345 Utilizarea Arduino Uno R3

În această lecție, vom învăța cum să folosim senzorul de accelerație ADXL345.

Pasul 1: Componente

- placa Arduino Uno * 1

- Cablu USB * 1

- ADXL345 * 1

- Panou * 1

- fire de jumper

Pasul 2: Principiu

Un accelerometru este folosit pentru a măsura forța generată în timpul accelerației. Cea mai fundamentală este accelerația de greutate cunoscută în mod obișnuit, care este 1g.

Măsurând accelerația cauzată de gravitație, puteți calcula unghiul de înclinare al dispozitivului față de suprafața de nivel. Analizând accelerația dinamică, puteți spune modul în care se deplasează dispozitivul. De exemplu, placa auto-echilibrată sau hoverboard aplică senzorul de accelerație și giroscopul pentru filtrul Kalman și corectarea posturii.

ADXL345

ADXL345 este un accelerometru pe 3 axe, mic, subțire, cu putere redusă, cu măsurare de înaltă rezoluție (13 biți), de până la ± 16 g. Datele de ieșire digitală sunt formatate ca un complement de 16 biți și sunt accesibile fie printr-o interfață digitală SPI (3 sau 4 fire) sau I2C. În acest experiment, este utilizată interfața digitală I2C.

Este foarte potrivit pentru a măsura accelerația statică a gravitației în aplicațiile de detectare a înclinării, precum și accelerația dinamică rezultată din mișcare sau șoc. Rezoluția sa înaltă (4 mg / LSB) permite măsurarea schimbării înclinației cu mai puțin de 1,0 °. Iar sensibilitatea excelentă (3,9 mg / LSB @ 2g) oferă o ieșire de înaltă precizie de până la ± 16g.

Cum funcționează ADXL345

ADXL345 detectează accelerația cu componenta de detectare din față, iar apoi componenta de detectare a semnalului electric o transformă în semnal electric, care este analog. Apoi, adaptorul AD integrat pe modul va converti semnalul analogic într-unul digital.

X_OUT, Y_OUT și Z_OUT sunt valorile de pe axele X, Y și respectiv Z. Așezați modulul cu fața în sus: Z_OUT poate atinge cel mult +1g, minimum X_OUT este -1g spre direcția Ax, iar minimul Y_OUT este -1g spre direcția Ay. Pe de altă parte, întoarceți modulul cu susul în jos: minimul Z_OUT este -1g, maximul X_OUT este + 1g spre direcția Ax, iar maximul Y_OUT este + 1g spre direcția Ay., așa cum se arată mai jos. Rotiți modulul ADXL345 și veți vedea schimbarea a trei valori.

când canalul A se schimbă de la nivel înalt la nivel scăzut, dacă canalul B este de nivel înalt, indică faptul că codificatorul rotativ se rotește în sensul acelor de ceasornic (CW); dacă în acel moment canalul B este de nivel scăzut, înseamnă că se rotește în sens invers acelor de ceasornic (CCW). Deci, dacă citim valoarea canalului B când canalul A este de nivel scăzut, putem ști în ce direcție se rotește codificatorul rotativ.

Principiu: Vezi mai jos schema schemei modulului codificatorului rotativ. Din acesta putem vedea că pinul 3 al codificatorului rotativ, și anume CLK de pe modul, este canalul B. Pinul 5, care este DT, este canalul A. Pentru a cunoaște direcția de rotație a înregistratorului, trebuie doar să citiți valoarea CLK și DT.

Există un cip regulator de tensiune de 3,3V în circuit, astfel încât să puteți alimenta modulul cu 5V sau 3,3V.

Deoarece SDO a fost conectat la GND, adresa I2C a ADXL345 este 0x53, 0xA6 pentru scriere, 0xA7 pentru citire

Funcția Pin a modulului ADXL345.

Pasul 3: Proceduri

Pasul 1. Construiți circuitul.

Pasul 2:

Descărcați codul de la

Pasul 3:

Încărcați schița pe placa Arduino Uno

Faceți clic pe pictograma Încărcare pentru a încărca codul pe placa de control.

Dacă „Încărcare finalizată” apare în partea de jos a ferestrei, înseamnă că schița a fost încărcată cu succes.

După încărcare, deschideți Serial Monitor, unde puteți vedea datele detectate. Când accelerarea modulului se schimbă, cifra se va modifica corespunzător pe fereastră.

Pasul 4: Cod

Cod
Cod

// ADXL335

/********************************

ADXL335

notă: vcc5v, dar ADXL335 Vs este de 3,3V

Circuitul:

5V: VCC

analog 0: axa x

analog 1: axa y

analogul 2: axa z

După arderea

program, deschideți fereastra de depanare a monitorului serial, unde puteți vedea afișate datele detectate. Când accelerația variază, cifra va varia în consecință.

*********************************

/E-mail:

//Website:www.primerobotics.in

const int xpin =

A0; // axa x a accelerometrului

const int ypin =

A1; // axa y

const int zpin =

A2; // axa z (numai la modelele cu 3 axe)

configurare nulă ()

{

// inițializați comunicațiile seriale:

Serial.begin (9600);

}

bucla nulă ()

{

int x = analogRead (xpin); // citit din xpin

întârziere (1); //

int y = analogRead (ypin); // citit din ypin

întârziere (1);

int z = analogRead (zpin); // citit din zpin

float zero_G = 338,0; // Sursa de alimentare ADXL335

de Vs 3.3V: 3.3V / 5V * 1024 = 676/2 = 338

//Serial.print(x);

//Serial.print("\t ");

//Serial.print(y);

//Serial.print("\t ");

//Serial.print(z);

//Serial.print("\n ");

pluti

zero_Gx = 331,5; // ieșirea zero_G a axei x: (x_max + x_min) / 2

pluti

zero_Gy = 329,5; // ieșirea zero_G a axei y: (y_max + y_min) / 2

float zero_Gz = 340.0; // the

ieșire zero_G a axei z: (z_max + z_min) / 2

float scale =

67,6; // sursa de alimentare Vs 3.3V: 3.3v / 5v * 1024 / 3.3v * 330mv / g = 67.6g

float scale_x =

65; // scala axei x: x_max / 3.3v * 330mv / g

float scale_y =

68,5; // scala axei y: y_max / 3,3v * 330mv / g

float scale_z =

68; // scala axei z: z_max / 3.3v * 330mv / g

Serial.print (((float) x

- zero_Gx) / scale_x); // tipăriți valoarea x pe monitorul serial

Serial.print ("\ t");

Serial.print (((float) y

- zero_Gy) / scale_y); // tipăriți valoarea y pe monitorul serial

Serial.print ("\ t");

Serial.print ((((float) z.)

- zero_Gz) / scale_z); // tipăriți valoarea z pe monitorul serial

Serial.print ("\ n");

întârziere (1000); // așteptați 1 secundă

}

Pasul 5: Analiza codului

Codul pentru experimentul ADXL345 include 3 părți: inițializați fiecare port și dispozitiv, achiziționați și stocați datele trimise de la senzori și convertiți datele.

Recomandat: