INHOUDSOPGAWE:

Arduino Nano-MMA8452Q 3-as 12-bis/8-bis digitale versnellingsmeter: 4 stappe
Arduino Nano-MMA8452Q 3-as 12-bis/8-bis digitale versnellingsmeter: 4 stappe

Video: Arduino Nano-MMA8452Q 3-as 12-bis/8-bis digitale versnellingsmeter: 4 stappe

Video: Arduino Nano-MMA8452Q 3-as 12-bis/8-bis digitale versnellingsmeter: 4 stappe
Video: Accelerometer / Beschleunigungssensor MMA8451 Tutorial (Arduino) 2024, September
Anonim
Image
Image

Die MMA8452Q is 'n slim, lae-krag, drie-as, kapasitiewe, mikromasjiene versnellingsmeter met 12 bisse resolusie. Buigsame gebruikersprogrammeerbare opsies word voorsien met behulp van ingebedde funksies in die versnellingsmeter, wat op twee onderbrekingspenne ingestel kan word. Dit het volledige gebruikersskale van ± 2g/± 4g/± 8g wat deur die gebruiker gekies kan word, met hoëpasfilter gefiltreerde data, sowel as nie-gefilterde data wat intyds beskikbaar is. Hier is die demonstrasie met Arduino nano.

Stap 1: wat u nodig het..

Wat jy nodig het..!!
Wat jy nodig het..!!

1. Arduino Nano

2. MMA8452Q

3. I²C -kabel

4. I²C -skild vir Arduino Nano

Stap 2: Verbinding:

Verbinding
Verbinding
Verbinding
Verbinding
Verbinding
Verbinding
Verbinding
Verbinding

Neem 'n I2C -skild vir Arduino Nano en druk dit saggies oor die penne van Nano.

Koppel dan die een kant van die I2C -kabel aan die MMA8452Q -sensor en die ander kant aan die I2C -skild.

Verbindings word op die foto hierbo getoon.

Stap 3: Kode:

Kode
Kode

Die arduino-kode vir MMMA8452Q kan afgelaai word vanaf ons github-bewaarplek- DCUBE-winkel.

Hier is die skakel.

Ons bevat biblioteek Wire.h om die I2c -kommunikasie van die sensor met die Arduino -bord te vergemaklik.

U kan die kode ook hiervandaan kopieer; dit word soos volg gegee:

// Versprei met 'n vrywillige lisensie.

// Gebruik dit op enige manier wat u wil, wins of gratis, mits dit in die lisensies van die gepaardgaande werke pas.

// MMA8452Q

// Hierdie kode is ontwerp om te werk met die MMA8452Q_I2CS I2C Mini Module.

#insluit

// MMA8452Q I2C adres is 0x1C (28)

#definieer Addr 0x1C

leemte opstelling ()

{

// Initialiseer I2C -kommunikasie as MASTER

Wire.begin ();

// Initialiseer seriële kommunikasie, stel baud rate = 9600 in

Serial.begin (9600);

// Begin I2C -oordrag

Wire.beginTransmission (Addr);

// Kies kontroleregister

Wire.write (0x2A);

// Standby -modus

Wire.write (0x00);

// Stop I2C -oordrag

Wire.endTransmission ();

// Begin I2C -oordrag

Wire.beginTransmission (Addr);

// Kies kontroleregister

Wire.write (0x2A);

// Aktiewe modus

Wire.write (0x01);

// Stop I2C -oordrag

Wire.endTransmission ();

// Begin I2C -oordrag

Wire.beginTransmission (Addr);

// Kies kontroleregister

Wire.write (0x0E);

// Stel die reeks op +/- 2g

Wire.write (0x00);

// Stop I2C -oordrag

Wire.endTransmission ();

vertraging (300);

}

leemte lus ()

{

ongetekende int data [7];

// Versoek 7 grepe data

Wire.requestFrom (Addr, 7);

// Lees 7 grepe data

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

as (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 ();

}

// Skakel die data om na 12-bis

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

as (xAccl> 2047)

{

xAccl -= 4096;

}

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

as (yAccl> 2047)

{

yAccl -= 4096;

}

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

as (zAccl> 2047)

{

zAccl -= 4096;

}

// Uitset data na die seriële monitor

Serial.print ("Versnelling in X-as:");

Serial.println (xAccl);

Serial.print ("Versnelling in Y-as:");

Serial.println (yAccl);

Serial.print ("Versnelling in Z-as:");

Serial.println (zAccl);

vertraging (500);

}

Stap 4: Aansoeke:

MMA8452Q het verskillende toepassings, waaronder E-kompas-toepassings, statiese oriëntasie-opsporing, wat portret/landskap, op/af, links/regs, identifikasie van agter-/voorposisie, notaboek, e-reader en opsporing van draagbare en valbare skootrekenaars insluit, intyds oriëntasie-opsporing, insluitend virtuele werklikheid en terugvoer oor 3D-gebruikersposisies van gebruikers, intydse aktiwiteitsanalise soos stappenteller, vryvalopsporing vir HDD, GPS-rugsteun met afrekening en nog baie meer.

Aanbeveel: