Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-13 06:57
Το MMA8452Q είναι ένα έξυπνο, χαμηλής ισχύος, τριών αξόνων, χωρητικό, μικρομηχανικό επιταχυνσιόμετρο με ανάλυση 12 bits. Παρέχονται ευέλικτες προγραμματιζόμενες επιλογές χρήστη με τη βοήθεια ενσωματωμένων λειτουργιών στο επιταχυνσιόμετρο, διαμορφώσιμες σε δύο ακίδες διακοπής. Διαθέτει πλήρεις κλίμακες που μπορούν να επιλέξουν οι χρήστες of 2g/± 4g/± 8g με φιλτραρισμένα δεδομένα φίλτρου υψηλής διέλευσης καθώς και μη φιλτραρισμένα δεδομένα διαθέσιμα σε πραγματικό χρόνο. Εδώ είναι η επίδειξή του με το Arduino nano.
Βήμα 1: Αυτό που χρειάζεστε..
1. Arduino Nano
2. MMA8452Q
3. Καλώδιο I²C
4. I²C Shield για Arduino Nano
Βήμα 2: Σύνδεση:
Πάρτε μια ασπίδα I2C για το Arduino Nano και σπρώξτε την απαλά πάνω από τις ακίδες του Nano.
Στη συνέχεια, συνδέστε το ένα άκρο του καλωδίου I2C στον αισθητήρα MMA8452Q και το άλλο άκρο στην ασπίδα I2C.
Οι συνδέσεις φαίνονται στην παραπάνω εικόνα.
Βήμα 3: Κωδικός:
Μπορείτε να κατεβάσετε τον κωδικό arduino για το MMMA8452Q από το αποθετήριο github μας- DCUBE Store.
Ορίστε ο σύνδεσμος.
Περιλαμβάνουμε τη βιβλιοθήκη Wire.h για τη διευκόλυνση της επικοινωνίας I2c του αισθητήρα με την πλακέτα Arduino.
Μπορείτε επίσης να αντιγράψετε τον κώδικα από εδώ, δίνεται ως εξής:
// Διανέμεται με άδεια ελεύθερης βούλησης.
// Χρησιμοποιήστε το με όποιον τρόπο θέλετε, κερδοφόρο ή δωρεάν, υπό την προϋπόθεση ότι ταιριάζει στις άδειες των σχετικών έργων του.
// MMA8452Q
// Αυτός ο κώδικας έχει σχεδιαστεί για να λειτουργεί με το Mini Module MMA8452Q_I2CS I2C.
#περιλαμβάνω
// Η διεύθυνση MMA8452Q I2C είναι 0x1C (28)
#define Addr 0x1C
void setup ()
{
// Αρχικοποίηση επικοινωνίας I2C ως MASTER
Wire.begin ();
// Αρχικοποίηση Σειριακής Επικοινωνίας, ρυθμισμένος ρυθμός baud = 9600
Serial.begin (9600);
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Επιλέξτε μητρώο ελέγχου
Wire.write (0x2A);
// Λειτουργία StandBy
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);
// Ορίστε το εύρος στο +/- 2g
Wire.write (0x00);
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
καθυστέρηση (300)?
}
κενός βρόχος ()
{
ανυπόγραφα δεδομένα int [7];
// Ζητήστε 7 byte δεδομένων
Wire.requestFrom (Addr, 7)?
// Διαβάστε 7 byte δεδομένων
// staus, xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb
εάν (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-bit
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 ("Επιτάχυνση στον άξονα Χ:");
Serial.println (xAccl);
Serial.print ("Επιτάχυνση στον άξονα Υ:");
Serial.println (yAccl);
Serial.print ("Επιτάχυνση στον άξονα Z:");
Serial.println (zAccl);
καθυστέρηση (500)?
}
Βήμα 4: Εφαρμογές:
Το MMA8452Q διαθέτει διάφορες εφαρμογές που περιλαμβάνουν εφαρμογές E-Compass, ανίχνευση στατικού προσανατολισμού που ενσωματώνουν πορτρέτο/τοπίο, πάνω/κάτω, αριστερά/δεξιά, αναγνώριση θέσης πίσω/εμπρός, σημειωματάριο, e-reader και ανίχνευση ανατροπής και ελεύθερης πτώσης φορητού υπολογιστή, σε πραγματικό χρόνο ανίχνευση προσανατολισμού, συμπεριλαμβανομένης της εικονικής πραγματικότητας και του παιχνιδιού 3D ανατροφοδότηση θέσης χρήστη, ανάλυση δραστηριότητας σε πραγματικό χρόνο, όπως καταμέτρηση βημάτων βηματόμετρου, ανίχνευση πτώσης ελεύθερης πτώσης για σκληρό δίσκο, δημιουργία αντιγράφων ασφαλείας GPS νεκρού λογαριασμού και πολλά άλλα.