Indholdsfortegnelse:

Arduino Nano-MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Tutorial: 4 trin
Arduino Nano-MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Tutorial: 4 trin

Video: Arduino Nano-MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Tutorial: 4 trin

Video: Arduino Nano-MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Tutorial: 4 trin
Video: Arduino Nano — Учебное пособие по 3-осному 12-битному/8-битному цифровому акселерометру MMA8452Q 2024, November
Anonim
Image
Image

MMA8452Q er et smart, laveffekt, tre-akset, kapacitivt, mikromaskinet accelerometer med 12 bits opløsning. Fleksible brugerprogrammerbare muligheder leveres ved hjælp af integrerede funktioner i accelerometeret, der kan konfigureres til to afbrydelsesnåle. Den har brugervalgbare fulde skalaer på ± 2g/± 4g/± 8g med højpasfilterfiltrerede data samt ikke-filtrerede data tilgængelige i realtid. Her er dens demonstration med Arduino nano.

Trin 1: Hvad du har brug for..

Hvad du har brug for..!!
Hvad du har brug for..!!

1. Arduino Nano

2. MMA8452Q

3. I²C -kabel

4. I²C Shield til Arduino Nano

Trin 2: Tilslutning:

Forbindelse
Forbindelse
Forbindelse
Forbindelse
Forbindelse
Forbindelse
Forbindelse
Forbindelse

Tag et I2C -skjold til Arduino Nano og skub det forsigtigt hen over stifterne på Nano.

Tilslut derefter den ene ende af I2C -kablet til MMA8452Q -sensoren og den anden ende til I2C -skærmen.

Forbindelser er vist på billedet ovenfor.

Trin 3: Kode:

Kode
Kode

Arduino-koden til MMMA8452Q kan downloades fra vores github-depot- DCUBE Store.

Her er linket.

Vi inkluderer bibliotek Wire.h for at lette I2c -kommunikationen mellem sensoren og Arduino -kortet.

Du kan også kopiere koden herfra, den er givet som følger:

// Distribueret med en fri vilje licens.

// Brug den, som du vil, profit eller gratis, forudsat at den passer ind i licenserne til de tilhørende værker.

// MMA8452Q

// Denne kode er designet til at fungere med MMA8452Q_I2CS I2C Mini Module.

#omfatte

// MMA8452Q I2C -adressen er 0x1C (28)

#define Addr 0x1C

ugyldig opsætning ()

{

// Initialiser I2C -kommunikation som MASTER

Wire.begin ();

// Initialiser seriel kommunikation, indstil baudhastighed = 9600

Serial.begin (9600);

// Start I2C -transmission

Wire.beginTransmission (Addr);

// Vælg kontrolregister

Wire.write (0x2A);

// Standby -tilstand

Wire.write (0x00);

// Stop I2C -transmission

Wire.endTransmission ();

// Start I2C -transmission

Wire.beginTransmission (Addr);

// Vælg kontrolregister

Wire.write (0x2A);

// Aktiv tilstand

Wire.write (0x01);

// Stop I2C -transmission

Wire.endTransmission ();

// Start I2C -transmission

Wire.beginTransmission (Addr);

// Vælg kontrolregister

Wire.write (0x0E);

// Indstil område til +/- 2g

Wire.write (0x00);

// Stop I2C -transmission

Wire.endTransmission ();

forsinkelse (300);

}

hulrum ()

{

usignerede int -data [7];

// Anmod om 7 bytes data

Wire.requestFrom (Addr, 7);

// Læs 7 bytes data

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

hvis (Wire.available () == 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 ();

}

// Konverter dataene til 12-bit

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

hvis (xAccl> 2047)

{

xAccl -= 4096;

}

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

hvis (yAccl> 2047)

{

yAccl -= 4096;

}

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

hvis (zAccl> 2047)

{

zAccl -= 4096;

}

// Output data til seriel skærm

Serial.print ("Acceleration i X-akse:");

Serial.println (xAccl);

Serial.print ("Acceleration i Y-akse:");

Serial.println (yAccl);

Serial.print ("Acceleration i Z-akse:");

Serial.println (zAccl);

forsinkelse (500);

}

Trin 4: Ansøgninger:

MMA8452Q har forskellige applikationer, som omfatter E-Kompass-applikationer, Statisk orienteringsdetektering, der inkorporerer Portræt/Landskab, Op/Ned, Venstre/Højre, Tilbage/Front position identifikation, Notebook, e-reader og Laptop Tumble og Freefall Detection, Real-time orienteringsdetektering inklusive virtual reality og gaming 3D brugerpositionsfeedback, realtidsaktivitetsanalyse såsom skridttæller-trintælling, freefall-drop-detektion for HDD, dødregning af GPS-backup og meget mere.

Anbefalede: