Πίνακας περιεχομένων:

Μέτρηση της επιτάχυνσης με χρήση H3LIS331DL και Arduino Nano: 4 βήματα
Μέτρηση της επιτάχυνσης με χρήση H3LIS331DL και Arduino Nano: 4 βήματα

Βίντεο: Μέτρηση της επιτάχυνσης με χρήση H3LIS331DL και Arduino Nano: 4 βήματα

Βίντεο: Μέτρηση της επιτάχυνσης με χρήση H3LIS331DL και Arduino Nano: 4 βήματα
Βίντεο: Ένα πείραμα με απλά μέσα για τη μέτρηση της επιτάχυνσης. 2024, Ιούλιος
Anonim
Image
Image

Το H3LIS331DL, είναι ένα γραμμικό επιταχυνσιόμετρο 3 αξόνων χαμηλής ισχύος υψηλής απόδοσης που ανήκει στην οικογένεια «νανο», με ψηφιακή σειριακή διεπαφή I²C. Το H3LIS331DL διαθέτει πλήρεις κλίμακες επιλογής από user 100g/± 200g/± 400g και είναι σε θέση να μετρήσει επιταχύνσεις με ρυθμούς δεδομένων εξόδου από 0,5 Hz έως 1 kHz. Το H3LIS331DL είναι εγγυημένο ότι λειτουργεί σε εκτεταμένο εύρος θερμοκρασιών από -40 ° C έως +85 ° C.

Σε αυτό το σεμινάριο θα παρουσιάσουμε τη διασύνδεση του H3LIS331DL με το Arduino Nano.

Βήμα 1: Απαιτείται υλικό:

Απαιτούμενο υλικό
Απαιτούμενο υλικό
Απαιτούμενο υλικό
Απαιτούμενο υλικό
Απαιτούμενο υλικό
Απαιτούμενο υλικό

Τα υλικά που χρειαζόμαστε για την επίτευξη του στόχου μας περιλαμβάνουν τα ακόλουθα στοιχεία υλικού:

1. H3LIS331DL

2. Arduino Nano

3. Καλώδιο I2C

4. I2C Shield για Arduino Nano

Βήμα 2: Σύνδεση υλικού:

Σύνδεση υλικού
Σύνδεση υλικού
Σύνδεση υλικού
Σύνδεση υλικού

Η ενότητα σύνδεσης υλικού εξηγεί βασικά τις συνδέσεις καλωδίωσης που απαιτούνται μεταξύ του αισθητήρα και του arduino nano. Η διασφάλιση των σωστών συνδέσεων είναι η βασική ανάγκη ενώ εργάζεστε σε οποιοδήποτε σύστημα για την επιθυμητή έξοδο. Έτσι, οι απαιτούμενες συνδέσεις είναι οι εξής:

Το H3LIS331DL θα λειτουργήσει μέσω I2C. Ακολουθεί το παράδειγμα διαγράμματος καλωδίωσης, που δείχνει πώς συνδέεται κάθε διασύνδεση του αισθητήρα.

Εκτός συσκευασίας, ο πίνακας έχει διαμορφωθεί για διεπαφή I2C, ως εκ τούτου συνιστούμε τη χρήση αυτής της σύνδεσης εάν είστε αλλιώς αγνωστικιστής. Το μόνο που χρειάζεστε είναι τέσσερα καλώδια!

Απαιτούνται μόνο τέσσερις συνδέσεις ακροδέκτες Vcc, Gnd, SCL και SDA και αυτές συνδέονται με τη βοήθεια καλωδίου I2C.

Αυτές οι συνδέσεις φαίνονται στις παραπάνω εικόνες.

Βήμα 3: Κωδικός Arduino για μέτρηση επιτάχυνσης:

Κωδικός Arduino για μέτρηση επιτάχυνσης
Κωδικός Arduino για μέτρηση επιτάχυνσης
Κωδικός Arduino για μέτρηση επιτάχυνσης
Κωδικός Arduino για μέτρηση επιτάχυνσης

Ας ξεκινήσουμε με τον κώδικα arduino τώρα.

Κατά τη χρήση της μονάδας αισθητήρα με το arduino, συμπεριλαμβάνουμε τη βιβλιοθήκη Wire.h. Η βιβλιοθήκη "Wire" περιέχει τις λειτουργίες που διευκολύνουν την επικοινωνία i2c μεταξύ του αισθητήρα και της πλακέτας arduino.

Ολόκληρος ο κώδικας arduino δίνεται παρακάτω για τη διευκόλυνση του χρήστη:

#περιλαμβάνω

// Η διεύθυνση H3LIS331DL I2C είναι 0x18 (24)

#define Addr 0x18

void setup ()

{

// Αρχικοποίηση επικοινωνίας I2C ως MASTER

Wire.begin ();

// Αρχικοποίηση Σειριακής Επικοινωνίας, ρυθμισμένος ρυθμός baud = 9600

Serial.begin (9600);

// Έναρξη μετάδοσης I2C

Wire.beginTransmission (Addr);

// Επιλέξτε μητρώο ελέγχου 1

Wire.write (0x20);

// Ενεργοποίηση άξονα X, Y, Z, λειτουργία ενεργοποίησης, ρυθμός εξόδου δεδομένων 50Hz

Wire.write (0x27);

// Διακοπή μετάδοσης I2C

Wire.endTransmission ();

// Έναρξη μετάδοσης I2C

Wire.beginTransmission (Addr);

// Επιλέξτε καταχωρητή ελέγχου 4

Wire.write (0x23);

// Ορισμός πλήρους κλίμακας, +/- 100g, συνεχής ενημέρωση

Wire.write (0x00);

// Διακοπή μετάδοσης I2C

Wire.endTransmission ();

καθυστέρηση (300)?

}

κενός βρόχος ()

{

ανυπόγραφα δεδομένα int [6];

για (int i = 0; i <6; i ++)

{

// Έναρξη μετάδοσης I2C

Wire.beginTransmission (Addr);

// Επιλέξτε μητρώο δεδομένων

Wire.write ((40+i));

// Διακοπή μετάδοσης I2C

Wire.endTransmission ();

// Αίτημα 1 byte δεδομένων

Wire.requestFrom (Addr, 1)?

// Διαβάστε 6 byte δεδομένων

// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb

εάν (Wire.available () == 1)

{

δεδομένα = Wire.read ();

}

}

καθυστέρηση (300)?

// Μετατρέψτε τα δεδομένα

int xAccl = ((δεδομένα [1] * 256) + δεδομένα [0]);

int yAccl = ((δεδομένα [3] * 256) + δεδομένα [2]);

int zAccl = ((δεδομένα [5] * 256) + δεδομένα [4]);

// Έξοδος δεδομένων σε σειριακή οθόνη

Serial.print ("Επιτάχυνση στον άξονα Χ:");

Serial.println (xAccl);

Serial.print ("Επιτάχυνση στον άξονα Υ:");

Serial.println (yAccl);

Serial.print ("Επιτάχυνση στον άξονα Z:");

Serial.println (zAccl);

καθυστέρηση (300)?

}

Το μόνο που χρειάζεται να κάνετε είναι να γράψετε τον κώδικα στο arduino και να ελέγξετε τις ενδείξεις σας στη σειριακή θύρα. Η έξοδος εμφανίζεται στην παραπάνω εικόνα.

Βήμα 4: Εφαρμογές:

Εφαρμογές
Εφαρμογές

Τα επιταχυνσιόμετρα όπως το H3LIS331DL βρίσκουν ως επί το πλείστον την εφαρμογή του στα παιχνίδια και την αλλαγή προφίλ οθόνης. Αυτή η μονάδα αισθητήρα χρησιμοποιείται επίσης στο προηγμένο σύστημα διαχείρισης ενέργειας για κινητές εφαρμογές. Το H3LIS331DL είναι ένας τριαξονικός ψηφιακός αισθητήρας επιτάχυνσης ο οποίος ενσωματώνεται με έναν έξυπνο ελεγκτή διακοπής ενεργοποίησης κίνησης στο τσιπ.

Συνιστάται: