2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
MMA8452Q je inteligentný, trojosový, kapacitný, mikroosý akcelerometer s malým výkonom a 12 bitovým rozlíšením. Flexibilné programovateľné možnosti pre používateľov sú k dispozícii pomocou vstavaných funkcií v akcelerometri, konfigurovateľných na dva kolíky prerušenia. Má užívateľsky voliteľné plné stupnice ± 2 g/± 4 g/± 8 g s filtrovanými údajmi filtrovanými horným prechodom a nefiltrovanými údajmi, ktoré sú k dispozícii v reálnom čase. Tu je jeho ukážka s Arduino nano.
Krok 1: Čo potrebujete.. !
1. Arduino Nano
2. MMA8452Q
3. Kábel I²C
4. I²C štít pre Arduino Nano
Krok 2: Pripojenie:
Vezmite štít I2C pre Arduino Nano a jemne ho zatlačte cez kolíky Nano.
Potom pripojte jeden koniec kábla I2C k senzoru MMA8452Q a druhý koniec k štítu I2C.
Pripojenia sú znázornené na obrázku vyššie.
Krok 3: Kód:
Arduino kód pre MMMA8452Q si môžete stiahnuť z nášho úložiska github- DCUBE Store.
Tu je odkaz.
Ponúkame knižnicu Wire.h na uľahčenie komunikácie senzora I2c s doskou Arduino.
Odtiaľto môžete tiež skopírovať kód, ktorý je nasledujúci:
// Distribuované s licenciou slobodnej vôle.
// Používajte ho akýmkoľvek spôsobom chcete, so ziskom alebo zadarmo, za predpokladu, že sa zmestí do licencií k ním pridruženým dielam.
// MMA8452Q
// Tento kód je navrhnutý tak, aby fungoval s mini modulom MMA8452Q_I2CS I2C.
#zahrnúť
// Adresa I2C MMA8452Q je 0x1C (28)
#define Addr 0x1C
neplatné nastavenie ()
{
// Inicializujte komunikáciu I2C ako MASTER
Wire.begin ();
// Inicializujte sériovú komunikáciu, nastavte prenosovú rýchlosť = 9600
Serial.begin (9600);
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Vyberte riadiaci register
Wire.write (0x2A);
// Pohotovostný režim
Wire.write (0x00);
// Zastavte prenos I2C
Wire.endTransmission ();
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Vyberte riadiaci register
Wire.write (0x2A);
// Aktívny režim
Wire.write (0x01);
// Zastavte prenos I2C
Wire.endTransmission ();
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Vyberte riadiaci register
Wire.write (0x0E);
// Nastaviť rozsah na +/- 2g
Wire.write (0x00);
// Zastavte prenos I2C
Wire.endTransmission ();
oneskorenie (300);
}
prázdna slučka ()
{
nepodpísané int údaje [7];
// Požiadajte o 7 bajtov údajov
Wire.requestFrom (Addr, 7);
// Prečítajte 7 bajtov údajov
// staus, xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb
ak (Wire.available () == 7)
{
data [0] = Wire.read ();
údaje [1] = Wire.read ();
údaje [2] = Wire.read ();
údaje [3] = Wire.read ();
údaje [4] = Wire.read ();
údaje [5] = Wire.read ();
údaje [6] = Wire.read ();
}
// Previesť údaje na 12-bitové
int xAccl = ((údaje [1] * 256) + údaje [2]) / 16;
ak (xAccl> 2047)
{
xAccl -= 4096;
}
int yAccl = ((údaje [3] * 256) + údaje [4]) / 16;
ak (yAccl> 2047)
{
yAccl -= 4096;
}
int zAccl = ((údaje [5] * 256) + údaje [6]) / 16;
ak (zAccl> 2047)
{
zAccl -= 4096;
}
// Výstup údajov na sériový monitor
Serial.print ("Zrýchlenie v osi X:");
Serial.println (xAccl);
Serial.print ("Zrýchlenie v osi Y:");
Serial.println (yAccl);
Serial.print ("Zrýchlenie v osi Z:");
Serial.println (zAccl);
oneskorenie (500);
}
Krok 4: Aplikácie:
MMA8452Q má rôzne aplikácie, ktoré zahŕňajú aplikácie E-Compass, detekciu statickej orientácie, ktorá zahŕňa portrét/krajinu, hore/dole, vľavo/vpravo, identifikáciu polohy zozadu/spredu, notebook, elektronickú čítačku a detekciu pádu a voľného pádu notebooku, v reálnom čase detekcia orientácie vrátane virtuálnej reality a hier 3D spätná väzba o polohe užívateľa, analýza aktivít v reálnom čase, ako je počítanie krokov krokomerom, detekcia pádu voľného pádu pre pevný disk, zálohovanie GPS s mŕtvym zúčtovaním a mnoho ďalších.