Përmbajtje:

Matja e përshpejtimit duke përdorur ADXL345 dhe Arduino Nano: 4 hapa
Matja e përshpejtimit duke përdorur ADXL345 dhe Arduino Nano: 4 hapa

Video: Matja e përshpejtimit duke përdorur ADXL345 dhe Arduino Nano: 4 hapa

Video: Matja e përshpejtimit duke përdorur ADXL345 dhe Arduino Nano: 4 hapa
Video: Matematikë 5 - Përsëritje: Matja e gjatësisë 2024, Nëntor
Anonim
Image
Image

ADXL345 është një akselerometër i vogël, i hollë, me fuqi ultra të ulët, me 3 boshte me matje me rezolucion të lartë (13-bit) deri në ± 16 g. Të dhënat dalëse dixhitale janë të formatuara si plotësuese 16-bitësh dy dhe janë të arritshme përmes ndërfaqes dixhitale I2 C. Mat mat nxitimin statik të gravitetit në aplikimet e ndjeshmërisë së pjerrësisë, si dhe nxitimin dinamik që rezulton nga lëvizja ose goditja. Rezolucioni i tij i lartë (3.9 mg/LSB) mundëson matjen e ndryshimeve të prirjes më pak se 1.0 °.

Në këtë tutorial është ilustruar ndërfaqja e modulit të sensorit ADXL345 me arduino nano. Për të lexuar vlerat e nxitimit, ne kemi përdorur arduino me një përshtatës I2c. Ky përshtatës I2C e bën lidhjen me modulin e sensorit të lehtë dhe më të besueshëm.

Hapi 1: Kërkohet harduer:

Kërkohet harduer
Kërkohet harduer
Kërkohet harduer
Kërkohet harduer
Kërkohet harduer
Kërkohet harduer

Materialet që na duhen për të arritur qëllimin tonë përfshijnë përbërësit e mëposhtëm të harduerit:

1. ADXL345

2. Arduino Nano

3. Kabllo I2C

4. Mburoja I2C për Arduino Nano

Hapi 2: Bashkimi i harduerit:

Lidhja e harduerit
Lidhja e harduerit
Lidhja e harduerit
Lidhja e harduerit

Seksioni i lidhjes së harduerit në thelb shpjegon lidhjet e telave të kërkuara midis sensorit dhe arduino nano. Sigurimi i lidhjeve të sakta është nevoja themelore gjatë punës në çdo sistem për daljen e dëshiruar. Pra, lidhjet e nevojshme janë si më poshtë:

ADXL345 do të funksionojë mbi I2C. Këtu është shembulli i diagramit të instalimeve elektrike, duke demonstruar se si të lidhni secilën ndërfaqe të sensorit.

Jashtë kutisë, bordi është i konfiguruar për një ndërfaqe I2C, si i tillë ne rekomandojmë përdorimin e këtij bashkimi nëse përndryshe jeni agnostik.

Gjithçka që ju nevojitet janë katër tela! Vetëm katër lidhje kërkohen kunjat Vcc, Gnd, SCL dhe SDA dhe këto janë të lidhura me ndihmën e kabllit I2C.

Këto lidhje demonstrohen në fotot e mësipërme.

Hapi 3: Kodi për Matjen e Përshpejtimit:

Kodi për Matjen e Përshpejtimit
Kodi për Matjen e Përshpejtimit

Le të fillojmë me kodin arduino tani.

Ndërsa përdorim modulin e sensorit me arduino, ne përfshijmë bibliotekën Wire.h. Biblioteka "Wire" përmban funksione të cilat lehtësojnë komunikimin i2c midis sensorit dhe bordit arduino.

I gjithë kodi arduino është dhënë më poshtë për lehtësinë e përdoruesit:

#përfshi

// Adresa ADXL345 I2C është 0x53 (83)

#përcaktoni Addr 0x53

void setup ()

{

// Filloni komunikimin I2C si MASTER

Wire.begin ();

// Filloni komunikimin serik, vendosur normën e baudit = 9600

Serial.filloj (9600);

// Filloni Transmetimin I2C

Wire.beginTransmetimi (Addr);

// Zgjidhni regjistrin e normës së gjerësisë së brezit

Wire.write (0x2C);

// Mënyra normale, Shkalla e të dhënave të daljes = 100 Hz

Wire.write (0x0A);

// Ndaloni transmetimin I2C

Wire.endTransmission ();

// Filloni Transmetimin I2C

Wire.beginTransmetimi (Addr);

// Zgjidhni regjistrin e kontrollit të energjisë

Wire.write (0x2D);

// Çaktivizo gjumin automatik

Wire.write (0x08);

// Ndaloni transmetimin I2C

Wire.endTransmission ();

// Filloni Transmetimin I2C

Wire.beginTransmetimi (Addr);

// Zgjidh regjistrin e formatit të të dhënave

Wire.write (0x31);

// Vetë-testimi i çaktivizuar, ndërfaqe me 4 tela, Rezolucion i plotë, Gama = +/- 2g

Wire.write (0x08);

// Ndaloni transmetimin I2C

Wire.endTransmission ();

vonesë (300);

}

lak void ()

{

të dhëna int të panënshkruara [6];

për (int i = 0; i <6; i ++)

{

// Filloni Transmetimin I2C

Wire.beginTransmetimi (Addr);

// Zgjidh regjistrin e të dhënave

Wire.write ((50 + i));

// Ndaloni transmetimin I2C

Wire.endTransmission ();

// Kërkoni 1 bajt të dhëna

Tela. Kërkohet Nga (Addr, 1);

// Lexoni 6 bajt të dhëna

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

nëse (Wire.available () == 1)

{

të dhënat = Wire.read ();

}

}

// Shndërroni të dhënat në 10-bit

int xAccl = (((të dhënat [1] & 0x03) * 256) + të dhënat [0]);

nëse (xAccl> 511)

{

xAccl -= 1024;

}

int yAccl = (((të dhënat [3] & 0x03) * 256) + të dhënat [2]);

nëse (yAccl> 511)

{

yAccl -= 1024;

}

int zAccl = (((të dhënat [5] & 0x03) * 256) + të dhënat [4]);

nëse (zAccl> 511)

{

zAccl -= 1024;

}

// Dalja e të dhënave në monitorin serik

Serial.print ("Përshpejtimi në Boshtin X është:");

Serial.println (xAccl);

Serial.print ("Përshpejtimi në Boshtin Y është:");

Serial.println (yAccl);

Serial.print ("Përshpejtimi në Boshtin Z është:");

Serial.println (zAccl);

vonesë (300);

}

Në bibliotekën Wire.write () dhe Wire.read () përdoret për të shkruar komandat dhe lexuar daljen e sensorit.

Serial.print () dhe Serial.println () përdoret për të shfaqur daljen e sensorit në monitorin serik të Arduino IDE.

Dalja e sensorit tregohet në figurën e mësipërme.

Hapi 4: Aplikimet:

Aplikimet
Aplikimet

ADXL345 është një akselerometër i vogël, i hollë, me ultra të ulët, me 3 boshte i cili mund të përdoret në Celularë, instrumente mjekësorë etj. Aplikimi i tij përfshin gjithashtu pajisje për lojëra dhe tregues, instrumente industriale, pajisje të navigimit personal dhe mbrojtje nga hard disku (HDD).

Recommended: