Sommario:

Arduino Nano - Tutorial accelerometro digitale a 3 assi MMA8452Q a 12 bit/8 bit: 4 passaggi
Arduino Nano - Tutorial accelerometro digitale a 3 assi MMA8452Q a 12 bit/8 bit: 4 passaggi

Video: Arduino Nano - Tutorial accelerometro digitale a 3 assi MMA8452Q a 12 bit/8 bit: 4 passaggi

Video: Arduino Nano - Tutorial accelerometro digitale a 3 assi MMA8452Q a 12 bit/8 bit: 4 passaggi
Video: DIY Radar With Ultrasonic Sensor And Chat-GPT Generated Arduino Code | Coders Cafe 2024, Luglio
Anonim
Image
Image

L'MMA8452Q è un accelerometro intelligente, a bassa potenza, a tre assi, capacitivo, microlavorato con 12 bit di risoluzione. Opzioni flessibili programmabili dall'utente sono fornite con l'ausilio di funzioni integrate nell'accelerometro, configurabili su due pin di interruzione. Dispone di scale complete selezionabili dall'utente di ±2g/±4g/±8g con dati filtrati con filtro passa-alto e dati non filtrati disponibili in tempo reale. Ecco la sua dimostrazione con Arduino nano.

Passaggio 1: ciò di cui hai bisogno.

Quello di cui hai bisogno..!!
Quello di cui hai bisogno..!!

1. Arduino Nano

2. MMA8452Q

3. Cavo I²C

4. Scudo I²C per Arduino Nano

Passaggio 2: connessione:

Connessione
Connessione
Connessione
Connessione
Connessione
Connessione
Connessione
Connessione

Prendi uno shield I2C per Arduino Nano e spingilo delicatamente sui pin di Nano.

Quindi collegare un'estremità del cavo I2C al sensore MMA8452Q e l'altra estremità allo schermo I2C.

I collegamenti sono mostrati nell'immagine sopra.

Passaggio 3: codice:

Codice
Codice

Il codice arduino per MMMA8452Q può essere scaricato dal nostro repository github - DCUBE Store.

Ecco il link.

Includiamo la libreria Wire.h per facilitare la comunicazione I2c del sensore con la scheda Arduino.

Puoi anche copiare il codice da qui, è fornito come segue:

// Distribuito con una licenza libera.

// Usalo come vuoi, a scopo di lucro o gratuito, a condizione che rientri nelle licenze delle opere associate.

//MMA8452Q

// Questo codice è progettato per funzionare con il Mini Modulo I2C MMA8452Q_I2CS.

#includere

// L'indirizzo I2C di MMA8452Q è 0x1C(28)

#define Indirizzo 0x1C

configurazione nulla()

{

// Inizializza la comunicazione I2C come MASTER

Wire.begin();

// Inizializza la comunicazione seriale, imposta la velocità di trasmissione = 9600

Serial.begin(9600);

// Avvia la trasmissione I2C

Wire.beginTransmission(Addr);

// Seleziona il registro di controllo

Wire.write(0x2A);

// Modalità standby

Wire.write(0x00);

// Interrompi trasmissione I2C

Wire.endTransmission();

// Avvia la trasmissione I2C

Wire.beginTransmission(Addr);

// Seleziona il registro di controllo

Wire.write(0x2A);

// Modalità attiva

Wire.write(0x01);

// Interrompi trasmissione I2C

Wire.endTransmission();

// Avvia la trasmissione I2C

Wire.beginTransmission(Addr);

// Seleziona il registro di controllo

Wire.write(0x0E);

// Imposta l'intervallo su +/- 2 g

Wire.write(0x00);

// Interrompi trasmissione I2C

Wire.endTransmission();

ritardo(300);

}

ciclo vuoto()

{

dati int non firmati[7];

// Richiedi 7 byte di dati

Wire.requestFrom(Addr, 7);

// Legge 7 byte di dati

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

if(Filo.disponibile() == 7)

{

data[0] = Wire.read();

data[1] = Wire.read();

data[2] = Wire.read();

data[3] = Wire.read();

data[4] = Wire.read();

data[5] = Wire.read();

data[6] = Wire.read();

}

// Converti i dati a 12 bit

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

se (xAccl > 2047)

{

xAccl -= 4096;

}

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

if (yAccl > 2047)

{

yAccl -= 4096;

}

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

if (zAccl > 2047)

{

zAccl -= 4096;

}

// Invia i dati al monitor seriale

Serial.print("Accelerazione nell'asse X: ");

Serial.println(xAccl);

Serial.print("Accelerazione nell'asse Y: ");

Serial.println(yAccl);

Serial.print("Accelerazione nell'asse Z: ");

Serial.println(zAccl);

ritardo (500);

}

Passaggio 4: applicazioni:

MMA8452Q ha varie applicazioni che includono applicazioni E-Compass, rilevamento dell'orientamento statico che incorpora verticale/orizzontale, su/giù, sinistra/destra, identificazione della posizione posteriore/anteriore, notebook, e-reader e rilevamento di caduta e caduta libera del laptop, in tempo reale rilevamento dell'orientamento, tra cui realtà virtuale e feedback sulla posizione dell'utente di gioco 3D, analisi dell'attività in tempo reale come il conteggio dei passi del pedometro, rilevamento della caduta libera per HDD, backup GPS stimata e molto altro.

Consigliato: