Πώς να συνδέσετε την ψηφιακή πυξίδα HMC5883 με το Arduino

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

Πώς να συνδέσετε την ψηφιακή πυξίδα HMC5883 με το Arduino
Πώς να συνδέσετε την ψηφιακή πυξίδα HMC5883 με το Arduino

Βίντεο: Πώς να συνδέσετε την ψηφιακή πυξίδα HMC5883 με το Arduino

Βίντεο: Πώς να συνδέσετε την ψηφιακή πυξίδα HMC5883 με το Arduino
Βίντεο: Arduino Nano HMC5883 3-Axis Digital Compass Tutorial 2024, Ενδέχεται
Anonim

Ας εξετάσουμε τη σύνδεση της μονάδας GY-273 με την ψηφιακή πυξίδα τριών αξόνων Honeywell HMC5883L. Αυτό το μικροκύκλωμα μπορεί να χρησιμοποιηθεί για μαγνητομετρικές μετρήσεις, κατά την πλοήγηση, εάν δεν απαιτείται υψηλή ακρίβεια μέτρησης (με σφάλμα 1 … 2 μοίρες και δυνατότητα βαθμονόμησης). Η συσκευή συνδέεται μέσω της διεπαφής I2C.

Ψηφιακή πυξίδα HMC5883
Ψηφιακή πυξίδα HMC5883

Απαραίτητη

  • - Ψηφιακή πυξίδα HMC5883.
  • - Arduino;
  • - πλακέτα πρωτοτύπου και καλώδια σύνδεσης ·
  • - υπολογιστή.

Οδηγίες

Βήμα 1

Αυτά είναι τα κύρια χαρακτηριστικά μιας μαγνητικής πυξίδας:

- Μαγνητικά ευαίσθητος αισθητήρας 3 αξόνων.

- 12-bit ADC με ανάλυση 2 mGs (milligauss).

- ενσωματωμένο αυτοέλεγχο ·

- χαμηλή τάση λειτουργίας και χαμηλή κατανάλωση

- ψηφιακή διεπαφή I2C

- υψηλό ποσοστό ψηφοφορίας - έως και 160 φορές το δευτερόλεπτο (ο χρόνος μιας μέτρησης είναι περίπου 6 ms).

- η ακρίβεια προσδιορισμού της κατεύθυνσης είναι 1 °… 2 ° ·

- μπορεί να χρησιμοποιηθεί σε ισχυρά μαγνητικά πεδία (έως ± 8 Gauss).

Το διάγραμμα για τη σύνδεση του μαγνητικού αισθητήρα HMC5883L με το Arduino φαίνεται στο σχήμα. Είναι πολύ συμπαγές και απλό, γιατί Η διεπαφή δύο καλωδίων I2C είναι εξαιρετική επειδή απαιτεί λίγες συνδέσεις. Μπορείτε να χρησιμοποιήσετε ένα breadboard.

Σύνδεση της ψηφιακής πυξίδας HMC5883 με το Arduino
Σύνδεση της ψηφιακής πυξίδας HMC5883 με το Arduino

Βήμα 2

Θα πρέπει να μοιάζει με τη φωτογραφία. Θα συνδέσω επίσης έναν λογικό αναλυτή στα δίαυλα SCL και SDA για να παρακολουθώ την ανταλλαγή πληροφοριών μεταξύ του Arduino και της μονάδας HMC5883. Δεν είναι υποχρεωτικό.

HMC5883 ψηφιακή πυξίδα συνδεδεμένη με το Arduino στο breadboard
HMC5883 ψηφιακή πυξίδα συνδεδεμένη με το Arduino στο breadboard

Βήμα 3

Ως πρώτη γνωριμία, ας προσπαθήσουμε να διαβάσουμε τους καταχωρητές αναγνώρισης 10 (0xA), 11 (0xB) και 12 (0xC) της ψηφιακής πυξίδας HMC5883 και να γράψουμε ένα τέτοιο σκίτσο όπως στο σχήμα. Διατίθεται με λεπτομερή σχόλια.

Σκίτσο που διαβάζει τα μητρώα αναγνώρισης του HMC5883
Σκίτσο που διαβάζει τα μητρώα αναγνώρισης του HMC5883

Βήμα 4

Το σήμα που λαμβάνεται με τον λογικό αναλυτή θα είναι όπως φαίνεται στην εικόνα.

Τι σημαίνει? Το πρώτο byte είναι η διεύθυνση I2C με την οποία (η κύρια συσκευή, Arduino) δημιουργούμε επικοινωνία (υψηλά 7 bits 0x1E) και τη λειτουργία εγγραφής (low bit - 0x0). ο αριθμός είναι 0x3C. Το δεύτερο byte είναι ο αριθμός 0xA, τον οποίο γράψαμε για τη διεύθυνση 0x1E και το bit επιβεβαίωσης από τον αισθητήρα HMC5883L, ο οποίος είναι ο σκλάβος. Αυτός είναι ο αριθμός μητρώου από τον οποίο θα αρχίσουμε να διαβάζουμε δεδομένα. Αυτό ολοκληρώνει την πρώτη συναλλαγή. Ξεκινά το επόμενο. Το τρίτο byte είναι ένα αίτημα ανάγνωσης από το slave (τα πιο σημαντικά 7 bit είναι η διεύθυνση 0x1E, το 8ο bit είναι η λειτουργία ανάγνωσης 0x1, ο αριθμός που προκύπτει είναι 0x3D). Τα τελευταία 3 τρία byte είναι η απόκριση από το HMC5883L slave από τους καταχωρητές 0xA, 0xB και 0xC, αντίστοιχα.

Η ψηφιακή πυξίδα HMC5883L κινείται μέσω των καταχωρητών ανεξάρτητα κατά τη συνεχή ανάγνωση. Εκείνοι. δεν είναι απαραίτητο (αλλά δεν απαγορεύεται) να καθορίζετε την περίπτωση κάθε φορά. Για παράδειγμα, αν αντί για 0xA γράφουμε 0x3 και διαβάζουμε 10 φορές, θα έχουμε τιμές σε 10 καταχωρητές, ξεκινώντας από τον 3ο έως τον 12ο.

Και ποιοι είναι αυτοί οι τρεις αριθμοί - 0x48, 0x34, 0x33; Χρησιμοποιώντας ξανά το φύλλο δεδομένων για την ψηφιακή πυξίδα HMC5883L, θα δούμε ότι αυτές είναι οι προεπιλεγμένες τιμές για τους τρεις καταχωρητές αναγνώρισης.

Διάγραμμα χρονισμού ανταλλαγής I2C με ψηφιακή πυξίδα HMC5883
Διάγραμμα χρονισμού ανταλλαγής I2C με ψηφιακή πυξίδα HMC5883

Βήμα 5

Για να λάβετε τα δεδομένα ψηφιακής πυξίδας στο μαγνητικό πεδίο, πρέπει να διαβάσετε τους καταχωρητές 3 έως 8, όπως ακριβώς διαβάζουμε τους καταχωρητές αναγνώρισης. Η μόνη διαφορά είναι ότι τα δεδομένα για καθέναν από τους τρεις άξονες X, Y και Z παρουσιάζονται ως αριθμοί διπλού byte. Μετατρέποντάς τα σε δεκαδικά ψηφία, παίρνουμε κατευθύνσεις σε καθέναν από τους τρεις άξονες.

Συνιστάται: