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, Studeni
Anonim
ADXL345 Korištenje Arduino Uno R3
ADXL345 Korištenje Arduino Uno R3

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

Korak 1: Komponente

- Arduino Uno ploča * 1

- USB kabel * 1

- ADXL345 *1

- Oglasna ploča * 1

- Žice za kratkospojnike

Korak 2: Princip

Akcelerometar se koristi za mjerenje sile nastale tijekom ubrzanja. Najvažnije je općepoznato ubrzanje gravitacije od 1g.

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, samo balansirajuć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 s mjerenjima visoke razlučivosti (13 bita) do ± 16 g. Digitalni izlazni podaci formatirani su kao 16-bitna dva komplementa i dostupni su putem SPI (3- ili 4-žice) ili I2C digitalnog sučelja. U ovom eksperimentu koristi se I2C digitalno sučelje.

Prikladno je za mjerenje statičkog ubrzanja gravitacije u aplikacijama osjetnika nagiba, kao i dinamičkog ubrzanja koje proizlazi iz kretanja ili udara. Njegova visoka razlučivost (4 mg/LSB) omogućuje mjerenje promjene nagiba za manje od 1,0 °. I izvrsna osjetljivost (3,9 mg/LSB @2 g) omogućuje visoku preciznost do ± 16 g.

Kako radi 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, odnosno Z. 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 niže. Okrećite modul ADXL345 i vidjet ćete promjenu tri vrijednosti.

kada se kanal A promijeni s visoke razine na nisku razinu, ako je kanal B visoke razine, to pokazuje da se rotacijski davač okreće u smjeru kazaljke na satu (CW); ako je u tom trenutku kanal B na niskoj razini, to znači da se okreće suprotno od kazaljke na satu (CCW). Dakle, ako očitamo vrijednost kanala B kada je kanal A na niskoj razini, možemo znati u kojem se smjeru okreće rotacijski davač.

Načelo: 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 znali smjer okretanja snimača, samo pročitajte vrijednost CLK i DT.

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

Budući da je SDO spojen 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 s

3. korak:

Prenesite skicu na Arduino Uno ploču

Pritisnite ikonu za prijenos da biste učitali kôd na upravljačku ploču.

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

Nakon prijenosa otvorite Serial Monitor, gdje možete vidjeti otkrivene podatke. Kad se ubrzanje modula promijeni, brojka će se u skladu s tim promijeniti na prozoru.

Korak 4: Kodirajte

Kodirati
Kodirati

// ADXL335

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

ADXL335

napomena: vcc5v, ali ADXL335 Vs je 3.3V

Krug:

5V: VCC

analogno 0: os x

analogni 1: os y

analogni 2: z-os

Nakon spaljivanja

programa, otvorite prozor za otklanjanje pogrešaka serijskog monitora u kojem možete vidjeti otkrivene podatke. Kad se ubrzanje mijenja, brojka će se prema tome mijenjati.

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

/E -mail:

// Web stranica: www.primerobotics.in

const int xpin =

A0; // os x mjerila ubrzanja

const int ypin =

A1; // y-os

const int zpin =

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

void setup ()

{

// inicijaliziranje serijske komunikacije:

Serial.begin (9600);

}

void loop ()

{

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

odgoda (1); //

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

odgoda (1);

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

plovak nula_G = 338,0; // napajanje ADXL335

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

//Serial.print(x);

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

//Serijski.ispis (y);

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

//Serijski.tisak(z);

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

plutati

zero_Gx = 331.5; // izlaz zero_G na osi x: (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,3 V: 3,3 v/5 v *1024/3,3 v *330 mv/g = 67,6 g

float scale_x =

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

float scale_y =

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

float scale_z =

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

Serial.print (((float) x

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

Serial.print ("\ t");

Serial.print (((float) y

- nula_Gy)/ljestvica_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čeni: