Orodha ya maudhui:

Upimaji wa Kuharakisha Kutumia ADXL345 na Arduino Nano: Hatua 4
Upimaji wa Kuharakisha Kutumia ADXL345 na Arduino Nano: Hatua 4

Video: Upimaji wa Kuharakisha Kutumia ADXL345 na Arduino Nano: Hatua 4

Video: Upimaji wa Kuharakisha Kutumia ADXL345 na Arduino Nano: Hatua 4
Video: How to use MPU-9250 Gyroscope, Accelerometer, Magnetometer for Arduino 2024, Novemba
Anonim
Image
Image

ADXL345 ni nguvu ndogo, nyembamba, nguvu ya mwisho, 3-axis accelerometer na azimio la juu (13-bit) kipimo hadi ± 16 g. Takwimu za pato la dijiti zimepangwa kama vijazo 16-bit vinavyosaidia na inapatikana kupitia I2 C interface ya dijiti. Inapima kasi ya kasi ya mvuto katika programu-kuhisi matumizi, na pia kasi ya nguvu inayosababishwa na mwendo au mshtuko. Azimio lake kubwa (3.9 mg / LSB) huwezesha kipimo cha mabadiliko ya mwelekeo chini ya 1.0 °.

Katika mafunzo haya kuingiliana kwa moduli ya sensorer ya ADXL345 na nano ya arduino imeonyeshwa. Ili kusoma maadili ya kuongeza kasi, tumetumia arduino na adapta ya I2c. Adapter hii ya I2C inafanya unganisho kwa moduli ya sensa iwe rahisi na ya kuaminika zaidi.

Hatua ya 1: Vifaa vinahitajika:

Vifaa vinahitajika
Vifaa vinahitajika
Vifaa vinahitajika
Vifaa vinahitajika
Vifaa vinahitajika
Vifaa vinahitajika

Vifaa ambavyo tunahitaji kutimiza lengo letu ni pamoja na vifaa vifuatavyo vya vifaa:

1. ADXL345

2. Arduino Nano

3. Cable ya I2C

4. I2C Shield kwa Arduino Nano

Hatua ya 2: Kuunganishwa kwa vifaa:

Kuunganishwa kwa Vifaa
Kuunganishwa kwa Vifaa
Kuunganishwa kwa Vifaa
Kuunganishwa kwa Vifaa

Sehemu ya uunganishaji wa vifaa kimsingi inaelezea uunganisho wa wiring unaohitajika kati ya sensa na nano ya arduino. Kuhakikisha unganisho sahihi ni hitaji la msingi wakati unafanya kazi kwenye mfumo wowote wa pato unalotaka. Kwa hivyo, viunganisho vinavyohitajika ni kama ifuatavyo.

ADXL345 itafanya kazi juu ya I2C. Hapa kuna mfano wa mchoro wa wiring, unaonyesha jinsi ya kuweka waya kila kiunganishi cha sensa.

Nje ya sanduku, bodi imesanidiwa kwa kiolesura cha I2C, kwa hivyo tunapendekeza utumie uunganisho huu ikiwa wewe ni agnostic.

Unachohitaji ni waya nne! Viunganisho vinne tu vinahitajika Vcc, Gnd, SCL na SDA pini na hizi zimeunganishwa kwa msaada wa kebo ya I2C.

Uunganisho huu umeonyeshwa kwenye picha hapo juu.

Hatua ya 3: Nambari ya Upimaji wa Kuharakisha:

Kanuni ya Upimaji wa Kuharakisha
Kanuni ya Upimaji wa Kuharakisha

Hebu tuanze na nambari ya arduino sasa.

Wakati wa kutumia moduli ya sensorer na arduino, tunajumuisha maktaba ya Wire.h. Maktaba ya "Waya" ina kazi ambazo zinawezesha mawasiliano ya i2c kati ya sensa na bodi ya arduino.

Nambari nzima ya arduino imepewa hapa chini kwa urahisi wa mtumiaji:

# pamoja

// Anwani ya ADXL345 I2C ni 0x53 (83)

#fafanua Addr 0x53

kuanzisha batili ()

{

// Anzisha mawasiliano ya I2C kama MASTER

Wire.begin ();

// Anzisha mawasiliano ya serial, weka kiwango cha baud = 9600

Kuanzia Serial (9600);

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Chagua rejista ya kiwango cha kipimo data

Andika waya (0x2C);

// Hali ya kawaida, Kiwango cha data ya Pato = 100 Hz

Andika waya (0x0A);

// Acha usambazaji wa I2C

Uwasilishaji wa waya ();

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Chagua rejista ya kudhibiti nguvu

Andika waya (0x2D);

// Kulala otomatiki

Andika waya (0x08);

// Acha usambazaji wa I2C

Uwasilishaji wa waya ();

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Chagua rejista ya fomati ya data

Andika waya (0x31);

// Jaribio la kibinafsi limezimwa, kiolesura cha waya 4, azimio kamili, Range = +/- 2g

Andika waya (0x08);

// Acha usambazaji wa I2C

Uwasilishaji wa waya ();

kuchelewesha (300);

}

kitanzi batili ()

{

data isiyoingia [6];

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

{

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Chagua rejista ya data

Andika waya ((50 + i));

// Acha usambazaji wa I2C

Uwasilishaji wa waya ();

// Omba 1 byte ya data

Ombi la Wire. Toka (Addr, 1);

// Soma ka 6 za data

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

ikiwa (Waya haipatikani () == 1)

{

data = soma kwa waya ();

}

}

// Badilisha data iwe 10-bits

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

ikiwa (xAccl> 511)

{

xAccl - = 1024;

}

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

ikiwa (yAccl> 511)

{

yAccl - = 1024;

}

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

ikiwa (zAccl> 511)

{

zAccl - = 1024;

}

// data ya Pato kwa mfuatiliaji wa serial

Serial.print ("Kuharakisha katika X-Axis ni:");

Serial.println (xAccl);

Serial.print ("Kuharakisha katika Y-Axis ni:");

Serial.println (yAccl);

Serial.print ("Kuongeza kasi katika Z-Axis ni:");

Serial.println (zAccl);

kuchelewesha (300);

}

Katika maktaba ya waya Wire.write () na Wire.read () hutumiwa kuandika amri na kusoma pato la sensorer.

Serial.print () na Serial.println () hutumiwa kuonyesha pato la sensa kwenye mfuatiliaji wa serial wa IDE ya Arduino.

Pato la sensor linaonyeshwa kwenye picha hapo juu.

Hatua ya 4: Maombi:

Maombi
Maombi

ADXL345 ni nguvu ndogo, nyembamba, nguvu ya mwendo wa kasi, 3-axis accelerometer ambayo inaweza kuajiriwa kwenye vifaa vya mkono, vifaa vya matibabu n.k Maombi yake pia yanajumuisha vifaa vya Michezo ya Kubahatisha na kuelekeza, vifaa vya Viwanda, vifaa vya urambazaji wa kibinafsi na ulinzi wa Hard disk drive (HDD).

Ilipendekeza: