Sisukord:

Arduino Nano-MMA8452Q 3-teljeline 12-bitine/8-bitine digitaalne kiirendusmõõturi õpetus: 4 sammu
Arduino Nano-MMA8452Q 3-teljeline 12-bitine/8-bitine digitaalne kiirendusmõõturi õpetus: 4 sammu

Video: Arduino Nano-MMA8452Q 3-teljeline 12-bitine/8-bitine digitaalne kiirendusmõõturi õpetus: 4 sammu

Video: Arduino Nano-MMA8452Q 3-teljeline 12-bitine/8-bitine digitaalne kiirendusmõõturi õpetus: 4 sammu
Video: Arduino Nano MMA8452Q with 8x8 Dot Matrix 2024, Juuli
Anonim
Image
Image

MMA8452Q on nutikas, väikese võimsusega kolmeteljeline mahtuvuslik mikromeetriga kiirendusmõõtur, millel on 12 bitti eraldusvõime. Kiirendusmõõturi sisseehitatud funktsioonide abil pakutakse paindlikke kasutaja programmeeritavaid valikuid, mis on konfigureeritavad kaheks katkestusnõelaks. Sellel on kasutaja poolt valitavad täisskaalad ± 2g/± 4g/± 8g koos kõrgpääsfiltriga filtreeritud andmetega ja reaalajas saadaval olevate filtreerimata andmetega. Siin on selle demonstratsioon Arduino nanoga.

Samm: mida vajate..

Mida sa vajad..!!
Mida sa vajad..!!

1. Arduino Nano

2. MMA8452Q

3. I²C kaabel

4. I²C kilp Arduino Nano jaoks

2. samm: ühendus:

Ühendus
Ühendus
Ühendus
Ühendus
Ühendus
Ühendus
Ühendus
Ühendus

Võtke Arduino Nano jaoks I2C kilp ja lükake see õrnalt üle Nano tihvtide.

Seejärel ühendage I2C kaabli üks ots MMA8452Q anduriga ja teine ots I2C varjestusega.

Ühendused on näidatud ülaltoodud pildil.

3. samm: kood:

Kood
Kood

MMMA8452Q arduino koodi saate alla laadida meie githubi hoidlast DCUBE Store.

Siin on link.

Kaasame raamatukogu Wire.h, et hõlbustada anduri I2c -side Arduino plaadiga.

Siit saate koodi ka kopeerida, see on järgmine:

// Levitatakse vaba tahte litsentsiga.

// Kasutage seda soovitud viisil, kasumit teenides või tasuta, tingimusel et see sobib sellega seotud teoste litsentsidega.

// MMA8452Q

// See kood on loodud töötama koos MMA8452Q_I2CS I2C minimooduliga.

#kaasake

// MMA8452Q I2C aadress on 0x1C (28)

#define Addr 0x1C

tühine seadistus ()

{

// Initsialiseeri I2C side kui MASTER

Wire.begin ();

// Initsialiseeri jadaühendus, määrake edastuskiirus = 9600

Seriaalne algus (9600);

// Käivitage I2C edastamine

Wire.beginTransmission (Addr);

// Valige juhtregister

Wire.write (0x2A);

// Ooterežiim

Wire.write (0x00);

// Peata I2C edastamine

Wire.endTransmission ();

// Käivitage I2C edastamine

Wire.beginTransmission (Addr);

// Valige juhtregister

Wire.write (0x2A);

// Aktiivne režiim

Wire.write (0x01);

// Peata I2C edastamine

Wire.endTransmission ();

// Käivitage I2C edastamine

Wire.beginTransmission (Addr);

// Valige juhtregister

Wire.write (0x0E);

// Määra vahemik +/- 2g

Wire.write (0x00);

// Peata I2C edastamine

Wire.endTransmission ();

viivitus (300);

}

tühine tsükkel ()

{

allkirjastamata int andmed [7];

// Taotle 7 baiti andmeid

Wire.requestFrom (Addr, 7);

// Loe 7 baiti andmeid

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

kui (Wire.available () == 7)

{

andmed [0] = Wire.read ();

andmed [1] = Wire.read ();

andmed [2] = Wire.read ();

andmed [3] = Wire.read ();

andmed [4] = Wire.read ();

andmed [5] = Wire.read ();

andmed [6] = Wire.read ();

}

// Teisendage andmed 12-bitisteks

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

kui (xAccl> 2047)

{

xAccl -= 4096;

}

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

kui (yAccl> 2047)

{

yAccl -= 4096;

}

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

kui (zAccl> 2047)

{

zAccl -= 4096;

}

// Andmete väljastamine jadamonitorile

Serial.print ("Kiirendus X-teljel:");

Serial.println (xAccl);

Serial.print ("Kiirendus Y-teljel:");

Serial.println (yAccl);

Serial.print ("Kiirendus Z-teljel:");

Serial.println (zAccl);

viivitus (500);

}

4. samm: rakendused:

MMA8452Q-l on mitmesuguseid rakendusi, sealhulgas E-kompassirakendusi, staatilise orientatsiooni tuvastamist, mis hõlmab portree/maastikku, üles/alla, vasakule/paremale, tagumise/esiseisundi tuvastamist, sülearvutit, e-lugerit ning sülearvuti trumli ja vabalangemise tuvastamist, reaalajas orienteerumise tuvastamine, sealhulgas virtuaalne reaalsus ja mängude 3D kasutaja positsiooni tagasiside, reaalajas toimuva tegevuse analüüs, nagu sammulugeja sammude loendamine, vabalangemise languse tuvastamine kõvakettale, surnud GPS-i varundamine ja palju muud.

Soovitan: