Taula de continguts:

Mesura de l’acceleració mitjançant ADXL345 i Arduino Nano: 4 passos
Mesura de l’acceleració mitjançant ADXL345 i Arduino Nano: 4 passos

Vídeo: Mesura de l’acceleració mitjançant ADXL345 i Arduino Nano: 4 passos

Vídeo: Mesura de l’acceleració mitjançant ADXL345 i Arduino Nano: 4 passos
Vídeo: ЁжЖЖ 19.02.02 Сравнение и отличия звука и спектра сигналов сотовой связи от передаваемых вышкой #МТС 2024, De novembre
Anonim
Image
Image

L’ADXL345 és un acceleròmetre de 3 eixos petit, prim i ultralleuger, de 3 eixos, amb una resolució d’alta resolució (13 bits) de fins a ± 16 g. Les dades de sortida digital es formaten com a complement de dos bits de 16 bits i són accessibles a través de la interfície digital I2 C. Mesura l’acceleració estàtica de la gravetat en aplicacions de detecció d’inclinació, així com l’acceleració dinàmica resultant del moviment o xoc. La seva alta resolució (3,9 mg / LSB) permet mesurar canvis d’inclinació inferiors a 1,0 °.

En aquest tutorial s'ha il·lustrat la interfície del mòdul del sensor ADXL345 amb arduino nano. Per llegir els valors d’acceleració, hem utilitzat arduino amb un adaptador I2c, que fa que la connexió al mòdul del sensor sigui més fàcil i fiable.

Pas 1: maquinari necessari:

Maquinari necessari
Maquinari necessari
Maquinari necessari
Maquinari necessari
Maquinari necessari
Maquinari necessari

Els materials que necessitem per assolir el nostre objectiu inclouen els components de maquinari següents:

1. ADXL345

2. Arduino Nano

3. Cable I2C

4. Escut I2C per a Arduino Nano

Pas 2: connexió de maquinari:

Connexió de maquinari
Connexió de maquinari
Connexió de maquinari
Connexió de maquinari

La secció de connexió de maquinari explica bàsicament les connexions de cablejat necessàries entre el sensor i l'arduino nano. Garantir connexions correctes és la necessitat bàsica mentre es treballa en qualsevol sistema per a la sortida desitjada. Per tant, les connexions necessàries són les següents:

L'ADXL345 funcionarà sobre I2C. Aquí teniu un exemple de diagrama de cablejat, que demostra com connectar cada interfície del sensor.

Fora de la caixa, el tauler està configurat per a una interfície I2C, per tant, us recomanem que utilitzeu aquesta connexió si no sou agnòstic.

Tot el que necessiteu són quatre cables. Només es necessiten quatre connexions pins Vcc, Gnd, SCL i SDA i es connecten amb l'ajut del cable I2C.

Aquestes connexions es mostren a les imatges anteriors.

Pas 3: Codi de mesura de l’acceleració:

Codi de mesura de l'acceleració
Codi de mesura de l'acceleració

Comencem ara amb el codi arduino.

Mentre s’utilitza el mòdul de sensor amb l’arduino, incloem la biblioteca Wire.h. La biblioteca "Wire" conté les funcions que faciliten la comunicació i2c entre el sensor i la placa arduino.

A continuació es proporciona tot el codi arduino per a la comoditat de l'usuari:

#incloure

// L’adreça I2C ADXL345 és 0x53 (83)

#define Addr 0x53

configuració nul·la ()

{

// Inicialitzar la comunicació I2C com a MASTER

Wire.begin ();

// Inicialitzar la comunicació en sèrie, establir la velocitat de transmissió = 9600

Serial.begin (9600);

// Inicieu la transmissió I2C

Wire.beginTransmission (Addr);

// Seleccioneu el registre de taxa d'amplada de banda

Wire.write (0x2C);

// Mode normal, velocitat de dades de sortida = 100 Hz

Wire.write (0x0A);

// Atura la transmissió I2C

Wire.endTransmission ();

// Inicieu la transmissió I2C

Wire.beginTransmission (Addr);

// Seleccioneu el registre de control de potència

Wire.write (0x2D);

// Desactiva el mode de repòs automàtic

Wire.write (0x08);

// Atura la transmissió I2C

Wire.endTransmission ();

// Inicieu la transmissió I2C

Wire.beginTransmission (Addr);

// Seleccioneu el registre de format de dades

Wire.write (0x31);

// Autotest desactivat, interfície de 4 fils, resolució completa, rang = +/- 2g

Wire.write (0x08);

// Atura la transmissió I2C

Wire.endTransmission ();

retard (300);

}

bucle buit ()

{

dades int sense signar [6];

per a (int i = 0; i <6; i ++)

{

// Inicieu la transmissió I2C

Wire.beginTransmission (Addr);

// Selecciona el registre de dades

Wire.write ((50 + i));

// Atura la transmissió I2C

Wire.endTransmission ();

// Sol·liciteu 1 byte de dades

Wire.requestFrom (Addr, 1);

// Llegiu 6 bytes de dades

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

if (Wire.available () == 1)

{

dades = Wire.read ();

}

}

// Converteix les dades a 10 bits

int xAccl = (((dades [1] i 0x03) * 256) + dades [0]);

if (xAccl> 511)

{

xAccl - = 1024;

}

int yAccl = (((dades [3] i 0x03) * 256) + dades [2]);

if (yAccl> 511)

{

yAccl - = 1024;

}

int zAccl = (((dades [5] i 0x03) * 256) + dades [4]);

if (zAccl> 511)

{

zAccl - = 1024;

}

// Sortida de dades al monitor sèrie

Serial.print ("L'acceleració a l'eix X és:");

Serial.println (xAccl);

Serial.print ("L'acceleració a l'eix Y és:");

Serial.println (yAccl);

Serial.print ("L'acceleració a l'eix Z és:");

Serial.println (zAccl);

retard (300);

}

A la biblioteca de cables, s’utilitzen Wire.write () i Wire.read () per escriure les ordres i llegir la sortida del sensor.

Serial.print () i Serial.println () s’utilitzen per mostrar la sortida del sensor al monitor sèrie de l’IDE Arduino.

La sortida del sensor es mostra a la imatge superior.

Pas 4: aplicacions:

Aplicacions
Aplicacions

L'ADXL345 és un acceleròmetre de 3 eixos petit, prim i de poca potència, que es pot utilitzar en telèfons mòbils, instrumentació mèdica, etc.

Recomanat: