Turinys:
1. Arduino Nano
2. MMA8452Q
LINK:
3. I²C kabelis
LINK:
4. I²C skydas „Arduino Nano“
www.controleverything.com/content/I2C-Master?sku=ANI2C
2 veiksmas: ryšys:
Paimkite I2C skydą „Arduino Nano“ ir švelniai stumkite jį ant Nano kaiščių.
Tada prijunkite vieną I2C kabelio galą prie MMA8452Q jutiklio ir kitą galą prie I2C ekrano.
Ryšiai rodomi aukščiau esančiame paveikslėlyje.
3 veiksmas: kodas:
„MMMA8452Q“ arduino kodą galima atsisiųsti iš „github“ saugyklos - ControlEverythingCommunity
Čia yra nuoroda į tą patį:
http: //github.com/ControlEverythingCommunity/MMA8 …
MMA8452Q duomenų lapą galite rasti čia:
http: //s3.amazonaws.com/controleverything.media/c …
Mes įtraukiame biblioteką „Wire.h“, kad palengvintume jutiklio I2c ryšį su „Arduino“ lenta.
Taip pat galite nukopijuoti kodą iš čia, jis pateikiamas taip:
// Platinama nemokamai licencija.
// Naudokite jį bet kokiu būdu, kurį norite, pelno ar nemokamo, su sąlyga, kad jis atitiktų susijusių darbų licencijas.
// MMA8452Q
// Šis kodas skirtas dirbti su „MMA8452Q_I2CS“ „I2C“ mini moduliu, kurį rasite „ControlEverything.com“.
// http: //www.controleverything.com/content/Accelor …
#include // MMA8452Q I2C adresas yra 0x1C (28) #define Addr 0x1C negaliojantis nustatymas () { // Inicijuoti I2C ryšį kaip MASTER Wire.begin (); // Serijinio ryšio inicijavimas, nustatytas perdavimo greitis = 9600 Serial.begin (9600); // Pradėti I2C transliaciją Wire.beginTransmission (Addr); // Pasirinkite kontrolės registrą Wire.write (0x2A); // Budėjimo režimas Wire.write (0x00); // Sustabdyti I2C perdavimą Wire.endTransmission (); // Pradėti I2C transliaciją Wire.beginTransmission (Addr); // Pasirinkite kontrolės registrą Wire.write (0x2A); // Aktyvus režimas Wire.write (0x01); // Sustabdyti I2C perdavimą Wire.endTransmission (); // Pradėti I2C transliaciją Wire.beginTransmission (Addr); // Pasirinkite kontrolės registrą Wire.write (0x0E); // Nustatykite intervalą iki +/- 2g Wire.write (0x00); // Sustabdyti I2C perdavimą Wire.endTransmission (); vėlavimas (300); } tuščia kilpa () { nepasirašyti int duomenys 7; // Prašyti 7 baitų duomenų Wire.requestFrom (Addr, 7); // Skaityti 7 baitų 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; } // Išvesties duomenys į serijinį monitorių Serial.print („Pagreitis X-Axis:“); Serial.println (xAccl); Serial.print („pagreitis Y-ašyje“); Serial.println (yAccl); Serial.print („Pagreitis Z-ašyje“); Serial.println (zAccl); vėlavimas (500); } „MMA8452Q“ turi įvairias programas, apimančias „E-Compass“ programas, statinę orientaciją, kuri apima portretą / kraštovaizdį, aukštyn / žemyn, kairėn / dešinėn, nugaros / priekinės padėties identifikavimą, nešiojamąjį kompiuterį, el. orientacijos aptikimas, įskaitant virtualiosios realybės ir žaidimų 3D naudotojo pozicijos grįžtamąjį ryšį, realaus laiko veiklos analizė, pvz., žingsnio matuoklio žingsnių skaičiavimas, laisvojo kritimo aptikimas HDD, nesudėtinga GPS atsarginė kopija ir daug daugiau.4 veiksmas: programos: