
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:02


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.

1. Arduino Nano
2. MMA8452Q
3. Kabel I²C
4. Tarcza I²C dla Arduino Nano
Krok 2: 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 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:
Akcelerometr kontrolera Xbox 360 / modyfikacja sterowania żyroskopem: 7 kroków

Modyfikacja akcelerometru/żyroskopu kontrolera dla konsoli Xbox 360: Gram w Assetto Corsa na kontrolerze dla konsoli Xbox 360. Niestety sterowanie drążkiem analogowym jest bardzo nieporęczne i nie mam miejsca na ustawienie kół. Próbowałem wymyślić sposoby, w jakie mógłbym wbić lepszy mechanizm kierowniczy do t
Prosty zegar cyfrowy wykorzystujący Arduino Nano i DS1307: 4 kroki

Prosty zegar cyfrowy przy użyciu Arduino Nano i DS1307: W tym artykule pokażę samouczek, jak zrobić zegar cyfrowy przy użyciu Arduino.. Płytka Arduino, której używam, to Arduino Nano V3, DS1307 jako dostawca danych czasu, MAX7219 7 Segment jako obejrzyj wyświetlacz.Przed wejściem do samouczka polecam
Podstawy MPU6050-Akcelerometr + czujnik żyroskopowy: 3 kroki

MPU6050-Akcelerometr + czujnik żyroskopowy Podstawy: MPU6050 jest bardzo przydatnym czujnikiem. MPU 6050 to IMU: Bezwładnościowa jednostka pomiarowa (IMU) to urządzenie elektroniczne, które mierzy i raportuje specyficzną siłę ciała, prędkość kątową, a czasem orientację ciała, stosując kombinację
Akcelerometr Kontroler gier: 8 kroków

Akcelerometr kontroler gier: tekst Voorlopige
Arduino Nano: Akcelerometr Żyroskop Kompas Czujnik MPU9250 I2C Z Visuino: 11 kroków

Arduino Nano: Akcelerometr Żyroskop Kompas Czujnik MPU9250 I2C Z Visuino: MPU9250 jest jednym z najbardziej zaawansowanych obecnie dostępnych czujników połączonych akcelerometrem, żyroskopem i kompasem. Posiadają wiele zaawansowanych funkcji, w tym filtrowanie dolnoprzepustowe, wykrywanie ruchu, a nawet programowalny, wyspecjalizowany procesor