
2025 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2025-01-23 14:50


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 სარეზერვო საშუალება და მრავალი სხვა.
გირჩევთ:
Raspberry Pi - BH1715 Digital Ambient Light Sensor Python Tutorial: 4 Steps

Raspberry Pi - BH1715 ციფრული გარემოს სინათლის სენსორი Python სამეურვეო პროგრამა: BH1715 არის ციფრული გარე განათების სენსორი I²C ავტობუსის ინტერფეისით. BH1715 ჩვეულებრივ გამოიყენება გარე განათების მონაცემების მოსაპოვებლად, მობილური მოწყობილობებისთვის LCD და კლავიატურის შუქნიშნის სიმძლავრის შესაცვლელად. ეს მოწყობილობა გთავაზობთ 16 ბიტიან გარჩევადობას და დამატებით
Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 Steps

Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: გამარჯობა ყველას, ეს ხდება ჩვენთვის. თქვენ ააშენებთ პროექტს, ენთუზიაზმით აკავშირებთ ყველა სენსორს და მოულოდნელად, Arduino ჩამოკიდება და არანაირი შეყვანა არ დამუშავდება. "რა ხდება?", თქვენ ჰკითხავთ და დაიწყებთ თქვენი კოდის გათხრას, მხოლოდ ხელახლა
Arduino Accelerometer Tutorial: გააკონტროლეთ გემის ხიდი სერვო ძრავის გამოყენებით: 5 ნაბიჯი

Arduino Accelerometer Tutorial: აკონტროლეთ გემის ხაზი სერვო ძრავის გამოყენებით: აქსელერომეტრის სენსორები არის ჩვენს სმარტფონების უმეტესობაში, რათა მათ გამოვიყენოთ მრავალფეროვანი გამოყენება და შესაძლებლობები, რომელსაც ჩვენ ყოველდღიურად ვიყენებთ, არც კი ვიცით, რომ ამაში პასუხისმგებელი არის ამაჩქარებელი. ერთ -ერთი ასეთი შესაძლებლობა არის კონტროლირებადი
Jetson Nano Quadruped Robot Object Detection Tutorial: 4 Steps

Jetson Nano Quadruped Robot Object Detection Tutorial: Nvidia Jetson Nano არის დეველოპერის ნაკრები, რომელიც შედგება SoM (System on Module) და საცნობარო გადამზიდავი დაფისგან. ის უპირველეს ყოვლისა მიზნად ისახავს ჩამონტაჟებული სისტემების შექმნას, რომლებიც საჭიროებენ მაღალ გადამამუშავებელ ძალას მანქანათმცოდნეობისთვის, მანქანათვალიერებისთვის და ვიდეო
Canon Digital Rebel Wired Remote for Shutter and Focus: 4 Steps

Canon Digital Rebel Wired Remote for Shutter and Focus: Hey! ეს არის Canon– ის სადენიანი პულტის კიდევ ერთი ვერსია. მე ვფიქრობ, რომ ის უფრო მოქნილია ვიდრე სხვა დიზაინები. ეს არის სასწავლებელი, საიდანაც მივიღე ჩემი შთაგონება. ეს ძირითადად გაძლევთ საშუალებას გადაიღოთ სურათები ამ დისტანციური საშუალებით, დუნდულის დაჭერის ნაცვლად