Spisu treści:

Arduino Nano - MMA8452Q 3-osiowy 12-bitowy/8-bitowy cyfrowy akcelerometr - samouczek: 4 kroki
Arduino Nano - MMA8452Q 3-osiowy 12-bitowy/8-bitowy cyfrowy akcelerometr - samouczek: 4 kroki

Wideo: Arduino Nano - MMA8452Q 3-osiowy 12-bitowy/8-bitowy cyfrowy akcelerometr - samouczek: 4 kroki

Wideo: Arduino Nano - MMA8452Q 3-osiowy 12-bitowy/8-bitowy cyfrowy akcelerometr - samouczek: 4 kroki
Wideo: Arduino Nano MMA8452Q with 8x8 Dot Matrix 2024, Lipiec
Anonim
Image
Image

MMA8452Q to inteligentny, energooszczędny, trójosiowy, pojemnościowy akcelerometr z 12-bitową rozdzielczością. Elastyczne opcje programowalne przez użytkownika są dostarczane za pomocą wbudowanych funkcji w akcelerometrze, konfigurowalnych do dwóch styków przerwań. Posiada wybierane przez użytkownika pełne skale ±2g/±4g/±8g z filtrowanymi danymi filtra górnoprzepustowego, a także niefiltrowanymi danymi dostępnymi w czasie rzeczywistym. Oto jego demonstracja z Arduino nano.

Krok 1: Czego potrzebujesz.

Czego potrzebujesz..!!
Czego potrzebujesz..!!

1. Arduino Nano

2. MMA8452Q

3. Kabel I²C

4. Tarcza I²C dla Arduino Nano

Krok 2: Połączenie:

Połączenie
Połączenie
Połączenie
Połączenie
Połączenie
Połączenie
Połączenie
Połączenie

Weź nakładkę I2C dla Arduino Nano i delikatnie wepchnij ją na piny Nano.

Następnie podłącz jeden koniec kabla I2C do czujnika MMA8452Q, a drugi koniec do ekranu I2C.

Połączenia prezentuje powyższy obrazek.

Krok 3: Kod:

Kod
Kod

Kod arduino dla MMMA8452Q można pobrać z naszego repozytorium github - DCUBE Store.

Tutaj jest link.

Dołączamy bibliotekę Wire.h ułatwiającą komunikację I2c czujnika z płytką Arduino.

Możesz również skopiować kod stąd, jest on podany w następujący sposób:

// Rozprowadzane z wolną licencją.

// Używaj go w dowolny sposób, z zyskiem lub za darmo, pod warunkiem, że pasuje do licencji powiązanych z nim dzieł.

// MMA8452Q

// Ten kod jest przeznaczony do pracy z minimodułem MMA8452Q_I2CS I2C.

#włączać

// Adres MMA8452Q I2C to 0x1C(28)

#define Addr 0x1C

pusta konfiguracja()

{

// Zainicjuj komunikację I2C jako MASTER

Wire.początek();

// Zainicjuj komunikację szeregową, ustaw szybkość transmisji = 9600

Serial.początek(9600);

// Rozpocznij transmisję I2C

Wire.beginTransmisja(Addr);

// Wybierz rejestr kontrolny

Wire.write(0x2A);

// Tryb czuwania

Wire.write(0x00);

// Zatrzymaj transmisję I2C

Wire.endTransmission();

// Rozpocznij transmisję I2C

Wire.beginTransmisja(Addr);

// Wybierz rejestr kontrolny

Wire.write(0x2A);

// Tryb aktywny

Wire.write(0x01);

// Zatrzymaj transmisję I2C

Wire.endTransmission();

// Rozpocznij transmisję I2C

Wire.beginTransmisja(Addr);

// Wybierz rejestr kontrolny

Wire.write(0x0E);

// Ustaw zakres na +/- 2g

Wire.write(0x00);

// Zatrzymaj transmisję I2C

Wire.endTransmission();

opóźnienie(300);

}

pusta pętla()

{

dane int bez znaku[7];

// Żądaj 7 bajtów danych

Wire.requestFrom(Addr, 7);

// Odczytaj 7 bajtów danych

// stan, xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb

if(Przewód.dostępny() == 7)

{

dane[0] = Przewód.odczyt();

dane[1] = Drut.odczyt();

dane[2] = Przewód.odczyt();

dane[3] = Przewód.odczyt();

dane[4] = Przewód.odczyt();

dane[5] = Wire.read();

dane[6] = Przewód.odczyt();

}

// Konwertuj dane na 12-bitowe

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

jeśli (xAccl > 2047)

{

xAccl -= 4096;

}

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

jeśli (yAccl > 2047)

{

yAccl -= 4096;

}

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

jeśli (zAccl > 2047)

{

zAccl -= 4096;

}

// Dane wyjściowe do monitora szeregowego

Serial.print("Przyspieszenie w osi X: ");

Serial.println(xAccl);

Serial.print("Przyspieszenie w osi Y: ");

Serial.println(yAccl);

Serial.print("Przyspieszenie w osi Z: ");

Serial.println(zAccl);

opóźnienie (500);

}

Krok 4: Aplikacje:

MMA8452Q ma różne aplikacje, w tym aplikacje E-kompas, wykrywanie orientacji statycznej, która obejmuje orientację pionową/poziomą, góra/dół, lewo/prawo, tył/przód, notebook, czytnik e-booków oraz wykrywanie upadku i upadku laptopa, w czasie rzeczywistym wykrywanie orientacji, w tym wirtualna rzeczywistość i informacje zwrotne o pozycji użytkownika w grach 3D, analiza aktywności w czasie rzeczywistym, taka jak liczenie kroków krokomierza, wykrywanie swobodnego spadania na dysk twardy, kopia zapasowa GPS z funkcją martwego liczenia i wiele więcej.

Zalecana: