Turinys:
Video: „Arduino Nano“-MMA8452Q 3 ašių 12 bitų/8 bitų skaitmeninio akselerometro pamoka: 4 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
„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..
1. „Arduino Nano“
2. MMA8452Q
3. I²C kabelis
4. „I²C Shield“, skirtas „Arduino Nano“
2 veiksmas: prijungimas:
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:
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:
Raspberry Pi - ADXL345 3 ašių akselerometro „Python“vadovėlis: 4 žingsniai
„Raspberry Pi“-ADXL345 3 ašių akselerometro „Python“vadovėlis: „ADXL345“yra mažas, plonas, itin mažos galios 3 ašių akselerometras, turintis didelės skiriamosios gebos (13 bitų) matavimą iki ± 16 g. Skaitmeniniai išvesties duomenys yra suformatuoti kaip 16 bitų du papildymai ir yra prieinami per I2 C skaitmeninę sąsają. Tai matuoja
„Raspberry Pi“- ADXL345 3 ašių akcelerometras „Java“pamoka: 4 žingsniai
„Raspberry Pi“-ADXL345 3 ašių akcelerometras „Java“pamoka: „ADXL345“yra mažas, plonas, itin mažos galios 3 ašių akselerometras, turintis didelės skiriamosios gebos (13 bitų) matavimą iki ± 16 g. Skaitmeniniai išvesties duomenys yra suformatuoti kaip 16 bitų du papildymai ir yra prieinami per I2 C skaitmeninę sąsają. Tai matuoja
„Arduino“akselerometro pamoka: valdykite laivo tiltą naudodami servo variklį: 5 žingsniai
„Arduino“akselerometro pamoka: valdykite laivų tiltą naudodami servo variklį: Akselerometro jutikliai dabar yra daugelyje mūsų išmaniųjų telefonų, kad suteiktų jiems platų naudojimo ir galimybių spektrą, kuriuos naudojame kasdien, net nežinodami, kad už tai atsakingas akselerometras. Viena iš šių galimybių yra valdymas
„Arduino Nano“- BH1715 skaitmeninio aplinkos šviesos jutiklio pamoka: 4 žingsniai
„Arduino Nano“- BH1715 skaitmeninio aplinkos šviesos jutiklio pamoka: „BH1715“yra skaitmeninis aplinkos šviesos jutiklis su I²C magistralės sąsaja. BH1715 paprastai naudojamas aplinkos šviesos duomenims gauti, kad būtų galima reguliuoti mobiliųjų įrenginių LCD ir klaviatūros apšvietimo galią. Šis įrenginys siūlo 16 bitų skiriamąją gebą ir
GY-521 MPU6050 3 ašių pagreičio giroskopas 6DOF modulio pamoka: 4 žingsniai
GY-521 MPU6050 3 ašių pagreičio giroskopo 6DOF modulio pamoka: Aprašymas Šiame paprastame modulyje yra viskas, ko reikia sąsajai su „Arduino“ir kitais valdikliais per I2C (naudokite „Wire Arduino“biblioteką) ir pateikite judesio jutimo informaciją 3 ašims-X, Y ir Z .Specifikacijos Akselerometro diapazonai: ± 2, ±