Satura rādītājs:

ADXL345 Izmantojot Arduino Uno R3: 5 soļi
ADXL345 Izmantojot Arduino Uno R3: 5 soļi

Video: ADXL345 Izmantojot Arduino Uno R3: 5 soļi

Video: ADXL345 Izmantojot Arduino Uno R3: 5 soļi
Video: How to Interface ADXL345 Accelerometer with Arduino UNO 2024, Jūlijs
Anonim
ADXL345 Izmantojot Arduino Uno R3
ADXL345 Izmantojot Arduino Uno R3

Šajā nodarbībā mēs iemācīsimies izmantot paātrinājuma sensoru ADXL345.

1. darbība: sastāvdaļas

- Arduino Uno dēlis * 1

- USB kabelis * 1

- ADXL345 *1

- Maizes dēlis * 1

- Jumper vadi

2. solis: princips

Paātrinājuma laikā radītā spēka mērīšanai izmanto akselerometru. Vissvarīgākais ir plaši pazīstamais gravitācijas paātrinājums, kas ir 1 g.

Izmērot gravitācijas izraisīto paātrinājumu, jūs varat aprēķināt ierīces slīpuma leņķi pret līdzenu virsmu. Analizējot dinamisko paātrinājumu, jūs varat pateikt, kā ierīce pārvietojas. Piemēram, pašbalansējošais dēlis vai hoverboard izmanto paātrinājuma sensoru un žiroskopu Kalmana filtram un stājas korekcijai.

ADXL345

ADXL345 ir mazs, plāns, mazjaudas, 3 asu akselerometrs ar augstas izšķirtspējas (13 bitu) mērījumu līdz ± 16 g. Digitālie izvaddati ir formatēti kā divu bitu 16 bitu papildinājumi, un tiem var piekļūt, izmantojot SPI (3 vai 4 vadu) vai I2C digitālo saskarni. Šajā eksperimentā tiek izmantota digitālā saskarne I2C.

Tas ir labi piemērots, lai izmērītu statisko gravitācijas paātrinājumu slīpuma noteikšanas lietojumos, kā arī dinamisku paātrinājumu, ko rada kustība vai trieciens. Tā augstā izšķirtspēja (4 mg/LSB) ļauj mērīt slīpuma izmaiņas par mazāk nekā 1,0 °. Un lieliskā jutība (3,9 mg/LSB @2g) nodrošina augstas precizitātes izvadi līdz pat ± 16 g.

Kā darbojas ADXL345

ADXL345 nosaka paātrinājumu ar sensora komponentu priekšpusē, un pēc tam elektriskā signāla uztveršanas sastāvdaļa to pārveido par elektrisko signālu, kas ir analogs. Pēc tam modulī integrētais AD adapteris pārveidos analogo signālu digitālā.

X_OUT, Y_OUT un Z_OUT ir vērtības attiecīgi X, Y un Z asī. Novietojiet moduli ar virspusi uz augšu: Z_OUT var sasniegt ne vairāk kā +1 g, minimālais X_OUT ir -1 g virzienā uz cirvja virzienu, bet minimālais Y_OUT ir -1 g virzienā Ay. No otras puses, pagrieziet moduli otrādi: minimālais Z_OUT ir -1 g, maksimālais X_OUT ir +1 g pret cirvja virzienu, bet maksimālais Y_OUT ir +1 g virzienā Ay., kā parādīts zemāk. Pagrieziet ADXL345 moduli, un jūs redzēsit trīs vērtību izmaiņas.

ja kanāls A mainās no augsta līmeņa uz zemu, ja kanāls B ir augsts līmenis, tas norāda, ka rotējošais kodētājs griežas pulksteņrādītāja virzienā (CW); ja B kanāls tajā brīdī ir zems, tas nozīmē griešanos pretēji pulksteņrādītāja virzienam (CCW). Tātad, ja mēs nolasām kanāla B vērtību, kad kanāls A ir zems, mēs varam zināt, kurā virzienā rotējošais kodētājs griežas.

Princips: skatiet rotācijas kodētāja moduļa shematisko diagrammu zemāk. No tā mēs redzam, ka rotējošā kodētāja 3. tapa, proti, moduļa CLK, ir kanāls B. 5. tapa, kas ir DT, ir kanāls A. Lai uzzinātu ierakstītāja rotācijas virzienu, vienkārši nolasiet CLK vērtību un DT.

Ķēdē ir 3.3V sprieguma regulatora mikroshēma, tāpēc moduli var darbināt ar 5V vai 3.3V.

Tā kā SDO ir pievienots GND, ADXL345 I2C adrese ir 0x53, 0xA6 rakstīšanai, 0xA7 lasīšanai

ADXL345 moduļa tapas funkcija.

3. darbība. Procedūras

Solis 1. Izveidojiet ķēdi.

2. darbība:

Lejupielādējiet kodu no vietnes

3. darbība:

Augšupielādējiet skici uz Arduino Uno tāfeles

Noklikšķiniet uz augšupielādes ikonas, lai augšupielādētu kodu vadības panelī.

Ja loga apakšdaļā parādās augšupielāde, tas nozīmē, ka skice ir veiksmīgi augšupielādēta.

Pēc augšupielādes atveriet Serial Monitor, kur varat redzēt atklātos datus. Mainoties moduļa paātrinājumam, skaitlis logā attiecīgi mainīsies.

4. solis: kods

Kods
Kods

// ADXL335

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

ADXL335

piezīme: vcc5v, bet ADXL335 Vs ir 3.3V

Ķēde:

5V: VCC

analogs 0: x ass

analogs 1: y ass

2. analogs: z ass

Pēc dedzināšanas

programmu, atveriet seriālā monitora atkļūdošanas logu, kur var redzēt, ka tiek parādīti atklātie dati. Ja paātrinājums mainās, skaitlis attiecīgi mainīsies.

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

/E -pasts:

//Mājas lapa: www.primerobotics.in

const int xpin =

A0; // akselerometra x ass

const int ypin =

A1; // y ass

const int zpin =

A2; // z ass (tikai 3 asu modeļiem)

anulēts iestatījums ()

{

// inicializēt seriālos sakarus:

Sērijas sākums (9600);

}

tukša cilpa ()

{

int x = analogRead (xpin); // lasīt no xpin

kavēšanās (1); //

int y = analogRead (ypin); // lasīt no ypin

kavēšanās (1);

int z = analogRead (zpin); // lasīt no zpin

pludiņš nulle_G = 338,0; // ADXL335 barošanas avots

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

//Sērijas.druka (x);

//Sērijas.print ("\t ");

//Sērijas.druka (y);

//Sērijas.print ("\t ");

//Sērijas.druka (z);

//Sērijas.print ("\n ");

peldēt

zero_Gx = 331.5; // x ass izeja zero_G: (x_max + x_min)/2

peldēt

zero_Gy = 329,5; // y ass zero_G izeja: (y_max + y_min)/2

float zero_Gz = 340.0; //

z ass nulle_G izeja: (z_max + z_min)/2

pludiņa skala =

67,6; // barošanas avots ar Vs 3.3V: 3.3v/5v *1024/3.3v *330mv/g = 67,6g

pludiņa skala_x =

65; // x ass mērogs: x_max/3.3v*330mv/g

pludiņa skala_y =

68,5; // y ass skala: y_max/3.3v*330mv/g

pludiņa skala_z =

68; // z ass skala: z_max/3.3v*330mv/g

Sērijas nospiedums (((pludiņš) x

- nulle_Gx)/skala_x); // izdrukāt x vērtību sērijas monitorā

Serial.print ("\ t");

Sērijas nospiedums (((pludiņš) y

- nulle_Gy)/skala_y); // izdrukāt y vērtību sērijas monitorā

Serial.print ("\ t");

Sērijas nospiedums (((pludiņš) z

- nulle_Gz)/skala_z); // drukājiet z vērtību sērijas monitorā

Serial.print ("\ n");

kavēšanās (1000); // pagaidiet 1 sekundi

}

5. darbība: koda analīze

ADXL345 eksperimenta kods sastāv no 3 daļām: inicializējiet katru portu un ierīci, iegūstiet un saglabājiet no sensoriem nosūtītos datus un pārveidojiet datus.

Ieteicams: