Sisukord:

ADXL345 Arduino Uno R3 kasutamine: 5 sammu
ADXL345 Arduino Uno R3 kasutamine: 5 sammu

Video: ADXL345 Arduino Uno R3 kasutamine: 5 sammu

Video: ADXL345 Arduino Uno R3 kasutamine: 5 sammu
Video: How to Interface ADXL345 Accelerometer with Arduino UNO 2024, November
Anonim
ADXL345 Arduino Uno R3 kasutamine
ADXL345 Arduino Uno R3 kasutamine

Selles õppetükis õpime kasutama kiirendusandurit ADXL345.

Samm: komponendid

- Arduino Uno plaat * 1

- USB -kaabel * 1

- ADXL345 *1

- Leivalaud * 1

- Jumper juhtmed

2. samm: põhimõte

Kiirenduse ajal tekkiva jõu mõõtmiseks kasutatakse kiirendusmõõturit. Kõige olulisem on üldtuntud raskuskiirendus, mis on 1 g.

Mõõtes gravitatsioonist tingitud kiirendust, saate arvutada seadme kaldenurga tasase pinna suhtes. Dünaamilise kiirenduse analüüsimisel saate öelda, kuidas seade liigub. Näiteks isetasakaalustav laud või hõljuklaud kasutab Kalmani filtri ja kehahoia korrigeerimiseks kiirendusandurit ja güroskoopi.

ADXL345

ADXL345 on väike, õhuke, väikese võimsusega 3-teljeline kiirendusmõõtur, millel on kõrge eraldusvõimega (13-bitine) mõõtmine kuni ± 16 g. Digitaalsed väljundandmed on vormindatud 16-bitise kahe täiendusena ja neile on juurdepääs kas SPI (3- või 4-juhtmeline) või I2C digitaalse liidese kaudu. Selles katses kasutatakse digitaalset liidest I2C.

See sobib hästi staatilise raskuskiirenduse mõõtmiseks kaldeanduriga rakendustes, samuti dünaamilist kiirendust, mis tuleneb liikumisest või löögist. Selle kõrge eraldusvõime (4 mg/LSB) võimaldab mõõta kalde muutust alla 1,0 °. Suurepärane tundlikkus (3,9 mg/LSB @2 g) tagab suure täpsusega kuni ± 16 g väljundi.

Kuidas ADXL345 töötab

ADXL345 tuvastab kiirenduse esiosas oleva andurikomponendiga ja seejärel muudab elektrilise signaali andur selle elektrisignaaliks, mis on analoog. Seejärel teisendab moodulisse integreeritud AD -adapter analoogsignaali digitaalseks.

X_OUT, Y_OUT ja Z_OUT on väärtused vastavalt X-, Y- ja Z -teljel. Asetage moodul esiküljega üles: Z_OUT võib ulatuda maksimaalselt +1 g -ni, minimaalne X_OUT on -1 g kirve suunas ja minimaalne Y_OUT on -1 g Ay suunas. Teisest küljest keerake moodul tagurpidi: minimaalne Z_OUT on -1g, maksimaalne X_OUT on +1g kirve suunas ja maksimaalne Y_OUT on +1g Ay suunas., nagu allpool näidatud. Pöörake ADXL345 moodulit ja näete kolme väärtuse muutust.

kui kanal A muutub kõrgelt tasemelt madalale, kui kanal B on kõrgel tasemel, näitab see pöörleva koodri pöörlemist päripäeva (CW); kui sel hetkel on kanal B madal, tähendab see pöörlemist vastupäeva (CCW). Seega, kui loeme kanali B väärtust, kui kanal A on madal, saame teada, millises suunas pöörlev kooder pöörleb.

Põhimõte: vaadake allolevat pöörleva kodeerija mooduli skemaatilist diagrammi. Sellest näeme, et pöörleva kodeerija tihvt 3, nimelt moodulil CLK, on kanal B. Pin 5, mis on DT, on kanal A. Salvesti pöörlemissuuna teadmiseks lugege lihtsalt CLK väärtust ja DT.

Ahelas on 3,3 V pingeregulaatori kiip, nii et saate moodulit toita 5 V või 3,3 V pingega.

Kuna SDO on ühendatud GND -ga, on ADXL345 I2C -aadress 0x53, kirjutamiseks 0xA6, lugemiseks 0xA7

ADXL345 mooduli tihvtifunktsioon.

3. samm: protseduurid

Samm 1. Ehitage ahel.

2. samm:

Laadige kood alla aadressilt

3. samm:

Laadige eskiis üles Arduino Uno tahvlile

Koodi juhtpaneelile üleslaadimiseks klõpsake üleslaadimise ikooni.

Kui akna allosas kuvatakse "Valmis üleslaadimine", tähendab see, et visand on edukalt üles laaditud.

Pärast üleslaadimist avage Serial Monitor, kus näete tuvastatud andmeid. Kui mooduli kiirendus muutub, muutub näitaja aknal vastavalt.

4. samm: kood

Kood
Kood

// ADXL335

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

ADXL335

märkus: vcc5v, kuid ADXL335 Vs on 3.3V

Ahel:

5V: VCC

analoog 0: x-telg

analoog 1: y-telg

analoog 2: z-telg

Pärast põletamist

programm, avage seeriamonitori silumisaken, kus näete tuvastatud andmete kuvamist. Kui kiirendus varieerub, muutub see näitaja vastavalt.

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

/E -post:

// Veebisait: www.primerobotics.in

const int xpin =

A0; // kiirendusmõõturi x-telg

const int ypin =

A1; // y-telg

const int zpin =

A2; // z-telg (ainult 3-teljelistel mudelitel)

tühine seadistus ()

{

// jadaühenduse initsialiseerimine:

Seriaalne algus (9600);

}

tühine tsükkel ()

{

int x = analogRead (xpin); // lugeda xpinist

viivitus (1); //

int y = analogRead (ypin); // lugeda ypinist

viivitus (1);

int z = analogRead (zpin); // lugeda zpinist

ujuk null_G = 338,0; // ADXL335 toiteallikas

Vs 3.3V järgi: 3.3V/5V*1024 = 676/2 = 338

//Sarja.print (x);

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

//Sarja.print (y);

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

//Seriaalne.print (z);

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

hõljuma

zero_Gx = 331.5; // x telje null_G väljund: (x_max + x_min)/2

hõljuma

zero_Gy = 329,5; // y telje null_G väljund: (y_max + y_min)/2

float zero_Gz = 340.0; //

z telje null_G väljund: (z_max + z_min)/2

ujuk skaala =

67,6; // toiteallikas Vs 3.3V: 3.3v/5v *1024/3.3v *330mv/g = 67,6g

ujuk skaala_x =

65; // x -telje skaala: x_max/3.3v*330mv/g

ujuk skaala_y =

68,5; // y -telje skaala: y_max/3.3v*330mv/g

ujuk skaala_z =

68; // z -telje skaala: z_max/3.3v*330mv/g

Seeria.print (((ujuk) x

- null_Gx)/skaala_x); // prindi x väärtus jadamonitorile

Serial.print ("\ t");

Serial.print (((float) y

- null_Gy)/skaala_y); // prindi y väärtus jadamonitorile

Serial.print ("\ t");

Serial.print (((ujuk) z

- null_Gz)/skaala_z); // printige z väärtus jadamonitorile

Serial.print ("\ n");

viivitus (1000); // oota 1 sekund

}

Samm: koodi analüüs

ADXL345 katse kood sisaldab 3 osa: iga pordi ja seadme lähtestamine, anduritelt saadetud andmete hankimine ja salvestamine ning andmete teisendamine.

Soovitan: