תוכן עניינים:

מדידת שדה מגנטי באמצעות HMC5883 ו- Arduino Nano: 4 שלבים
מדידת שדה מגנטי באמצעות HMC5883 ו- Arduino Nano: 4 שלבים

וִידֵאוֹ: מדידת שדה מגנטי באמצעות HMC5883 ו- Arduino Nano: 4 שלבים

וִידֵאוֹ: מדידת שדה מגנטי באמצעות HMC5883 ו- Arduino Nano: 4 שלבים
וִידֵאוֹ: Leap Motion SDK 2024, נוֹבֶמבֶּר
Anonim
Image
Image

HMC5883 הוא מצפן דיגיטלי המיועד לחישה מגנטית בשדה נמוך. למכשיר זה טווח שדות מגנטי רחב של +/- 8 Oe וקצב פלט של 160 הרץ. חיישן HMC5883 כולל נהגים אוטומטיים של רצועות הפחתה, ביטול קיזוז ו- ADC של 12 סיביות המאפשר דיוק כיוון מצפן של 1 עד 2 מעלות. כל מודולי המיני I²C מיועדים להפעלה ב 5VDC.

במדריך זה אנו הולכים להסביר את העבודה המפורטת של HMC5883 עם ננו Arduino.

שלב 1: חומרה נדרשת:

חומרה נדרשת
חומרה נדרשת
חומרה נדרשת
חומרה נדרשת
חומרה נדרשת
חומרה נדרשת

החומרים הדרושים לנו להגשמת מטרתנו כוללים את רכיבי החומרה הבאים:

1. HMC5883

2. ארדואינו ננו

3. כבל I2C

4. מגן I2C עבור Arduino Nano

שלב 2: חיבור חומרה:

חיבור חומרה
חיבור חומרה
חיבור חומרה
חיבור חומרה

קטע חיבור החומרה בעצם מסביר את חיבורי החיווט הנדרשים בין החיישן לננו הארדואינו. הבטחת חיבורים נכונים היא ההכרח הבסיסי בעת עבודה על כל מערכת לתפוקה הרצויה. אז, החיבורים הנדרשים הם כדלקמן:

HMC5883 יעבוד על I2C. להלן תרשים החיווט לדוגמה, המדגים כיצד לחבר כל ממשק של החיישן.

הלוח מחוץ לקופסה מוגדר לממשק I2C, ולכן אנו ממליצים להשתמש בחיבור זה אם אתה אגנוסטי אחרת. כל מה שאתה צריך זה ארבעה חוטים!

רק ארבעה חיבורים נדרשים סיכות Vcc, Gnd, SCL ו- SDA ואלו מחוברים בעזרת כבל I2C.

קשרים אלה מודגמים בתמונות למעלה.

שלב 3: קוד Arduino למדידת עוצמת השדה המגנטי:

קוד ארדואינו למדידת עוצמת השדה המגנטי
קוד ארדואינו למדידת עוצמת השדה המגנטי
קוד ארדואינו למדידת עוצמת השדה המגנטי
קוד ארדואינו למדידת עוצמת השדה המגנטי

נתחיל עם קוד הארדואינו עכשיו.

בעת השימוש במודול החיישנים עם Arduino, אנו כוללים את ספריית Wire.h. ספריית "Wire" מכילה את הפונקציות המאפשרות תקשורת i2c בין החיישן ללוח ה- Arduino.

קוד Arduino כולו ניתן להלן לנוחות המשתמש:

#לִכלוֹל

// כתובת HMC5883 I2C היא 0x1E (30)

#define Addr 0x1E

הגדרת חלל ()

{

// אתחל תקשורת I2C כ- MASTER

Wire.begin ();

// אתחל תקשורת סדרתית, הגדר קצב שידור = 9600

Serial.begin (9600);

// התחל את שידור I2C

Wire.beginTransmission (Addr);

// בחר הגדרת רשם A

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 בתים של נתונים

Wire.requestFrom (Addr, 6);

// קרא 6 בתים של נתונים

// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb

אם (Wire.available () == 6)

{

data [0] = Wire.read ();

data [1] = Wire.read ();

data [2] = Wire.read ();

data [3] = Wire.read ();

data [4] = Wire.read ();

data [5] = Wire.read ();

}

עיכוב (300);

// המר את הנתונים

int xMag = ((נתונים [0] * 256) + נתונים [1]);

int zMag = ((נתונים [2] * 256) + נתונים [3]);

int yMag = ((נתונים [4] * 256) + נתונים [5]);

// נתוני פלט לצג הסדרתי

Serial.print ("שדה מגנטי בציר X:");

Serial.println (xMag);

Serial.print ("שדה מגנטי בציר Y:");

Serial.println (yMag);

Serial.print ("שדה מגנטי בציר Z:");

Serial.println (zMag);

עיכוב (300);

}

בספריית תיל Wire.write () ו- Wire.read () משמשים לכתיבת הפקודות וקריאת פלט החיישן. החלק הבא של הקוד ממחיש את קריאת פלט החיישן.

// קרא 6 בתים של נתונים // xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb if (Wire.available () == 6) {data [0] = Wire.read (); data [1] = Wire.read (); data [2] = Wire.read (); data [3] = Wire.read (); data [4] = Wire.read (); data [5] = Wire.read (); }

Serial.print () ו- Serial.println () משמשים להצגת פלט החיישן על הצג הטורי של ה- Arduino IDE.

פלט החיישן מוצג בתמונה למעלה.

שלב 4: יישומים:

יישומים
יישומים

HMC5883 הוא מודול רב-שבב בעל הרכבה על פני השטח המיועד לחישה מגנטית בשדה נמוך עם ממשק דיגיטלי ליישומים כגון חישוב נמוך ומגנומטומטריה. רמת הדיוק והדיוק ברמה גבוהה עד שתיים מאפשרת ניווט להולכי רגל ויישומי LBS.

מוּמלָץ: