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

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

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

Βίντεο: Μέτρηση της επιτάχυνσης με χρήση H3LIS331DL και σωματιδίου φωτονίου: 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 με σωματίδιο φωτονίου.

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

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

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

1. H3LIS331DL

2. Φωτόνιο σωματιδίων

3. Καλώδιο I2C

4. Ασπίδα I2C για σωματίδιο φωτονίου

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#define Addr 0x18

int xAccl = 0, yAccl = 0, zAccl = 0;

void setup ()

{

// Ορισμός μεταβλητής

Particle.variable ("i2cdevice", "H3LIS331DL");

Particle.variable ("xAccl", xAccl);

Particle.variable ("yAccl", yAccl);

Particle.variable ("zAccl", zAccl);

// Αρχικοποίηση επικοινωνίας 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]);

εάν (xAccl> 32767)

{

xAccl -= 65536;

}

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

εάν (yAccl> 32767)

{

yAccl -= 65536;

}

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

εάν (zAccl> 32767)

{

zAccl -= 65536;

}

// Έξοδος δεδομένων στον πίνακα ελέγχου

Particle.publish ("Acceleration in X-Axis is:", String (xAccl));

Particle.publish ("Acceleration in Y-Axis is:", String (yAccl));

Particle.publish ("Acceleration in Z-Axis is:", String (zAccl));

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

}

Η συνάρτηση Particle.variable () δημιουργεί τις μεταβλητές για αποθήκευση της εξόδου του αισθητήρα και η λειτουργία Particle.publish () εμφανίζει την έξοδο στον πίνακα ελέγχου της τοποθεσίας.

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

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

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

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

Συνιστάται: