Turinys:

„Arduino Nano“-MMA8452Q 3 ašių 12 bitų/8 bitų skaitmeninio akselerometro pamoka: 4 žingsniai
„Arduino Nano“-MMA8452Q 3 ašių 12 bitų/8 bitų skaitmeninio akselerometro pamoka: 4 žingsniai

Video: „Arduino Nano“-MMA8452Q 3 ašių 12 bitų/8 bitų skaitmeninio akselerometro pamoka: 4 žingsniai

Video: „Arduino Nano“-MMA8452Q 3 ašių 12 bitų/8 bitų skaitmeninio akselerometro pamoka: 4 žingsniai
Video: МАСТЕР-КЛАСС по Arduino | Полный семинар по программированию за 90 минут! 2024, Lapkritis
Anonim
Image
Image

„MMA8452Q“yra protingas, mažos galios, trijų ašių, talpinis, mikroprocesorinis akselerometras, turintis 12 bitų skiriamąją gebą. Lanksčios vartotojo programuojamos parinktys pateikiamos naudojant pagreičio matuoklio funkcijas, kurias galima sukonfigūruoti dviem pertraukimo kaiščiais. Jame yra vartotojo pasirinktos visos ± 2 g/± 4 g/± 8 g skalės su aukšto dažnio filtro filtruotais duomenimis, taip pat nefiltruoti duomenys, pasiekiami realiuoju laiku. Štai jo demonstracija su „Arduino nano“.

1 žingsnis: ko jums reikia..

Ko tau reikia..!!
Ko tau reikia..!!

1. „Arduino Nano“

2. MMA8452Q

3. I²C kabelis

4. „I²C Shield“, skirtas „Arduino Nano“

2 veiksmas: prijungimas:

Ryšys
Ryšys
Ryšys
Ryšys
Ryšys
Ryšys
Ryšys
Ryšys

Paimkite „Arduino Nano“I2C skydą ir švelniai stumkite jį per „Nano“kaiščius.

Tada vieną I2C kabelio galą prijunkite prie MMA8452Q jutiklio, o kitą - prie I2C skydo.

Sujungimai parodyti aukščiau esančiame paveikslėlyje.

3 žingsnis: kodas:

Kodas
Kodas

MMMA8452Q „arduino“kodą galite atsisiųsti iš mūsų „github“saugyklos- „DCUBE Store“.

Čia yra nuoroda.

Įtraukiame „Wire.h“biblioteką, kad palengvintume jutiklio I2c ryšį su „Arduino“plokšte.

Taip pat galite nukopijuoti kodą iš čia, jis pateikiamas taip:

// Platinama su laisvos valios licencija.

// Naudokite bet kokiu būdu, pelningai ar nemokamai, jei jis atitinka susijusių darbų licencijas.

// MMA8452Q

// Šis kodas skirtas dirbti su „MMA8452Q_I2CS I2C Mini“moduliu.

#įtraukti

// MMA8452Q I2C adresas yra 0x1C (28)

#define Addr 0x1C

negaliojanti sąranka ()

{

// Inicijuoti I2C komunikaciją kaip MASTER

Wire.begin ();

// Inicijuoti serijinį ryšį, nustatyti duomenų perdavimo spartą = 9600

Serial.begin (9600);

// Pradėti I2C perdavimą

Wire.beginTransmission (Addr);

// Pasirinkite valdymo registrą

Wire.write (0x2A);

// Budėjimo režimas

Wire.write (0x00);

// Sustabdyti I2C perdavimą

Wire.endTransmission ();

// Pradėti I2C perdavimą

Wire.beginTransmission (Addr);

// Pasirinkite valdymo registrą

Wire.write (0x2A);

// Aktyvus režimas

Wire.write (0x01);

// Sustabdyti I2C perdavimą

Wire.endTransmission ();

// Pradėti I2C perdavimą

Wire.beginTransmission (Addr);

// Pasirinkite valdymo registrą

Wire.write (0x0E);

// Nustatykite diapazoną į +/- 2g

Wire.write (0x00);

// Sustabdyti I2C perdavimą

Wire.endTransmission ();

vėlavimas (300);

}

tuštumos kilpa ()

{

nepasirašyti int duomenys [7];

// Prašyti 7 baitų duomenų

Wire.requestFrom (Addr, 7);

// Skaityti 7 baitus duomenų

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

jei (Wire.available () == 7)

{

duomenys [0] = Wire.read ();

duomenys [1] = Wire.read ();

duomenys [2] = Wire.read ();

duomenys [3] = Wire.read ();

duomenys [4] = Wire.read ();

duomenys [5] = Wire.read ();

duomenys [6] = Wire.read ();

}

// Konvertuokite duomenis į 12 bitų

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

jei (xAccl> 2047)

{

xAccl -= 4096;

}

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

jei (yAccl> 2047)

{

yAccl -= 4096;

}

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

jei (zAccl> 2047)

{

zAccl -= 4096;

}

// Duomenų išvedimas į serijinį monitorių

Serial.print ("pagreitis X ašyje:");

Serial.println (xAccl);

Serial.print ("pagreitis Y ašyje:");

Serial.println (yAccl);

Serial.print („Pagreitis Z ašyje:“);

Serial.println (zAccl);

vėlavimas (500);

}

4 žingsnis: programos:

„MMA8452Q“turi įvairias programas, įskaitant „E-kompaso“programas, statinės orientacijos aptikimą, apimantį portreto/kraštovaizdžio, aukštyn/žemyn, kairės/dešinės, galinės/priekinės padėties atpažinimą, nešiojamąjį kompiuterį, el. orientacijos aptikimas, įskaitant virtualios realybės ir žaidimo 3D vartotojo padėties grįžtamąjį ryšį, veiklos analizė realiuoju laiku, pvz., žingsniamatio žingsnių skaičiavimas, laisvojo kritimo aptikimas HDD, negyvos sistemos GPS atsarginė kopija ir daug daugiau.

Rekomenduojamas: