Სარჩევი:

Arduino Nano-MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Tutorial: 4 Steps
Arduino Nano-MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Tutorial: 4 Steps

ვიდეო: Arduino Nano-MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Tutorial: 4 Steps

ვიდეო: Arduino Nano-MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Tutorial: 4 Steps
ვიდეო: Arduino Nano - MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Tutorial 2024, ივლისი
Anonim
Image
Image

MMA8452Q არის ჭკვიანი, დაბალი სიმძლავრის, სამ ღერძიანი, capacitive, micromachined acelerometer with 12 bit of resolution. მოქნილი მომხმარებლის პროგრამირებადი პარამეტრები მოცემულია ამაჩქარებელში ჩამონტაჟებული ფუნქციების დახმარებით, კონფიგურირებადი ორი შეწყვეტის ქინძისთავზე. მას აქვს მომხმარებლის მიერ შერჩეული სრული მასშტაბები ± 2 გ/± 4 გ/g 8 გ მაღალი გამავლობის ფილტრის გაფილტრული მონაცემებით, ასევე რეალურ დროში არსებული არაფილტრირებული მონაცემებით. აქ არის მისი დემონსტრირება არდუინო ნანოსთან ერთად.

ნაბიჯი 1: რაც გჭირდებათ..

Რა გჭირდება..!!
Რა გჭირდება..!!

1. არდუინო ნანო

2. MMA8452Q

3. I²C კაბელი

4. I²C ფარი არდუინო ნანოსთვის

ნაბიჯი 2: კავშირი:

კავშირი
კავშირი
კავშირი
კავშირი
კავშირი
კავშირი
კავშირი
კავშირი

აიღეთ I2C ფარი არდუინო ნანოსთვის და ნაზად წაისვით ნანოს ქინძისთავებზე.

შემდეგ დააკავშირეთ I2C კაბელის ერთი ბოლო MMA8452Q სენსორთან და მეორე ბოლო I2C ფარსთან.

კავშირები ნაჩვენებია ზემოთ მოცემულ სურათზე.

ნაბიჯი 3: კოდი:

კოდი
კოდი

MMMA8452Q არდუინოს კოდი შეგიძლიათ ჩამოტვირთოთ ჩვენი github საცავიდან- DCUBE Store.

აქ არის ბმული.

ჩვენ მოიცავს ბიბლიოთეკას Wire.h სენსორის I2c კომუნიკაციის გასაადვილებლად Arduino დაფასთან.

თქვენ ასევე შეგიძლიათ დააკოპიროთ კოდი აქედან, იგი მოცემულია შემდეგნაირად:

// განაწილებულია თავისუფალი ნების ლიცენზიით.

// გამოიყენეთ იგი ნებისმიერი ფორმით, როგორც გსურთ, მოგებით ან უფასოდ, იმ პირობით, რომ იგი ჯდება ლიცენზიებთან დაკავშირებული სამუშაოებისათვის.

// MMA8452Q

// ეს კოდი შექმნილია MMA8452Q_I2CS I2C მინი მოდულთან მუშაობისთვის.

#ჩართეთ

// MMA8452Q I2C მისამართი არის 0x1C (28)

#განსაზღვრეთ Addr 0x1C

ბათილად დაყენება ()

{

// I2C კომუნიკაციის ინიციალიზაცია, როგორც MASTER

Wire.begin ();

// სერიული კომუნიკაციის ინიციალიზაცია, დაყენებული baud განაკვეთი = 9600

სერიული.დაწყება (9600);

// დაიწყეთ I2C გადაცემა

Wire.beginTransmission (Addr);

// აირჩიეთ საკონტროლო რეგისტრი

Wire.write (0x2A);

// Ლოდინის რეჟიმი

Wire.write (0x00);

// შეაჩერე I2C გადაცემა

Wire.endTransmission ();

// დაიწყეთ I2C გადაცემა

Wire.beginTransmission (Addr);

// აირჩიეთ საკონტროლო რეგისტრი

Wire.write (0x2A);

// აქტიური რეჟიმი

Wire.write (0x01);

// შეაჩერე I2C გადაცემა

Wire.endTransmission ();

// დაიწყეთ I2C გადაცემა

Wire.beginTransmission (Addr);

// აირჩიეთ საკონტროლო რეგისტრი

Wire.write (0x0E);

// დააყენეთ დიაპაზონი +/- 2 გ-ზე

Wire.write (0x00);

// შეაჩერე I2C გადაცემა

Wire.endTransmission ();

დაგვიანება (300);

}

ბათილი მარყუჟი ()

{

ხელმოუწერელი int მონაცემები [7];

// მოითხოვეთ მონაცემთა 7 ბაიტი

მავთული. მოთხოვნა (Addr, 7);

// წაიკითხეთ მონაცემების 7 ბაიტი

// სტაუსი, xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb

if (Wire. Available () == 7)

{

მონაცემები [0] = Wire.read ();

მონაცემები [1] = Wire.read ();

მონაცემები [2] = Wire.read ();

მონაცემები [3] = Wire.read ();

მონაცემები [4] = Wire.read ();

მონაცემები [5] = Wire.read ();

მონაცემები [6] = Wire.read ();

}

// გადააკეთეთ მონაცემები 12 ბიტიანი

int xAccl = ((მონაცემები [1] * 256) + მონაცემები [2]) / 16;

თუ (xAccl> 2047)

{

xAccl -= 4096;

}

int yAccl = ((მონაცემები [3] * 256) + მონაცემები [4]) / 16;

თუ (yAccl> 2047)

{

yAccl -= 4096;

}

int zAccl = ((მონაცემები [5] * 256) + მონაცემები [6]) / 16;

თუ (zAccl> 2047)

{

zAccl -= 4096;

}

// სერიული მონიტორის მონაცემების გამოტანა

Serial.print ("აჩქარება X- ღერძში:");

Serial.println (xAccl);

Serial.print ("აჩქარება Y- ღერძში:");

Serial.println (yAccl);

Serial.print ("აჩქარება Z- ღერძში:");

Serial.println (zAccl);

დაგვიანება (500);

}

ნაბიჯი 4: პროგრამები:

MMA8452Q– ს აქვს სხვადასხვა პროგრამა, რომელიც მოიცავს ელექტრონული კომპასის პროგრამებს, სტატიკური ორიენტაციის გამოვლენას, რომელიც მოიცავს პორტრეტს/ლანდშაფტს, ზემოთ/ქვემოთ, მარცხნივ/მარჯვნივ, უკანა/წინა პოზიციის იდენტიფიკაციას, ნოუთბუქს, ელექტრონულ მკითხველს და ლეპტოპს Tumble and Freefall Detection, რეალურ დროში ორიენტაციის გამოვლენა, მათ შორის ვირტუალური რეალობა და სათამაშო 3D მომხმარებლის პოზიციის გამოხმაურება, რეალურ დროში აქტივობის ანალიზი, როგორიცაა ფეტომეტრის საფეხურის დათვლა, მყარი დისკისთვის ვარდნის ვარდნის გამოვლენის გამოვლენა, მკვდარი ანგარიშის GPS სარეზერვო საშუალება და მრავალი სხვა.

გირჩევთ: