Sisällysluettelo:

ADXL345 Arduino Uno R3: 5 vaihetta
ADXL345 Arduino Uno R3: 5 vaihetta

Video: ADXL345 Arduino Uno R3: 5 vaihetta

Video: ADXL345 Arduino Uno R3: 5 vaihetta
Video: How To Interface ADXL335 Analog Accelerometer Sensor With Arduino 2024, Heinäkuu
Anonim
ADXL345 Arduino Uno R3: n käyttö
ADXL345 Arduino Uno R3: n käyttö

Tässä oppitunnissa opimme käyttämään kiihtyvyysanturia ADXL345.

Vaihe 1: Komponentit

- Arduino Uno -levy * 1

- USB -kaapeli * 1

- ADXL345 *1

- Leipälauta * 1

- Hyppyjohdot

Vaihe 2: Periaate

Kiihtyvyysmittaria käytetään mittaamaan kiihtyvyyden aikana syntyvää voimaa. Tärkein on yleisesti tunnettu painovoiman kiihtyvyys, joka on 1 g.

Mittaamalla painovoiman aiheuttamaa kiihtyvyyttä voit laskea laitteen kallistuskulman tasopintaan nähden. Dynaamisen kiihtyvyyden analysoinnin avulla voit kertoa, miten laite liikkuu. Esimerkiksi itsetasapainotuslevy tai leijulauta soveltaa kiihtyvyysanturia ja gyroskooppia Kalman-suodattimeen ja asennon korjaamiseen.

ADXL345

ADXL345 on pieni, ohut, pienitehoinen, 3-akselinen kiihtyvyysanturi, jonka tarkkuus (13-bittinen) mitataan jopa ± 16 g. Digitaalinen lähtötieto on muotoiltu 16-bittiseksi kahden komplementiksi ja siihen pääsee joko SPI (3- tai 4-johtiminen) tai I2C-digitaaliliitännän kautta. Tässä kokeessa käytetään digitaalista I2C -rajapintaa.

Se soveltuu hyvin staattisen painovoiman kiihtyvyyden mittaamiseen kallistusanturisovelluksissa sekä liikkeen tai iskun aiheuttamaa dynaamista kiihtyvyyttä. Sen suuri resoluutio (4 mg/LSB) mahdollistaa kaltevuuden muutoksen mittaamisen alle 1,0 °. Erinomainen herkkyys (3,9 mg/LSB @2 g) tarjoaa tarkan tuloksen jopa ± 16 g.

Kuinka ADXL345 toimii

ADXL345 tunnistaa kiihtyvyyden, kun anturikomponentti on edessä, ja sitten sähköisen signaalin tunnistava komponentti muuttaa sen sähköiseksi signaaliksi, joka on analoginen. Seuraavaksi moduuliin integroitu AD -sovitin muuntaa analogisen signaalin digitaaliseksi.

X_OUT, Y_OUT ja Z_OUT ovat arvot X-, Y- ja Z -akselilla. Aseta moduuli kuvapuoli ylöspäin: Z_OUT voi saavuttaa korkeintaan +1 g, vähintään X_OUT on -1 g akselin suuntaan ja minimi Y_OUT on -1 g kohti Ay -suuntaa. Toisaalta, käännä moduuli ylösalaisin: Z_OUT: n minimi on -1 g, X_OUT: n maksimimäärä on +1 g akselin suuntaan ja suurin Y_OUT on +1 g kohti Ay -suuntaa., kuten alla. Käännä ADXL345 -moduulia ja näet kolmen arvon muutoksen.

kun kanava A muuttuu korkealta tasolta matalalle tasolle, jos kanava B on korkealla tasolla, se osoittaa, että pyörivä anturi pyörii myötäpäivään (CW); jos kanava B on tällä hetkellä matalalla tasolla, se tarkoittaa pyörii vastapäivään (CCW). Joten jos luemme kanavan B arvon, kun kanava A on matalalla tasolla, voimme tietää mihin suuntaan pyörivä anturi pyörii.

Periaate: Katso alla oleva kaavio Rotary Encoder -moduulista. Siitä voimme nähdä, että kiertokooderin nasta 3, eli moduulin CLK, on kanava B. Nasta 5, joka on DT, on kanava A. Jos haluat tietää tallentimen pyörimissuunnan, lue vain CLK- ja DT.

Piirissä on 3,3 voltin jännitesäätimen siru, joten voit käyttää moduulia 5 V: n tai 3,3 V: n jännitteellä.

Koska SDO on kytketty GND: hen, ADXL345: n I2C -osoite on 0x53, 0xA6 kirjoitusta varten, 0xA7 lukemista varten

ADXL345 -moduulin nastatoiminto.

Vaihe 3: Toimenpiteet

Vaihe 1. Rakenna piiri.

Vaihe 2:

Lataa koodi osoitteesta

Vaihe 3:

Lataa luonnos Arduino Uno -levylle

Napsauta Lähetä -kuvaketta ladataksesi koodin ohjauspaneelille.

Jos "Valmis lataus" näkyy ikkunan alareunassa, se tarkoittaa, että luonnos on ladattu onnistuneesti.

Avaa lataamisen jälkeen Serial Monitor, jossa näet havaitut tiedot. Kun moduulin kiihtyvyys muuttuu, luku muuttuu vastaavasti ikkunassa.

Vaihe 4: Koodi

Koodi
Koodi

// ADXL335

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

ADXL335

huomautus: vcc5v, mutta ADXL335 Vs on 3.3V

Piiri:

5V: VCC

analoginen 0: x-akseli

analoginen 1: y-akseli

analoginen 2: z-akseli

Polttamisen jälkeen

avaa sarjamonitorin virheenkorjausikkuna, jossa näet havaitut tiedot. Kun kiihtyvyys vaihtelee, luku vaihtelee vastaavasti.

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

/Sähköposti:

// Verkkosivusto: www.primerobotics.in

const int xpin =

A0; // kiihtyvyysmittarin x-akseli

const int ypin =

A1; // y-akseli

const int zpin =

A2; // z-akseli (vain 3-akseliset mallit)

mitätön asennus ()

{

// sarjaliikenteen alustaminen:

Sarja.alku (9600);

}

tyhjä silmukka ()

{

int x = analoginenLue (xpin); // lukea xpinistä

viive (1); //

int y = analoginen lukema (ypin); // lukea ypinistä

viive (1);

int z = analoginen luku (zpin); // lukea zpinistä

float zero_G = 338,0; // ADXL335 -virtalähde

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

//Sarjanjälki (x);

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

// Sarjanjälki (y);

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

//Sarjanjälki (z);

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

kellua

zero_Gx = 331.5; // x -akselin nolla_G -lähtö: (x_max + x_min)/2

kellua

zero_Gy = 329,5; // y -akselin nolla_G -lähtö: (y_max + y_min)/2

float zero_Gz = 340.0; //

z -akselin nolla_G -lähtö: (z_max + z_min)/2

kelluva asteikko =

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

kelluva asteikko_x =

65; // x -akselin asteikko: x_max/3.3v*330mv/g

float scale_y =

68,5; // y -akselin asteikko: y_max/3.3v*330mv/g

float scale_z =

68; // z -akselin asteikko: z_max/3.3v*330mv/g

Serial.print (((float) x

- nolla_Gx)/asteikko_x); // tulosta x -arvo sarjamonitorille

Serial.print ("\ t");

Serial.print (((float) y

- nolla_Gy)/asteikko_y); // tulosta y -arvo sarjamonitoriin

Serial.print ("\ t");

Serial.print (((kelluva) z

- nolla_Gz)/asteikko_z); // tulosta z -arvo sarjamonitorille

Serial.print ("\ n");

viive (1000); // odota 1 sekunti

}

Vaihe 5: Koodianalyysi

ADXL345 -kokeilun koodi sisältää 3 osaa: alusta jokainen portti ja laite, hanki ja tallenna antureilta lähetetty data ja muunna tiedot.

Suositeltava: