Inhoudsopgave:

Arduino Nano - MMA8452Q 3-Axis 12-bit/8-bit Digitale Accelerometer Zelfstudie - Ajarnpa
Arduino Nano - MMA8452Q 3-Axis 12-bit/8-bit Digitale Accelerometer Zelfstudie - Ajarnpa

Video: Arduino Nano - MMA8452Q 3-Axis 12-bit/8-bit Digitale Accelerometer Zelfstudie - Ajarnpa

Video: Arduino Nano - MMA8452Q 3-Axis 12-bit/8-bit Digitale Accelerometer Zelfstudie - Ajarnpa
Video: BeagleBone Black MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer 'C' Code Tutorial 2024, November
Anonim
Image
Image

De MMA8452Q is een slimme, energiezuinige, drie-assige, capacitieve, micromachined accelerometer met 12 bits resolutie. Flexibele door de gebruiker programmeerbare opties worden geboden met behulp van ingebouwde functies in de accelerometer, configureerbaar tot twee interrupt-pinnen. Het heeft door de gebruiker selecteerbare volledige schalen van ±2g/±4g/±8g met high-pass filter gefilterde data en niet-gefilterde data die in realtime beschikbaar zijn. Hier is de demonstratie met Arduino nano.

Stap 1: Wat je nodig hebt.

Wat je nodig hebt..!!
Wat je nodig hebt..!!

1. Arduino Nano

2. MMA8452Q

3. I²C-kabel

4. I²C-schild voor Arduino Nano

Stap 2: Aansluiting:

Verbinding
Verbinding
Verbinding
Verbinding
Verbinding
Verbinding
Verbinding
Verbinding

Neem een I2C-schild voor Arduino Nano en duw het voorzichtig over de pinnen van Nano.

Sluit vervolgens het ene uiteinde van de I2C-kabel aan op de MMA8452Q-sensor en het andere uiteinde op de I2C-afscherming.

De aansluitingen zijn weergegeven in de afbeelding hierboven.

Stap 3: Coderen:

Code
Code

De arduino-code voor MMMA8452Q kan worden gedownload van onze github-repository - DCUBE Store.

Hier is de link.

We nemen bibliotheek Wire.h op om de I2c-communicatie van de sensor met het Arduino-bord te vergemakkelijken.

U kunt de code ook hier kopiëren, deze wordt als volgt gegeven:

// Gedistribueerd met een vrije wilslicentie.

// Gebruik het zoals je wilt, winst of gratis, op voorwaarde dat het past in de licenties van de bijbehorende werken.

// MMA8452Q

// Deze code is ontworpen om te werken met de MMA8452Q_I2CS I2C Mini Module.

#erbij betrekken

// MMA8452Q I2C-adres is 0x1C (28)

#define Addr 0x1C

ongeldige setup()

{

// Initialiseer I2C-communicatie als MASTER

Draad.begin();

// Initialiseer seriële communicatie, stel baudrate in = 9600

Serieel.begin(9600);

// Start I2C-verzending

Wire.beginTransmission (Addr);

// Selecteer controleregister

Draad.schrijven (0x2A);

// Standby modus

Draad.schrijven (0x00);

// Stop I2C-verzending

Wire.endTransmission();

// Start I2C-verzending

Wire.beginTransmission (Addr);

// Selecteer controleregister

Draad.schrijven (0x2A);

// Actieve modus

Draad.schrijven (0x01);

// Stop I2C-verzending

Wire.endTransmission();

// Start I2C-verzending

Wire.beginTransmission (Addr);

// Selecteer controleregister

Draad.schrijven (0x0E);

// Stel bereik in op +/- 2g

Draad.schrijven (0x00);

// Stop I2C-verzending

Wire.endTransmission();

vertraging (300);

}

lege lus()

{

niet-ondertekende int-gegevens[7];

// Vraag 7 bytes aan gegevens aan

Wire.requestFrom(Addr, 7);

// Lees 7 bytes aan gegevens

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

if(Draad.beschikbaar() == 7)

{

data[0] = Draad.lezen();

data[1] = Draad.lezen();

data[2] = Draad.lezen();

data[3] = Draad.lezen();

data[4] = Draad.lezen();

data[5] = Draad.lezen();

data[6] = Draad.lezen();

}

// Converteer de gegevens naar 12-bits

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

als (xAccl > 2047)

{

xAccl-= 4096;

}

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

als (yAccl > 2047)

{

yAccl-= 4096;

}

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

als (zAccl > 2047)

{

zAccl-= 4096;

}

// Gegevens uitvoeren naar seriële monitor

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

Serieel.println(xAccl);

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

Serial.println(yAccl);

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

Serieel.println(zAccl);

vertraging (500);

}

Stap 4: Toepassingen:

MMA8452Q heeft verschillende toepassingen, waaronder E-kompas-toepassingen, detectie van statische oriëntatie met detectie van portret/landschap, omhoog/omlaag, links/rechts, positie-identificatie achter/voor, notebook, e-reader en tuimel- en vrije valdetectie van laptops, realtime oriëntatiedetectie inclusief virtual reality en gaming 3D-gebruikerspositiefeedback, real-time activiteitenanalyse zoals stappenteller tellen, vrije val-valdetectie voor HDD, gegist bestede GPS-back-up en nog veel meer.

Aanbevolen: