Πίνακας περιεχομένων:
- Βήμα 1: Απαιτείται υλικό:
- Βήμα 2: Σύνδεση υλικού:
- Βήμα 3: Κωδικός Arduino για τη μέτρηση της έντασης του μαγνητικού πεδίου:
- Βήμα 4: Εφαρμογές:
Βίντεο: Μέτρηση μαγνητικού πεδίου με χρήση HMC5883 και Arduino Nano: 4 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:32
Το HMC5883 είναι μια ψηφιακή πυξίδα σχεδιασμένη για μαγνητική ανίχνευση χαμηλού πεδίου. Αυτή η συσκευή έχει ευρύ φάσμα μαγνητικού πεδίου +/- 8 Oe και ρυθμό εξόδου 160 Hz. Ο αισθητήρας HMC5883 περιλαμβάνει αυτόματους οδηγούς απομάκρυνσης ιμάντων, ακύρωση offset και 12-bit ADC που επιτρέπει ακρίβεια επικεφαλίδας πυξίδας 1 ° έως 2 °. Όλα τα Mini Modules I²C έχουν σχεδιαστεί για να λειτουργούν σε 5VDC.
Σε αυτό το σεμινάριο, θα εξηγήσουμε τη λεπτομερή εργασία του HMC5883 με το Arduino nano.
Βήμα 1: Απαιτείται υλικό:
Τα υλικά που χρειαζόμαστε για την επίτευξη του στόχου μας περιλαμβάνουν τα ακόλουθα στοιχεία υλικού:
1. HMC5883
2. Arduino Nano
3. Καλώδιο I2C
4. I2C Shield For Arduino Nano
Βήμα 2: Σύνδεση υλικού:
Η ενότητα σύνδεσης υλικού εξηγεί βασικά τις συνδέσεις καλωδίωσης που απαιτούνται μεταξύ του αισθητήρα και του arduino nano. Η διασφάλιση των σωστών συνδέσεων είναι η βασική ανάγκη ενώ εργάζεστε σε οποιοδήποτε σύστημα για την επιθυμητή έξοδο. Έτσι, οι απαιτούμενες συνδέσεις είναι οι εξής:
Το HMC5883 θα λειτουργήσει μέσω I2C. Ακολουθεί το παράδειγμα διαγράμματος καλωδίωσης, που δείχνει πώς συνδέεται κάθε διασύνδεση του αισθητήρα.
Εκτός συσκευασίας, ο πίνακας έχει διαμορφωθεί για διεπαφή I2C, ως εκ τούτου συνιστούμε τη χρήση αυτής της σύνδεσης εάν είστε αλλιώς αγνωστικιστής. Το μόνο που χρειάζεστε είναι τέσσερα καλώδια!
Απαιτούνται μόνο τέσσερις συνδέσεις ακροδέκτες Vcc, Gnd, SCL και SDA και αυτές συνδέονται με τη βοήθεια καλωδίου I2C.
Αυτές οι συνδέσεις φαίνονται στις παραπάνω εικόνες.
Βήμα 3: Κωδικός Arduino για τη μέτρηση της έντασης του μαγνητικού πεδίου:
Ας ξεκινήσουμε με τον κώδικα Arduino τώρα.
Κατά τη χρήση της μονάδας αισθητήρα με το Arduino, συμπεριλαμβάνουμε τη βιβλιοθήκη Wire.h. Η βιβλιοθήκη "Wire" περιέχει τις λειτουργίες που διευκολύνουν την επικοινωνία i2c μεταξύ του αισθητήρα και της πλακέτας Arduino.
Ολόκληρος ο κωδικός Arduino δίνεται παρακάτω για τη διευκόλυνση του χρήστη:
#περιλαμβάνω
// Η διεύθυνση HMC5883 I2C είναι 0x1E (30)
#define Addr 0x1E
void setup ()
{
// Αρχικοποίηση επικοινωνίας I2C ως MASTER
Wire.begin ();
// Αρχικοποίηση Σειριακής Επικοινωνίας, ρυθμισμένος ρυθμός baud = 9600
Serial.begin (9600);
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Επιλέξτε διαμόρφωση καταχωρητή Α
Wire.write (0x00);
// Ορίστε κανονική διαμόρφωση μέτρησης, ρυθμός εξόδου δεδομένων = 0,75Hz
Wire.write (0x60);
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Επιλέξτε καταχώριση λειτουργίας
Wire.write (0x02);
// Ορίστε συνεχή μέτρηση
Wire.write (0x00);
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
καθυστέρηση (300)?
}
κενός βρόχος ()
{
ανυπόγραφα δεδομένα int [6];
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Επιλέξτε μητρώο δεδομένων
Wire.write (0x03);
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
// Ζητήστε 6 byte δεδομένων
Wire.requestFrom (Addr, 6)?
// Διαβάστε 6 byte δεδομένων
// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb
εάν (Wire.available () == 6)
{
δεδομένα [0] = Wire.read ();
δεδομένα [1] = Wire.read ();
δεδομένα [2] = Wire.read ();
δεδομένα [3] = Wire.read ();
δεδομένα [4] = Wire.read ();
δεδομένα [5] = Wire.read ();
}
καθυστέρηση (300)?
// Μετατρέψτε τα δεδομένα
int xMag = ((δεδομένα [0] * 256) + δεδομένα [1]);
int zMag = ((δεδομένα [2] * 256) + δεδομένα [3]);
int yMag = ((δεδομένα [4] * 256) + δεδομένα [5]);
// Έξοδος δεδομένων σε σειριακή οθόνη
Serial.print ("Μαγνητικό πεδίο στον άξονα Χ:");
Serial.println (xMag);
Serial.print ("Μαγνητικό πεδίο στον άξονα Υ:");
Serial.println (yMag);
Serial.print ("Μαγνητικό πεδίο στον άξονα Ζ:");
Serial.println (zMag);
καθυστέρηση (300)?
}
Στη βιβλιοθήκη σύρματος, το Wire.write () και το Wire.read () χρησιμοποιούνται για την εγγραφή των εντολών και την ανάγνωση της εξόδου του αισθητήρα. Το ακόλουθο μέρος του κώδικα απεικονίζει την ανάγνωση της εξόδου του αισθητήρα.
// Διαβάστε 6 byte δεδομένων // xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb if (Wire.available () == 6) {data [0] = Wire.read (); δεδομένα [1] = Wire.read (); δεδομένα [2] = Wire.read (); δεδομένα [3] = Wire.read (); δεδομένα [4] = Wire.read (); δεδομένα [5] = Wire.read (); }
Serial.print () και Serial.println () χρησιμοποιούνται για την εμφάνιση της εξόδου του αισθητήρα στη σειριακή οθόνη του Arduino IDE.
Η έξοδος του αισθητήρα εμφανίζεται στην παραπάνω εικόνα.
Βήμα 4: Εφαρμογές:
Το HMC5883 είναι μια μονάδα επιφανειακής τοποθέτησης, πολλαπλών τσιπ που έχει σχεδιαστεί για μαγνητική ανίχνευση χαμηλού πεδίου με ψηφιακή διεπαφή για εφαρμογές όπως πυξίδα χαμηλού κόστους και μαγνητομετρία. Η ακρίβεια και η ακρίβεια υψηλού επιπέδου ενός έως δύο βαθμών επιτρέπει την Πλοήγηση Πεζών και τις Εφαρμογές LBS.
Συνιστάται:
Μέτρηση μαγνητικού πεδίου με χρήση HMC5883 και Raspberry Pi: 4 βήματα
Μέτρηση μαγνητικού πεδίου με χρήση HMC5883 και Raspberry Pi: Το HMC5883 είναι μια ψηφιακή πυξίδα σχεδιασμένη για μαγνητική ανίχνευση χαμηλού πεδίου. Αυτή η συσκευή έχει ευρύ φάσμα μαγνητικού πεδίου +/- 8 Oe και ρυθμό εξόδου 160 Hz. Ο αισθητήρας HMC5883 περιλαμβάνει αυτόματους οδηγούς απομάκρυνσης ιμάντων, ακύρωση offset και
Μέτρηση μαγνητικού πεδίου χρησιμοποιώντας HMC5883 και σωματίδιο φωτονίου: 4 βήματα
Μέτρηση μαγνητικού πεδίου χρησιμοποιώντας το HMC5883 και το σωματίδιο φωτονίου: Το HMC5883 είναι μια ψηφιακή πυξίδα σχεδιασμένη για μαγνητική ανίχνευση χαμηλού πεδίου. Αυτή η συσκευή έχει ευρύ φάσμα μαγνητικού πεδίου +/- 8 Oe και ρυθμό εξόδου 160 Hz. Ο αισθητήρας HMC5883 περιλαμβάνει αυτόματους οδηγούς απομάκρυνσης ιμάντων, ακύρωση offset και
Μέτρηση υγρασίας και θερμοκρασίας με χρήση HIH6130 και Arduino Nano: 4 βήματα
Μέτρηση υγρασίας και θερμοκρασίας με χρήση HIH6130 και Arduino Nano: Το HIH6130 είναι αισθητήρας υγρασίας και θερμοκρασίας με ψηφιακή έξοδο. Αυτοί οι αισθητήρες παρέχουν επίπεδο ακρίβειας ± 4% RH. Με κορυφαία μακροπρόθεσμη σταθερότητα στη βιομηχανία, πραγματικό ψηφιακό I2C με αντιστάθμιση θερμοκρασίας, κορυφαία αξιοπιστία στη βιομηχανία, ενεργειακή απόδοση
Μέτρηση υγρασίας και θερμοκρασίας με χρήση HTS221 και Arduino Nano: 4 βήματα
Μέτρηση υγρασίας και θερμοκρασίας με χρήση HTS221 και Arduino Nano: Το HTS221 είναι ένας εξαιρετικά συμπαγής χωρητικός ψηφιακός αισθητήρας για σχετική υγρασία και θερμοκρασία. Περιλαμβάνει ένα στοιχείο ανίχνευσης και ένα ολοκληρωμένο κύκλωμα ειδικής εφαρμογής μικτού σήματος (ASIC) για την παροχή των πληροφοριών μέτρησης μέσω ψηφιακού σειριακού
Αισθητήρας μαγνητικού πεδίου 3 αξόνων: 10 βήματα (με εικόνες)
Αισθητήρας μαγνητικού πεδίου 3 αξόνων: Τα ασύρματα συστήματα μεταφοράς ισχύος βρίσκονται σε καλό δρόμο για να αντικαταστήσουν τη συμβατική ενσύρματη φόρτιση. Από μικροσκοπικά βιοϊατρικά εμφυτεύματα μέχρι ασύρματη φόρτιση τεράστιων ηλεκτρικών οχημάτων. Αναπόσπαστο μέρος της έρευνας για την ασύρματη τροφοδοσία είναι