Πίνακας περιεχομένων:
- Βήμα 1: Απαιτείται υλικό:
- Βήμα 2: Σύνδεση υλικού:
- Βήμα 3: Κωδικός Arduino για μέτρηση επιτάχυνσης:
- Βήμα 4: Εφαρμογές:
Βίντεο: Μέτρηση επιτάχυνσης χρησιμοποιώντας BMA250 και Arduino Nano: 4 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Το BMA250 είναι ένα μικρό, λεπτό, επιταχυνσιόμετρο εξαιρετικά χαμηλής ισχύος, 3 αξόνων με μέτρηση υψηλής ανάλυσης (13-bit) έως και ± 16 g. Τα ψηφιακά δεδομένα εξόδου διαμορφώνονται ως συμπλήρωμα δύο δυαδικών 16 bit και είναι προσβάσιμα μέσω της ψηφιακής διεπαφής I2C. Μετρά τη στατική επιτάχυνση της βαρύτητας σε εφαρμογές ανίχνευσης κλίσης, καθώς και τη δυναμική επιτάχυνση που προκύπτει από κίνηση ή κρούση. Η υψηλή του ανάλυση (3,9 mg/LSB) επιτρέπει τη μέτρηση των αλλαγών κλίσης μικρότερη από 1,0 °.
Σε αυτό το σεμινάριο θα μετρήσουμε την επιτάχυνση και στους τρεις κάθετους άξονες χρησιμοποιώντας BMA250 και Arduino Nano.
Βήμα 1: Απαιτείται υλικό:
Τα υλικά που χρειαζόμαστε για την επίτευξη του στόχου μας περιλαμβάνουν τα ακόλουθα στοιχεία υλικού:
1. BMA250
2. Arduino Nano
3. Καλώδιο I2C
4. I2C Shield For Arduino Nano
Βήμα 2: Σύνδεση υλικού:
Η ενότητα σύνδεσης υλικού εξηγεί βασικά τις συνδέσεις καλωδίωσης που απαιτούνται μεταξύ του αισθητήρα και του arduino. Η διασφάλιση των σωστών συνδέσεων είναι η βασική ανάγκη ενώ εργάζεστε σε οποιοδήποτε σύστημα για την επιθυμητή έξοδο. Έτσι, οι απαιτούμενες συνδέσεις είναι οι εξής:
Το BMA250 θα λειτουργεί πάνω από I2C. Ακολουθεί το παράδειγμα διαγράμματος καλωδίωσης, που δείχνει πώς συνδέεται κάθε διασύνδεση του αισθητήρα.
Εκτός συσκευασίας, ο πίνακας έχει διαμορφωθεί για διεπαφή I2C, ως εκ τούτου συνιστούμε τη χρήση αυτής της σύνδεσης εάν είστε αλλιώς αγνωστικιστής. Το μόνο που χρειάζεστε είναι τέσσερα καλώδια!
Απαιτούνται μόνο τέσσερις συνδέσεις ακροδέκτες Vcc, Gnd, SCL και SDA και αυτές συνδέονται με τη βοήθεια καλωδίου I2C.
Αυτές οι συνδέσεις φαίνονται στις παραπάνω εικόνες.
Βήμα 3: Κωδικός Arduino για μέτρηση επιτάχυνσης:
Ας ξεκινήσουμε με τον κώδικα Arduino τώρα.
Κατά τη χρήση της μονάδας αισθητήρα με το Arduino, συμπεριλαμβάνουμε τη βιβλιοθήκη Wire.h. Η βιβλιοθήκη "Wire" περιέχει τις λειτουργίες που διευκολύνουν την επικοινωνία i2c μεταξύ του αισθητήρα και της πλακέτας Arduino.
Ολόκληρος ο κωδικός Arduino δίνεται παρακάτω για τη διευκόλυνση του χρήστη:
#περιλαμβάνω
// Η διεύθυνση BMA250 I2C είναι 0x18 (24)
#define Addr 0x18
void setup ()
{
// Αρχικοποίηση επικοινωνίας I2C ως MASTER
Wire.begin ();
// Αρχικοποίηση Σειριακής Επικοινωνίας, ρυθμισμένος ρυθμός baud = 9600
Serial.begin (9600);
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Επιλογή καταχωρητή επιλογής εύρους
Wire.write (0x0F);
// Ορίστε εύρος +/- 2g
Wire.write (0x03);
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Επιλογή καταχωρητή εύρους ζώνης
Wire.write (0x10);
// Ορίστε εύρος ζώνης 7,81 Hz
Wire.write (0x08);
// Διακοπή μετάδοσης I2C
Wire.endTransmission (); καθυστέρηση (300);}
κενός βρόχος ()
{
μη υπογεγραμμένα δεδομένα int [0];
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Επιλογή καταχωρητών δεδομένων (0x02 - 0x07)
Wire.write (0x02);
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
// Αίτημα 6 byte
Wire.requestFrom (Addr, 6)?
// Διαβάστε τα έξι byte
// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb
εάν (Wire.available () == 6)
{
δεδομένα [0] = Wire.read ();
δεδομένα [1] = Wire.read ();
δεδομένα [2] = Wire.read ();
δεδομένα [3] = Wire.read ();
δεδομένα [4] = Wire.read ();
δεδομένα [5] = Wire.read ();
}
καθυστέρηση (300)?
// Μετατρέψτε τα δεδομένα σε 10 bit
float xAccl = ((δεδομένα [1] * 256.0) + (δεδομένα [0] & 0xC0)) / 64;
εάν (xAccl> 511)
{
xAccl -= 1024;
}
float yAccl = ((δεδομένα [3] * 256.0) + (δεδομένα [2] & 0xC0)) / 64;
εάν (yAccl> 511)
{
yAccl -= 1024;
}
float zAccl = ((δεδομένα [5] * 256.0) + (δεδομένα [4] & 0xC0)) / 64;
εάν (zAccl> 511)
{
zAccl -= 1024;
}
// Έξοδος δεδομένων στη σειριακή οθόνη
Serial.print ("Επιτάχυνση στον άξονα Χ:");
Serial.println (xAccl);
Serial.print ("Επιτάχυνση στον άξονα Υ:");
Serial.println (yAccl);
Serial.print ("Επιτάχυνση στον άξονα Z:");
Serial.println (zAccl);
}
Στη βιβλιοθήκη σύρματος, το Wire.write () και το Wire.read () χρησιμοποιούνται για την εγγραφή των εντολών και την ανάγνωση της εξόδου του αισθητήρα. Serial.print () και Serial.println () χρησιμοποιούνται για την εμφάνιση της εξόδου του αισθητήρα στη σειριακή οθόνη του Arduino IDE.
Η έξοδος του αισθητήρα εμφανίζεται στην παραπάνω εικόνα.
Βήμα 4: Εφαρμογές:
Τα επιταχυνσιόμετρα όπως το BMA250 βρίσκουν ως επί το πλείστον την εφαρμογή του στα παιχνίδια και την αλλαγή προφίλ οθόνης. Αυτή η μονάδα αισθητήρα χρησιμοποιείται επίσης στο προηγμένο σύστημα διαχείρισης ενέργειας για κινητές εφαρμογές. Το BMA250 είναι ένας τριαξονικός ψηφιακός αισθητήρας επιτάχυνσης ο οποίος ενσωματώνεται με έναν έξυπνο ελεγκτή διακοπής ενεργοποίησης κίνησης στο τσιπ.
Συνιστάται:
Μέτρηση της επιτάχυνσης χρησιμοποιώντας ADXL345 και σωματίδιο φωτονίου: 4 βήματα
Μέτρηση της επιτάχυνσης χρησιμοποιώντας το ADXL345 και το σωματίδιο φωτονίου: Το ADXL345 είναι ένα μικρό, λεπτό, επιταχυνσιόμετρο 3 αξόνων, εξαιρετικά χαμηλής ισχύος, με υψηλή ανάλυση (13 bit) έως και ± 16 g. Τα ψηφιακά δεδομένα εξόδου διαμορφώνονται ως συμπλήρωμα δύο δυαδικών ψηφίων 16 και είναι προσβάσιμα μέσω της ψηφιακής διεπαφής I2 C. Μετρά τα
Μέτρηση της επιτάχυνσης χρησιμοποιώντας ADXL345 και Raspberry Pi: 4 βήματα
Μέτρηση της επιτάχυνσης με χρήση ADXL345 και Raspberry Pi: Το ADXL345 είναι ένα μικρό, λεπτό επιταχυνσιόμετρο 3 αξόνων, εξαιρετικά χαμηλής ισχύος, με υψηλή ανάλυση (13 bit) έως και ± 16 g. Τα ψηφιακά δεδομένα εξόδου διαμορφώνονται ως συμπλήρωμα δύο δυαδικών ψηφίων 16 και είναι προσβάσιμα μέσω της ψηφιακής διεπαφής I2 C. Μετρά τα
Μέτρηση της επιτάχυνσης χρησιμοποιώντας ADXL345 και Arduino Nano: 4 βήματα
Μέτρηση της επιτάχυνσης με χρήση ADXL345 και Arduino Nano: Το ADXL345 είναι ένα μικρό, λεπτό, επιταχυνσιόμετρο 3 αξόνων, εξαιρετικά χαμηλής ισχύος, με υψηλή ανάλυση (13-bit) έως και ± 16 g. Τα ψηφιακά δεδομένα εξόδου διαμορφώνονται ως συμπλήρωμα δύο δυαδικών ψηφίων 16 και είναι προσβάσιμα μέσω της ψηφιακής διεπαφής I2 C. Μετρά τα
Μέτρηση επιτάχυνσης χρησιμοποιώντας BMA250 και Raspberry Pi: 4 βήματα
Μέτρηση επιτάχυνσης χρησιμοποιώντας BMA250 και Raspberry Pi: Το BMA250 είναι ένα μικρό, λεπτό, επιταχυνσιόμετρο 3 αξόνων, εξαιρετικά χαμηλής ισχύος, με υψηλή ανάλυση (13-bit) έως και ± 16 g. Τα ψηφιακά δεδομένα εξόδου διαμορφώνονται ως συμπλήρωμα δύο δυαδικών 16 bit και είναι προσβάσιμα μέσω της ψηφιακής διεπαφής I2C. Μετρά τη στατική
Μέτρηση επιτάχυνσης χρησιμοποιώντας BMA250 και σωματίδιο φωτονίου: 4 βήματα
Μέτρηση επιτάχυνσης με χρήση BMA250 και σωματιδίου φωτονίου: Το BMA250 είναι ένα μικρό, λεπτό, επιταχυνσιόμετρο 3 αξόνων, εξαιρετικά χαμηλής ισχύος, με υψηλή ανάλυση (13-bit) έως και 16 g. Τα ψηφιακά δεδομένα εξόδου διαμορφώνονται ως συμπλήρωμα δύο δυαδικών 16 bit και είναι προσβάσιμα μέσω της ψηφιακής διεπαφής I2C. Μετρά τη στατική