Satura rādītājs:
- 1. solis: kas jums nepieciešams..
- 2. darbība: savienojums:
- 3. darbība: kods:
- 4. darbība. Lietojumprogrammas:
Video: Arduino Nano-MMA8452Q 3 asu 12 bitu/8 bitu digitālā akselerometra apmācība: 4 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:52
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..
1. Arduino Nano
2. MMA8452Q
3. I²C kabelis
4. I²C vairogs Arduino Nano
2. darbība: 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:
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:
Raspberry Pi - ADXL345 3 asu akselerometra Python apmācība: 4 soļi
Raspberry Pi-ADXL345 3 asu akselerometra Python apmācība: ADXL345 ir mazs, plāns, īpaši zems jaudas 3 asu akselerometrs ar augstas izšķirtspējas (13 bitu) mērījumu līdz ± 16 g. Digitālie izvaddati tiek formatēti kā 16 bitu papildinājumi, un tie ir pieejami, izmantojot I2 C digitālo saskarni. Tas mēra
Raspberry Pi - ADXL345 3 asu akselerometra Java apmācība: 4 soļi
Raspberry Pi-ADXL345 3 asu akselerometrs Java apmācība: ADXL345 ir mazs, plāns, īpaši zems jaudas trīs asu akselerometrs ar augstas izšķirtspējas (13 bitu) mērījumu līdz ± 16 g. Digitālie izvaddati tiek formatēti kā 16 bitu papildinājumi, un tie ir pieejami, izmantojot I2 C digitālo saskarni. Tas mēra
Arduino akselerometra apmācība: Kuģa tilta vadīšana, izmantojot servomotoru: 5 soļi
Arduino akselerometra apmācība: kontrolējiet kuģa tiltu, izmantojot servomotoru: akselerometra sensori tagad ir lielākajā daļā mūsu viedtālruņu, lai sniegtu tiem plašu lietojumu un iespējas, kuras mēs izmantojam katru dienu, pat nezinot, ka par to ir atbildīgs akselerometrs. Viena no šīm iespējām ir vadāmība
CubeSat akselerometra apmācība: 6 soļi
CubeSat akselerometra apmācība: kubikatsats ir miniaturizēta satelīta veids kosmosa izpētei, ko veido 10x10x10 cm kubikmetru daudzkārtņi un masa nepārsniedz 1,33 kilogramus. Kubatori ļauj nosūtīt lielu daudzumu satelītu uz kosmosu un
Akselerometra un žiroskopu apmācība: 3 soļi
Akselerometra un žiroskopu apmācība: Ievads Šī rokasgrāmata ir paredzēta ikvienam, kas vēlas izmantot akselerometrus un žiroskopus, kā arī kombinētās IMU ierīces (inerciālās mērīšanas vienību) elektronikas projektos. Mēs apskatīsim: Ko mēra akselerometrs?