Satura rādītājs:

Arduino Nano-MMA8452Q 3 asu 12 bitu/8 bitu digitālā akselerometra apmācība: 4 soļi
Arduino Nano-MMA8452Q 3 asu 12 bitu/8 bitu digitālā akselerometra apmācība: 4 soļi

Video: Arduino Nano-MMA8452Q 3 asu 12 bitu/8 bitu digitālā akselerometra apmācība: 4 soļi

Video: Arduino Nano-MMA8452Q 3 asu 12 bitu/8 bitu digitālā akselerometra apmācība: 4 soļi
Video: Raspebrry Pi MCP3425 I2C Analog to Digital Converter Python Tutorial 2024, Jūlijs
Anonim
Image
Image

MMA8452Q ir gudrs, mazjaudas, trīs asu, kapacitatīvs, mikromehāniski apstrādāts akselerometrs ar 12 bitu izšķirtspēju. Elastīgas lietotāja programmējamas opcijas tiek nodrošinātas ar akselerometrā iebūvēto funkciju palīdzību, kuras var konfigurēt ar divām pārtraukšanas tapām. Tam ir lietotāja atlasītas pilnas skalas ± 2g/± 4g/± 8g ar augstfrekvences filtra filtrētiem datiem, kā arī reāllaikā pieejami nefiltrēti dati. Šeit ir tā demonstrācija ar Arduino nano.

1. solis: kas jums nepieciešams..

Ko tev vajag..!!
Ko tev vajag..!!

1. Arduino Nano

2. MMA8452Q

3. I²C kabelis

4. I²C vairogs Arduino Nano

2. darbība: savienojums:

Savienojums
Savienojums
Savienojums
Savienojums
Savienojums
Savienojums
Savienojums
Savienojums

Paņemiet I2C vairogu Arduino Nano un viegli piespiediet to pār Nano tapām.

Pēc tam pievienojiet I2C kabeļa vienu galu MMA8452Q sensoram un otru galu I2C vairogam.

Savienojumi ir parādīti attēlā iepriekš.

3. darbība: kods:

Kods
Kods

MMMA8452Q arduino kodu var lejupielādēt no mūsu github krātuves DCUBE Store.

Šeit ir saite.

Mēs iekļaujam bibliotēku Wire.h, lai atvieglotu sensora I2c komunikāciju ar Arduino plati.

Varat arī nokopēt kodu no šejienes, tas ir norādīts šādi:

// Izplatīts ar brīvās gribas licenci.

// Izmantojiet to jebkurā veidā, bez peļņas vai bez maksas, ja tas iekļaujas saistīto darbu licencēs.

// MMA8452Q

// Šis kods ir paredzēts darbam ar MMA8452Q_I2CS I2C mini moduli.

#iekļaut

// MMA8452Q I2C adrese ir 0x1C (28)

#define Addr 0x1C

anulēts iestatījums ()

{

// Inicializēt I2C komunikāciju kā MASTER

Wire.begin ();

// Inicializēt seriālo komunikāciju, iestatīt pārraides ātrumu = 9600

Sērijas sākums (9600);

// Sākt I2C pārraidi

Wire.beginTransmission (Addr);

// Atlasiet vadības reģistru

Wire.write (0x2A);

// Gaidīšanas režīmā

Wire.write (0x00);

// Apturēt I2C pārraidi

Wire.endTransmission ();

// Sākt I2C pārraidi

Wire.beginTransmission (Addr);

// Atlasiet vadības reģistru

Wire.write (0x2A);

// Aktīvais režīms

Wire.write (0x01);

// Apturēt I2C pārraidi

Wire.endTransmission ();

// Sākt I2C pārraidi

Wire.beginTransmission (Addr);

// Atlasiet vadības reģistru

Wire.write (0x0E);

// Iestatiet diapazonu uz +/- 2g

Wire.write (0x00);

// Apturēt I2C pārraidi

Wire.endTransmission ();

kavēšanās (300);

}

tukša cilpa ()

{

neparakstīti int dati [7];

// Pieprasīt 7 baitus datu

Wire.requestFrom (Addr, 7);

// Izlasiet 7 baitus datu

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

ja (Wire.available () == 7)

{

dati [0] = Wire.read ();

dati [1] = Wire.read ();

dati [2] = Wire.read ();

dati [3] = Wire.read ();

dati [4] = Wire.read ();

dati [5] = Wire.read ();

dati [6] = Wire.read ();

}

// Konvertējiet datus uz 12 bitiem

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

ja (xAccl> 2047)

{

xAccl -= 4096;

}

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

ja (yAccl> 2047)

{

yAccl -= 4096;

}

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

ja (zAccl> 2047)

{

zAccl -= 4096;

}

// Izvadiet datus uz seriālo monitoru

Serial.print ("Paātrinājums X-asī:");

Serial.println (xAccl);

Serial.print ("Paātrinājums Y-asī:");

Serial.println (yAccl);

Serial.print ("Paātrinājums Z-asī:");

Serial.println (zAccl);

kavēšanās (500);

}

4. darbība. Lietojumprogrammas:

MMA8452Q ir dažādas lietojumprogrammas, kas ietver E-kompasa lietojumprogrammas, statiskās orientācijas noteikšanu, kas ietver portreta/ainavas, augšup/lejup, pa kreisi/pa labi, aizmugures/priekšējās pozīcijas identifikāciju, piezīmjdatoru, e-lasītāju un klēpjdatora veļas un brīvā kritiena noteikšanu, reālā laikā orientācijas noteikšana, ieskaitot virtuālo realitāti un spēļu 3D lietotāja atrašanās vietas atgriezenisko saiti, reāllaika darbību analīze, piemēram, soļu skaitīšanas soļu skaitīšana, brīvā kritiena noteikšana HDD, mirušo aprēķinu GPS dublēšana un daudz kas cits.

Ieteicams: