Satura rādītājs:

Paātrinājuma mērīšana, izmantojot ADXL345 un Arduino Nano: 4 soļi
Paātrinājuma mērīšana, izmantojot ADXL345 un Arduino Nano: 4 soļi

Video: Paātrinājuma mērīšana, izmantojot ADXL345 un Arduino Nano: 4 soļi

Video: Paātrinājuma mērīšana, izmantojot ADXL345 un Arduino Nano: 4 soļi
Video: Как использовать акселерометр и гироскоп MPU-6050 с кодом Arduino 2024, Jūlijs
Anonim
Image
Image

ADXL345 ir mazs, plāns, īpaši mazas jaudas 3 asu akselerometrs ar augstas izšķirtspējas (13 bitu) mērījumu līdz ± 16 g. Digitālie izvaddati tiek formatēti kā 16 bitu papildinājumi, un tie ir pieejami, izmantojot I2 C digitālo saskarni. Tas mēra 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 (3,9 mg/LSB) ļauj izmērīt slīpuma izmaiņas, kas ir mazākas par 1,0 °.

Šajā apmācībā ir parādīta ADXL345 sensora moduļa saskarne ar arduino nano. Lai nolasītu paātrinājuma vērtības, mēs esam izmantojuši arduino ar I2c adapteri. Šis I2C adapteris padara savienojumu ar sensora moduli vieglu un uzticamāku.

1. darbība. Nepieciešamā aparatūra:

Nepieciešamā aparatūra
Nepieciešamā aparatūra
Nepieciešamā aparatūra
Nepieciešamā aparatūra
Nepieciešamā aparatūra
Nepieciešamā aparatūra

Materiāli, kas nepieciešami mūsu mērķa sasniegšanai, ietver šādas aparatūras sastāvdaļas:

1. ADXL345

2. Arduino Nano

3. I2C kabelis

4. I2C vairogs Arduino Nano

2. darbība. Aparatūras savienošana:

Aparatūras savienojums
Aparatūras savienojums
Aparatūras savienojums
Aparatūras savienojums

Aparatūras savienošanas sadaļa pamatā izskaidro nepieciešamos vadu savienojumus starp sensoru un arduino nano. Pareizu savienojumu nodrošināšana ir pamatvajadzība, strādājot pie jebkuras sistēmas vēlamajam rezultātam. Tātad nepieciešamie savienojumi ir šādi:

ADXL345 darbosies, izmantojot I2C. Šeit ir elektroinstalācijas shēmas piemērs, kas parāda, kā savienot katru sensora saskarni.

Izņemot komplektu, tāfele ir konfigurēta I2C saskarnei, tāpēc mēs iesakām izmantot šo savienojumu, ja esat citādi agnostiķis.

Viss, kas Jums nepieciešams, ir četri vadi! Nepieciešami tikai četri savienojumi Vcc, Gnd, SCL un SDA, un tie ir savienoti, izmantojot I2C kabeli.

Šie savienojumi ir parādīti iepriekš redzamajos attēlos.

3. darbība. Paātrinājuma mērīšanas kods:

Paātrinājuma mērīšanas kods
Paātrinājuma mērīšanas kods

Sāksim ar arduino kodu tūlīt.

Izmantojot sensoru moduli ar arduino, mēs iekļaujam Wire.h bibliotēku. "Wire" bibliotēkā ir funkcijas, kas atvieglo i2c komunikāciju starp sensoru un arduino plati.

Viss arduino kods lietotāja ērtībai ir norādīts zemāk:

#iekļaut

// ADXL345 I2C adrese ir 0x53 (83)

#define Addr 0x53

anulēts iestatījums ()

{

// Inicializēt I2C komunikāciju kā MASTER

Wire.begin ();

// Inicializēt seriālo komunikāciju, iestatīt pārraides ātrumu = 9600

Sērijas sākums (9600);

// Sākt I2C pārraidi

Wire.beginTransmission (Addr);

// Atlasiet joslas platuma likmju reģistru

Wire.write (0x2C);

// Normālais režīms, izejas datu pārraides ātrums = 100 Hz

Wire.write (0x0A);

// Apturēt I2C pārraidi

Wire.endTransmission ();

// Sākt I2C pārraidi

Wire.beginTransmission (Addr);

// Atlasiet jaudas kontroles reģistru

Wire.write (0x2D);

// Automātiskā miega režīma atspējošana

Wire.write (0x08);

// Apturēt I2C pārraidi

Wire.endTransmission ();

// Sākt I2C pārraidi

Wire.beginTransmission (Addr);

// Atlasīt datu formāta reģistru

Wire.write (0x31);

// Pašpārbaude atspējota, 4 vadu interfeiss, pilna izšķirtspēja, diapazons = +/- 2 g

Wire.write (0x08);

// Apturēt I2C pārraidi

Wire.endTransmission ();

kavēšanās (300);

}

tukša cilpa ()

{

neparakstīti int dati [6];

par (int i = 0; i <6; i ++)

{

// Sākt I2C pārraidi

Wire.beginTransmission (Addr);

// Atlasiet datu reģistru

Wire.write ((50 + i));

// Apturēt I2C pārraidi

Wire.endTransmission ();

// Pieprasīt 1 baitu datu

Wire.requestFrom (Addr, 1);

// Lasīt 6 baitus datu

// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb

ja (Wire.available () == 1)

{

dati = Wire.read ();

}

}

// Pārvērst datus par 10 bitiem

int xAccl = (((dati [1] & 0x03) * 256) + dati [0]);

ja (xAccl> 511)

{

xAccl -= 1024;

}

int yAccl = (((dati [3] & 0x03) * 256) + dati [2]);

ja (yAccl> 511)

{

yAccl -= 1024;

}

int zAccl = (((dati [5] & 0x03) * 256) + dati [4]);

ja (zAccl> 511)

{

zAccl -= 1024;

}

// Izvadiet datus uz seriālo monitoru

Serial.print ("Paātrinājums X-asī ir:");

Serial.println (xAccl);

Serial.print ("Paātrinājums Y-asī ir:");

Serial.println (yAccl);

Serial.print ("Paātrinājums Z-asī ir:");

Serial.println (zAccl);

kavēšanās (300);

}

Vadu bibliotēkā Wire.write () un Wire.read () tiek izmantotas komandu rakstīšanai un sensora izejas nolasīšanai.

Serial.print () un Serial.println () tiek izmantoti, lai parādītu sensora izvadi Arduino IDE sērijas monitorā.

Sensora izeja ir parādīta attēlā iepriekš.

4. darbība. Lietojumprogrammas:

Lietojumprogrammas
Lietojumprogrammas

ADXL345 ir mazs, plāns, īpaši zems jauda, 3 asu akselerometrs, ko var izmantot tālruņos, medicīnas instrumentos uc

Ieteicams: