Inhaltsverzeichnis:

Arduino Nano - MMA8452Q 3-Achsen 12-Bit / 8-Bit-Digital-Beschleunigungsmesser-Tutorial - Gunook
Arduino Nano - MMA8452Q 3-Achsen 12-Bit / 8-Bit-Digital-Beschleunigungsmesser-Tutorial - Gunook

Video: Arduino Nano - MMA8452Q 3-Achsen 12-Bit / 8-Bit-Digital-Beschleunigungsmesser-Tutorial - Gunook

Video: Arduino Nano - MMA8452Q 3-Achsen 12-Bit / 8-Bit-Digital-Beschleunigungsmesser-Tutorial - Gunook
Video: Arduino Nano - MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Tutorial 2024, Juli
Anonim
Image
Image

Der MMA8452Q ist ein intelligenter, stromsparender, dreiachsiger, kapazitiver, mikrobearbeiteter Beschleunigungsmesser mit 12 Bit Auflösung. Flexible, vom Benutzer programmierbare Optionen werden mit Hilfe eingebetteter Funktionen im Beschleunigungsmesser bereitgestellt, die auf zwei Interrupt-Pins konfigurierbar sind. Es verfügt über vom Benutzer wählbare Skalenendwerte von ±2g/±4g/±8g mit hochpassfiltergefilterten Daten sowie ungefilterten Daten, die in Echtzeit verfügbar sind. Hier ist seine Demonstration mit Arduino Nano.

Schritt 1: Was Sie brauchen.

Was du brauchst..!!
Was du brauchst..!!

1. Arduino Nano

2. MMA8452Q

3. I²C-Kabel

4. I²C-Schild für Arduino Nano

Schritt 2: Verbindung:

Verbindung
Verbindung
Verbindung
Verbindung
Verbindung
Verbindung
Verbindung
Verbindung

Nehmen Sie ein I2C-Shield für Arduino Nano und schieben Sie es vorsichtig über die Pins von Nano.

Verbinden Sie dann das eine Ende des I2C-Kabels mit dem MMA8452Q-Sensor und das andere Ende mit der I2C-Abschirmung.

Die Anschlüsse sind im Bild oben dargestellt.

Schritt 3: Code:

Code
Code

Der Arduino-Code für MMMA8452Q kann von unserem Github-Repository heruntergeladen werden - DCUBE Store.

Hier ist der Link.

Wir binden die Bibliothek Wire.h ein, um die I2c-Kommunikation des Sensors mit dem Arduino-Board zu erleichtern.

Sie können den Code auch von hier kopieren, er wird wie folgt angegeben:

// Wird mit einer frei wählbaren Lizenz vertrieben.

// Verwenden Sie es, wie Sie wollen, gewinnbringend oder kostenlos, sofern es in die Lizenzen der zugehörigen Werke passt.

// MMA8452Q

// Dieser Code wurde entwickelt, um mit dem MMA8452Q_I2CS I2C Mini-Modul zu arbeiten.

#enthalten

// MMA8452Q I2C-Adresse ist 0x1C(28)

#define Addr 0x1C

Void-Setup ()

{

// I2C-Kommunikation als MASTER initialisieren

Wire.begin();

// Serielle Kommunikation initialisieren, Baudrate = 9600. einstellen

Serial.begin (9600);

// I2C-Übertragung starten

Wire.beginTransmission(Addr);

// Steuerregister auswählen

Wire.write (0x2A);

// Standby Modus

Wire.write (0x00);

// I2C-Übertragung stoppen

Wire.endTransmission();

// I2C-Übertragung starten

Wire.beginTransmission(Addr);

// Steuerregister auswählen

Wire.write (0x2A);

// Aktiver Modus

Wire.write (0x01);

// I2C-Übertragung stoppen

Wire.endTransmission();

// I2C-Übertragung starten

Wire.beginTransmission(Addr);

// Steuerregister auswählen

Wire.write(0x0E);

// Bereich auf +/- 2g. setzen

Wire.write (0x00);

// I2C-Übertragung stoppen

Wire.endTransmission();

Verzögerung (300);

}

Leere Schleife ()

{

unsignierte int-Daten[7];

// 7 Byte Daten anfordern

Wire.requestFrom(Addr, 7);

// 7 Byte Daten lesen

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

if(Draht.verfügbar() == 7)

{

data[0] = Wire.read();

data[1] = Wire.read();

data[2] = Wire.read();

Daten[3] = Wire.read();

data[4] = Wire.read();

data[5] = Wire.read();

Daten[6] = Wire.read();

}

// Konvertieren Sie die Daten in 12-Bit

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

if (xAccl > 2047)

{

xAccl –= 4096;

}

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

if (yAccl > 2047)

{

yAccl –= 4096;

}

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

if (zAccl > 2047)

{

zAccl –= 4096;

}

// Daten an seriellen Monitor ausgeben

Serial.print ("Beschleunigung in der X-Achse: ");

Serial.println (xAccl);

Serial.print ("Beschleunigung in der Y-Achse: ");

Serial.println (yAccl);

Serial.print ("Beschleunigung in der Z-Achse: ");

Serial.println (zAccl);

Verzögerung (500);

}

Schritt 4: Anwendungen:

MMA8452Q verfügt über verschiedene Anwendungen, darunter E-Kompass-Anwendungen, statische Orientierungserkennung, die Hochformat/Querformat, Oben/Unten, Links/Rechts, Hinten/Vorder-Positionserkennung, Notebook, E-Reader und Laptop-Sturz- und Freifall-Erkennung in Echtzeit umfasst Orientierungserkennung einschließlich Virtual Reality und Gaming 3D-Benutzerpositions-Feedback, Echtzeit-Aktivitätsanalyse wie Schrittzähler, Freifall-Erkennung für HDD, Koppelnavigations-GPS-Backup und vieles mehr.

Empfohlen: