Taula de continguts:

Arduino Nano - MMA8452Q Tutorial d’acceleròmetre digital de 3 eixos de 12 i 8 bits: 4 passos
Arduino Nano - MMA8452Q Tutorial d’acceleròmetre digital de 3 eixos de 12 i 8 bits: 4 passos

Vídeo: Arduino Nano - MMA8452Q Tutorial d’acceleròmetre digital de 3 eixos de 12 i 8 bits: 4 passos

Vídeo: Arduino Nano - MMA8452Q Tutorial d’acceleròmetre digital de 3 eixos de 12 i 8 bits: 4 passos
Vídeo: Arduino Nano — Учебное пособие по 3-осному 12-битному/8-битному цифровому акселерометру MMA8452Q 2024, De novembre
Anonim
Image
Image

El MMA8452Q és un acceleròmetre intel·ligent, de tres eixos, de baixa potència i capacitiu, micromecanitzat, amb 12 bits de resolució. Es proporcionen opcions programables per a l'usuari amb l'ajut de funcions incrustades a l'acceleròmetre, configurables per a dos pins d'interrupció. Té una escala completa seleccionable per l'usuari de ± 2g / ± 4g / ± 8g amb dades filtrades de filtre de pas alt, així com dades no filtrades disponibles en temps real. Aquí teniu la demostració amb Arduino nano.

Pas 1: el que necessiteu..

Què necessites..!!
Què necessites..!!

1. Arduino Nano

2. MMA8452Q

3. Cable I²C

4. Escut I²C per a Arduino Nano

Pas 2: connexió:

Connexió
Connexió
Connexió
Connexió
Connexió
Connexió
Connexió
Connexió

Agafeu un escut I2C per a Arduino Nano i empenyeu-lo suaument sobre els passadors de Nano.

A continuació, connecteu un extrem del cable I2C al sensor MMA8452Q i l’altre extrem al blindatge I2C.

Les connexions es mostren a la imatge superior.

Pas 3: Codi:

Codi
Codi

El codi arduino per MMMA8452Q es pot descarregar des del nostre dipòsit github- DCUBE Store.

Aquí teniu l’enllaç.

Incloem la biblioteca Wire.h per facilitar la comunicació I2c del sensor amb la placa Arduino.

També podeu copiar el codi des d’aquí, es dóna de la següent manera:

// Distribuïda amb llicència de lliure voluntat.

// Utilitzeu-lo de la manera que vulgueu, sense ànim de lucre o de franc, sempre que encaixi en les llicències de les obres associades.

// MMA8452Q

// Aquest codi està dissenyat per funcionar amb el mini mòdul MMA8452Q_I2CS I2C.

#incloure

// L'adreça MMA8452Q I2C és 0x1C (28)

#define Addr 0x1C

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 control

Wire.write (0x2A);

// Mode StandBy

Wire.write (0x00);

// Atura la transmissió I2C

Wire.endTransmission ();

// Inicieu la transmissió I2C

Wire.beginTransmission (Addr);

// Seleccioneu el registre de control

Wire.write (0x2A);

// Mode actiu

Wire.write (0x01);

// Atura la transmissió I2C

Wire.endTransmission ();

// Inicieu la transmissió I2C

Wire.beginTransmission (Addr);

// Seleccioneu el registre de control

Wire.write (0x0E);

// Estableix l'interval a +/- 2g

Wire.write (0x00);

// Atura la transmissió I2C

Wire.endTransmission ();

retard (300);

}

bucle buit ()

{

dades int sense signar [7];

// Sol·liciteu 7 bytes de dades

Wire.requestFrom (Addr, 7);

// Llegiu 7 bytes de dades

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

if (Wire.available () == 7)

{

dades [0] = Wire.read ();

dades [1] = Wire.read ();

dades [2] = Wire.read ();

dades [3] = Wire.read ();

dades [4] = Wire.read ();

dades [5] = Wire.read ();

dades [6] = Wire.read ();

}

// Converteix les dades a 12 bits

int xAccl = ((dades [1] * 256) + dades [2]) / 16;

if (xAccl> 2047)

{

xAccl - = 4096;

}

int yAccl = ((dades [3] * 256) + dades [4]) / 16;

if (yAccl> 2047)

{

yAccl - = 4096;

}

int zAccl = ((dades [5] * 256) + dades [6]) / 16;

if (zAccl> 2047)

{

zAccl - = 4096;

}

// Sortida de dades al monitor sèrie

Serial.print ("Acceleració a l'eix X:");

Serial.println (xAccl);

Serial.print ("Acceleració a l'eix Y:");

Serial.println (yAccl);

Serial.print ("Acceleració a l'eix Z:");

Serial.println (zAccl);

retard (500);

}

Pas 4: aplicacions:

El MMA8452Q té diverses aplicacions que inclouen aplicacions de brúixola electrònica, detecció d’orientació estàtica que incorpora vertical / horitzontal, amunt / avall, esquerra / dreta, identificació de posició posterior / frontal, portàtil, lector electrònic i detecció de caigudes i caigudes lliures de portàtils, en temps real detecció d’orientació, incloent comentaris sobre la posició de l’usuari en 3D de realitat virtual i jocs, anàlisi d’activitats en temps real, com ara comptador de passos del podòmetre, detecció de caigudes lliures per a disc dur, còpia de seguretat GPS per càlcul i molt més.

Recomanat: