Sadržaj:

ADXL345 Korištenje Arduino Uno R3: 5 koraka
ADXL345 Korištenje Arduino Uno R3: 5 koraka

Video: ADXL345 Korištenje Arduino Uno R3: 5 koraka

Video: ADXL345 Korištenje Arduino Uno R3: 5 koraka
Video: ADXL345 Акселерометр 2024, Juli
Anonim
ADXL345 Korištenje Arduino Uno R3
ADXL345 Korištenje Arduino Uno R3

U ovoj lekciji ćemo naučiti kako koristiti senzor ubrzanja ADXL345.

Korak 1: Komponente

- Arduino Uno ploča * 1

- USB kabel * 1

- ADXL345 *1

- Oglasna ploča * 1

- Žice za spajanje

Korak 2: Princip

Akcelerometar se koristi za mjerenje sile nastale pri ubrzanju. Najvažnije je opće poznato ubrzanje gravitacije od 1 g.

Mjerenjem ubrzanja uzrokovanog gravitacijom možete izračunati kut nagiba uređaja prema ravnoj površini. Analizom dinamičkog ubrzanja možete odrediti način na koji se uređaj kreće. Na primjer, samobalansirajuća ploča ili hoverboard primjenjuje senzor ubrzanja i žiroskop za Kalmanov filter i ispravljanje položaja.

ADXL345

ADXL345 je mali, tanki, troosni akcelerometar male snage, sa visokom rezolucijom (13-bitnim) mjerenjem do ± 16 g. Digitalni izlazni podaci formatirani su kao 16-bitna dva komplementa i dostupni su putem SPI (3- ili 4-žičnog) ili I2C digitalnog sučelja. U ovom eksperimentu koristi se I2C digitalno sučelje.

Dobro je prilagođen za mjerenje statičkog ubrzanja gravitacije u aplikacijama osjetljivog nagiba, kao i dinamičkog ubrzanja koje je rezultat kretanja ili udara. Njegova visoka rezolucija (4 mg/LSB) omogućava mjerenje promjene nagiba za manje od 1,0 °. I izvrsna osetljivost (3,9 mg/LSB @2 g) obezbeđuje visoku preciznost do ± 16 g.

Kako funkcionira ADXL345?

ADXL345 detektira ubrzanje s osjetnom komponentom na prednjoj strani, a zatim je komponenta osjetljiva na električni signal mijenja u električni signal, koji je analogni. Zatim, AD adapter integriran na modulu će pretvoriti analogni signal u digitalni.

X_OUT, Y_OUT i Z_OUT su vrijednosti na osi X, Y i Z respektivno. Postavite modul licem prema gore: Z_OUT može doseći najviše 1g, minimalni X_OUT je -1g prema smjeru sjekire, a minimalni Y_OUT je -1g prema smjeru Ay. S druge strane, okrenite modul naopako: minimum Z_OUT je -1g, maksimum X_OUT je +1g prema smjeru sjekire, a maksimum Y_OUT je +1g prema smjeru Ay., kao što je prikazano u nastavku. Okrećite modul ADXL345 i vidjet ćete promjenu tri vrijednosti.

kada se kanal A promijeni s visokog na niski nivo, ako je kanal B na visokom nivou, to znači da se rotacijski davač okreće u smjeru kazaljke na satu (CW); ako je u tom trenutku kanal B nizak, to znači da se okreće suprotno od kazaljke na satu (CCW). Dakle, ako očitamo vrijednost kanala B kada je kanal A nizak, možemo znati u kojem se smjeru okreće rotacijski davač.

Princip: Pogledajte shematski dijagram modula rotacijskog davača u nastavku. Iz nje možemo vidjeti da je pin 3 rotacijskog davača, naime CLK na modulu, kanal B. Pin 5, koji je DT, je kanal A. Da biste saznali smjer okretanja snimača, samo pročitajte vrijednost CLK i DT.

U krugu postoji čip regulatora napona od 3,3 V, tako da možete napajati modul s 5 V ili 3,3 V.

Budući da je SDO povezan na GND, I2C adresa ADXL345 je 0x53, 0xA6 za pisanje, 0xA7 za čitanje

Pin funkcija ADXL345 modula.

Korak 3: Postupci

Korak 1. Izgradite krug.

Korak 2:

Preuzmite kôd sa

Korak 3:

Prenesite skicu na Arduino Uno ploču

Pritisnite ikonu Upload da biste učitali kôd na kontrolnu ploču.

Ako se na dnu prozora pojavi poruka "Gotovo učitavanje", to znači da je skica uspješno učitana.

Nakon učitavanja otvorite Serial Monitor, gdje možete vidjeti otkrivene podatke. Kada se ubrzanje modula promijeni, broj će se promijeniti u prozoru.

Korak 4: Kodirajte

Kod
Kod

// ADXL335

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

ADXL335

napomena: vcc5v, ali ADXL335 Vs je 3.3V

Krug:

5V: VCC

analogno 0: os x

analogni 1: y-osa

analog 2: z-os

Nakon spaljivanja

programa, otvorite prozor za otklanjanje grešaka serijskog monitora, gdje možete vidjeti prikazane otkrivene podatke. Kad ubrzanje varira, brojka će se prema tome mijenjati.

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

/Email:

//Website:www.primerobotics.in

const int xpin =

A0; // x osa akcelerometra

const int ypin =

A1; // y-osi

const int zpin =

A2; // z-os (samo na modelima s 3 osi)

void setup ()

{

// inicijalizira serijsku komunikaciju:

Serial.begin (9600);

}

void loop ()

{

int x = analogRead (xpin); // čitanje sa xpina

kašnjenje (1); //

int y = analogRead (ypin); // čitanje sa ypina

kašnjenje (1);

int z = analogRead (zpin); // čitanje sa zpina

plovak nula_G = 338,0; // ADXL335 napajanje

od 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 ");

plutati

zero_Gx = 331.5; // nulti_G izlaz x osi: (x_max + x_min)/2

plutati

zero_Gy = 329.5; // nulti_G izlaz y osi: (y_max + y_min)/2

float zero_Gz = 340.0; //

nulti_G izlaz z osi: (z_max + z_min)/2

float scale =

67.6; // napajanje Vs 3.3V: 3.3v/5v *1024/3.3v *330mv/g = 67.6g

float scale_x =

65; // skala x osi: x_max/3,3 v*330 mv/g

float scale_y =

68,5; // skala osi y: y_max/3,3 v*330 mv/g

float scale_z =

68; // skala osi z: z_max/3,3 v*330 mv/g

Serial.print (((float) x

- nula_Gx)/skala_x); // ispisuje x vrijednost na serijskom monitoru

Serial.print ("\ t");

Serial.print (((float) y

- nula_Gy)/skala_y); // ispisuje vrijednost y na serijskom monitoru

Serial.print ("\ t");

Serial.print (((float) z

- nula_Gz)/skala_z); // ispisuje vrijednost z na serijskom monitoru

Serial.print ("\ n");

kašnjenje (1000); // pričekajte 1 sekundu

}

Korak 5: Analiza koda

Kod za eksperiment ADXL345 sastoji se od 3 dijela: inicijalizirati svaki port i uređaj, prikupiti i pohraniti podatke poslane sa senzora i pretvoriti podatke.

Preporučuje se: