![Arduino Nano - MPL3115A2 Precision Altimeter Sensor Tutorial: 4 Steps Arduino Nano - MPL3115A2 Precision Altimeter Sensor Tutorial: 4 Steps](https://i.howwhatproduce.com/images/002/image-3723-13-j.webp)
Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-23 14:39
![Image Image](https://i.howwhatproduce.com/images/002/image-3723-15-j.webp)
![](https://i.ytimg.com/vi/1SQNlzMTexM/hqdefault.jpg)
Το MPL3115A2 χρησιμοποιεί έναν αισθητήρα πίεσης MEMS με διεπαφή I2C για να παρέχει ακριβή δεδομένα πίεσης/υψομέτρου και θερμοκρασίας. Οι έξοδοι του αισθητήρα ψηφιοποιούνται με ADC υψηλής ανάλυσης 24-bit. Η εσωτερική επεξεργασία αφαιρεί εργασίες αντιστάθμισης από το κεντρικό σύστημα MCU. Είναι ικανό να ανιχνεύσει μια μεταβολή μόνο σε 0,05 kPa που ισοδυναμεί με μια αλλαγή ύψους 0,3 m. Εδώ είναι η επίδειξή του με τον Arduino Nano.
Βήμα 1: Αυτό που χρειάζεστε..
![Ο, τι χρειάζεσαι..!! Ο, τι χρειάζεσαι..!!](https://i.howwhatproduce.com/images/002/image-3723-16-j.webp)
1. Arduino Nano
2. MPL3115A2
3. Καλώδιο I²C
4. I²C Shield για Arduino Nano
Βήμα 2: Συνδέσεις:
![Συνδέσεις Συνδέσεις](https://i.howwhatproduce.com/images/002/image-3723-17-j.webp)
![Συνδέσεις Συνδέσεις](https://i.howwhatproduce.com/images/002/image-3723-18-j.webp)
![Συνδέσεις Συνδέσεις](https://i.howwhatproduce.com/images/002/image-3723-19-j.webp)
![Συνδέσεις Συνδέσεις](https://i.howwhatproduce.com/images/002/image-3723-20-j.webp)
Πάρτε μια ασπίδα I2C για το Arduino Nano και σπρώξτε την απαλά πάνω από τις ακίδες του Nano.
Στη συνέχεια, συνδέστε το ένα άκρο του καλωδίου I2C στον αισθητήρα MPL3115A2 και το άλλο άκρο στην ασπίδα I2C.
Οι συνδέσεις φαίνονται στην παραπάνω εικόνα.
Βήμα 3: Κωδικός:
![Κώδικας Κώδικας](https://i.howwhatproduce.com/images/002/image-3723-21-j.webp)
Μπορείτε να κατεβάσετε τον κώδικα arduino για MPL3115A2 από το αποθετήριο github-DCUBE Store.
Εδώ είναι ο σύνδεσμος για το ίδιο:
github.com/DcubeTechVentures/MPL3115A2/blob/master/Arduino/MPL3115A2.ino
Περιλαμβάνουμε τη βιβλιοθήκη Wire.h για τη διευκόλυνση της επικοινωνίας I2c του αισθητήρα με την πλακέτα Arduino.
Μπορείτε επίσης να αντιγράψετε τον κώδικα από εδώ, δίνεται ως εξής:
// Διανέμεται με άδεια ελεύθερης βούλησης.
// Χρησιμοποιήστε το με όποιον τρόπο θέλετε, κερδοφόρο ή δωρεάν, υπό την προϋπόθεση ότι ταιριάζει στις άδειες των σχετικών έργων του.
// MPL3115A2
// Αυτός ο κώδικας έχει σχεδιαστεί για να λειτουργεί με το Mini Module MPL3115A2_I2CS I2C
#περιλαμβάνω
// Η διεύθυνση MPL3115A2 I2C είναι 0x60 (96)
#define Addr 0x60
void setup ()
{
// Αρχικοποίηση επικοινωνίας I2C
Wire.begin ();
// Αρχικοποίηση Σειριακής Επικοινωνίας, ρυθμισμένος ρυθμός baud = 9600
Serial.begin (9600);
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Επιλέξτε μητρώο ελέγχου
Wire.write (0x26);
// Ενεργή λειτουργία, OSR = 128, λειτουργία υψομέτρου
Wire.write (0xB9);
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Επιλέξτε μητρώο διαμόρφωσης δεδομένων
Wire.write (0x13);
// Το συμβάν ετοιμότητας δεδομένων ενεργοποιήθηκε για υψόμετρο, πίεση, θερμοκρασία
Wire.write (0x07);
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
καθυστέρηση (300)?
}
κενός βρόχος ()
{
ανυπόγραφα δεδομένα int [6];
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Επιλέξτε μητρώο ελέγχου
Wire.write (0x26);
// Ενεργή λειτουργία, OSR = 128, λειτουργία υψομέτρου
Wire.write (0xB9);
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
καθυστέρηση (1000)?
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Επιλέξτε μητρώο δεδομένων
Wire.write (0x00);
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
// Ζητήστε 6 byte δεδομένων
Wire.requestFrom (Addr, 6)?
// Διαβάστε 6 byte δεδομένων από τη διεύθυνση 0x00 (00)
// κατάσταση, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
εάν (Wire.available () == 6)
{
δεδομένα [0] = Wire.read ();
δεδομένα [1] = Wire.read ();
δεδομένα [2] = Wire.read ();
δεδομένα [3] = Wire.read ();
δεδομένα [4] = Wire.read ();
δεδομένα [5] = Wire.read ();
}
// Μετατρέψτε τα δεδομένα σε 20-bit
int tHeight = (((μακρύ) (δεδομένα [1] * (μακρύ) 65536) + (δεδομένα [2] * 256) + (δεδομένα [3] & 0xF0)) / 16);
int temp = ((δεδομένα [4] * 256) + (δεδομένα [5] & 0xF0)) / 16;
υψόμετρο επίπλευσης = tHeight / 16.0;
float cTemp = (temp / 16.0);
float fTemp = cTemp * 1.8 + 32;
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Επιλέξτε μητρώο ελέγχου
Wire.write (0x26);
// Ενεργή λειτουργία, OSR = 128, λειτουργία βαρόμετρου
Wire.write (0x39);
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
καθυστέρηση (1000)?
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Επιλέξτε μητρώο δεδομένων
Wire.write (0x00);
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
// Ζητήστε 4 byte δεδομένων
Wire.requestFrom (Addr, 4)?
// Διαβάστε 4 byte δεδομένων
// κατάσταση, pres msb1, pres msb, pres lsb
εάν (Wire.available () == 4)
{
δεδομένα [0] = Wire.read ();
δεδομένα [1] = Wire.read ();
δεδομένα [2] = Wire.read ();
δεδομένα [3] = Wire.read ();
}
// Μετατρέψτε τα δεδομένα σε 20-bit
long pres = (((long) δεδομένα [1] * (long) 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16;
πίεση επίπλευσης = (pres / 4.0) / 1000.0;
// Έξοδος δεδομένων σε σειριακή οθόνη
Serial.print ("Υψόμετρο:");
Serial.print (υψόμετρο);
Serial.println ("m");
Serial.print ("Πίεση:");
Serial.print (πίεση);
Serial.println ("kPa");
Serial.print ("Θερμοκρασία σε Κελσίου:");
Serial.print (cTemp);
Serial.println ("C");
Serial.print ("Θερμοκρασία σε Φαρενάιτ:");
Serial.print (fTemp);
Serial.println ("F");
καθυστέρηση (500)?
}
Βήμα 4: Εφαρμογές:
Διάφορες εφαρμογές του MPL3115A2 περιλαμβάνουν υψομετρία υψηλής ακρίβειας, Smartphones/Tablets, Personal Electronics Altimetry κ.λπ. Μπορεί επίσης να ενσωματωθεί σε GPS Dead Reckoning, GPS Enhancement for Emergency Services, Map Assist, Navigation καθώς και Εξοπλισμός Μετεωρολογικού Σταθμού.
Συνιστάται:
Arduino Nano - TSL45315 Ambient Light Sensor Tutorial: 4 Βήματα
![Arduino Nano - TSL45315 Ambient Light Sensor Tutorial: 4 Βήματα Arduino Nano - TSL45315 Ambient Light Sensor Tutorial: 4 Βήματα](https://i.howwhatproduce.com/images/001/image-610-10-j.webp)
Arduino Nano - TSL45315 Ambient Light Sensor Tutorial: Το TSL45315 είναι ένας ψηφιακός αισθητήρας φωτισμού περιβάλλοντος. Προσαρμόζει την ανταπόκριση των ανθρώπινων ματιών υπό ποικίλες συνθήκες φωτισμού. Οι συσκευές έχουν τρεις επιλεγόμενους χρόνους ενσωμάτωσης και παρέχουν άμεση έξοδο lux 16-bit μέσω διεπαφής διαύλου I2C. Η συσκευή συνεργάζεται
Arduino Nano - TCN75A Temperature Sensor Tutorial: 4 Βήματα
![Arduino Nano - TCN75A Temperature Sensor Tutorial: 4 Βήματα Arduino Nano - TCN75A Temperature Sensor Tutorial: 4 Βήματα](https://i.howwhatproduce.com/images/010/image-27340-j.webp)
Arduino Nano-TCN75A Temperature Sensor Tutorial: Το TCN75A είναι ένας σειριακός αισθητήρας θερμοκρασίας δύο συρμάτων ενσωματωμένος με μετατροπέα θερμοκρασίας σε ψηφιακό. Ενσωματώνεται με προγραμματιζόμενους καταχωρητές χρηστών που παρέχουν ευελιξία σε εφαρμογές ανίχνευσης θερμοκρασίας. Οι ρυθμίσεις εγγραφής επιτρέπουν στους χρήστες
Arduino Nano - STS21 Temperature Sensor Tutorial: 4 Βήματα
![Arduino Nano - STS21 Temperature Sensor Tutorial: 4 Βήματα Arduino Nano - STS21 Temperature Sensor Tutorial: 4 Βήματα](https://i.howwhatproduce.com/images/010/image-27341-j.webp)
Arduino Nano - STS21 Temperature Sensor Tutorial: Ο ψηφιακός αισθητήρας θερμοκρασίας STS21 προσφέρει κορυφαία απόδοση και εξοικονόμηση χώρου. Παρέχει βαθμονομημένα, γραμμικά σήματα σε ψηφιακή μορφή I2C. Η κατασκευή αυτού του αισθητήρα βασίζεται στην τεχνολογία CMOSens, η οποία αποδίδει στην ανώτερη
Raspberry Pi A1332 Precision Hall - Effect Angle Sensor Java Tutorial: 4 Βήματα
![Raspberry Pi A1332 Precision Hall - Effect Angle Sensor Java Tutorial: 4 Βήματα Raspberry Pi A1332 Precision Hall - Effect Angle Sensor Java Tutorial: 4 Βήματα](https://i.howwhatproduce.com/images/002/image-3072-60-j.webp)
Raspberry Pi A1332 Precision Hall - Effect Angle Sensor Java Tutorial: Το A1332 είναι ένας 360 ° χωρίς επαφή προγραμματιζόμενος αισθητήρας θέσης μαγνητικής γωνίας υψηλής ανάλυσης. Έχει σχεδιαστεί για ψηφιακά συστήματα που χρησιμοποιούν διεπαφή I2C. Είναι βασισμένο στην τεχνολογία Circular Vertical Hall (CVH) και ένα προγραμματιζόμενο σήμα βασισμένο σε μικροεπεξεργαστή
Arduino Altimeter Using BMP and SPI or I2C OLED: 5 Steps
![Arduino Altimeter Using BMP and SPI or I2C OLED: 5 Steps Arduino Altimeter Using BMP and SPI or I2C OLED: 5 Steps](https://i.howwhatproduce.com/images/003/image-8379-18-j.webp)
Arduino Altimeter Using BMP and SPI or I2C OLED: Εδώ και πολύ καιρό ψάχνω για υψόμετρο και θερμοκρασία χρησιμοποιώντας έναν μόνο αισθητήρα και το εμφανίζω σε SPI OLED. Καθώς δεν μπορούσα να βρω κάτι ακριβές, σκέφτηκα ότι θα φτιάξω τη δική μου χρησιμοποιώντας τη βιβλιοθήκη U8glib. Υπάρχει ένα σεμινάριο στο youtub