विषयसूची:

HMC5883 और Arduino नैनो का उपयोग करके चुंबकीय क्षेत्र मापन: 4 चरण
HMC5883 और Arduino नैनो का उपयोग करके चुंबकीय क्षेत्र मापन: 4 चरण

वीडियो: HMC5883 और Arduino नैनो का उपयोग करके चुंबकीय क्षेत्र मापन: 4 चरण

वीडियो: HMC5883 और Arduino नैनो का उपयोग करके चुंबकीय क्षेत्र मापन: 4 चरण
वीडियो: How to use MPU-9250 Gyroscope, Accelerometer, Magnetometer for Arduino 2024, नवंबर
Anonim
Image
Image

HMC5883 एक डिजिटल कंपास है जिसे लो-फील्ड मैग्नेटिक सेंसिंग के लिए डिज़ाइन किया गया है। इस डिवाइस में +/- 8 Oe की एक विस्तृत चुंबकीय क्षेत्र रेंज और 160 हर्ट्ज की आउटपुट दर है। HMC5883 सेंसर में ऑटोमैटिक डीगॉसिंग स्ट्रैप ड्राइवर, ऑफ़सेट कैंसिलेशन और एक 12-बिट ADC शामिल है जो 1° से 2° कंपास हेडिंग सटीकता को सक्षम बनाता है। सभी I²C मिनी मॉड्यूल 5VDC पर संचालित करने के लिए डिज़ाइन किए गए हैं।

इस ट्यूटोरियल में, हम Arduino नैनो के साथ HMC5883 की विस्तृत कार्यप्रणाली की व्याख्या करने जा रहे हैं।

चरण 1: हार्डवेयर की आवश्यकता:

हार्डवेयर की आवश्यकता
हार्डवेयर की आवश्यकता
हार्डवेयर की आवश्यकता
हार्डवेयर की आवश्यकता
हार्डवेयर की आवश्यकता
हार्डवेयर की आवश्यकता

अपने लक्ष्य को पूरा करने के लिए हमें जिन सामग्रियों की आवश्यकता होती है, उनमें निम्नलिखित हार्डवेयर घटक शामिल हैं:

1. एचएमसी5883

2. अरुडिनो नैनो

3. I2C केबल

4. Arduino नैनो के लिए I2C शील्ड

चरण 2: हार्डवेयर हुकअप:

हार्डवेयर हुकअप
हार्डवेयर हुकअप
हार्डवेयर हुकअप
हार्डवेयर हुकअप

हार्डवेयर हुकअप सेक्शन मूल रूप से सेंसर और आर्डिनो नैनो के बीच आवश्यक वायरिंग कनेक्शन की व्याख्या करता है। वांछित आउटपुट के लिए किसी भी सिस्टम पर काम करते समय सही कनेक्शन सुनिश्चित करना मूलभूत आवश्यकता है। तो, अपेक्षित कनेक्शन इस प्रकार हैं:

HMC5883 I2C पर काम करेगा। यहाँ उदाहरण वायरिंग आरेख है, जिसमें दिखाया गया है कि सेंसर के प्रत्येक इंटरफ़ेस को कैसे वायर किया जाए।

आउट-ऑफ-द-बॉक्स, बोर्ड को I2C इंटरफ़ेस के लिए कॉन्फ़िगर किया गया है, जैसे कि यदि आप अन्यथा अज्ञेयवादी हैं तो हम इस हुकअप का उपयोग करने की सलाह देते हैं। आपको बस चार तार चाहिए!

केवल चार कनेक्शन की आवश्यकता होती है Vcc, Gnd, SCL और SDA पिन और ये I2C केबल की मदद से जुड़े होते हैं।

इन कनेक्शनों को ऊपर की तस्वीरों में दिखाया गया है।

चरण 3: चुंबकीय क्षेत्र की तीव्रता को मापने के लिए Arduino कोड:

चुंबकीय क्षेत्र की तीव्रता को मापने के लिए Arduino कोड
चुंबकीय क्षेत्र की तीव्रता को मापने के लिए Arduino कोड
चुंबकीय क्षेत्र की तीव्रता को मापने के लिए Arduino कोड
चुंबकीय क्षेत्र की तीव्रता को मापने के लिए Arduino कोड

आइए अब Arduino कोड से शुरू करते हैं।

Arduino के साथ सेंसर मॉड्यूल का उपयोग करते समय, हम Wire.h लाइब्रेरी को शामिल करते हैं। "वायर" लाइब्रेरी में ऐसे कार्य होते हैं जो सेंसर और Arduino बोर्ड के बीच i2c संचार की सुविधा प्रदान करते हैं।

उपयोगकर्ता की सुविधा के लिए संपूर्ण Arduino कोड नीचे दिया गया है:

#शामिल

// HMC5883 I2C पता 0x1E (30) है

# परिभाषित करें Addr 0x1E

व्यर्थ व्यवस्था()

{

// I2C संचार को मास्टर के रूप में प्रारंभ करें

वायर.बेगिन ();

// सीरियल कम्युनिकेशन को इनिशियलाइज़ करें, बॉड रेट सेट करें = 9600

सीरियल.बेगिन (९६००);

// I2C ट्रांसमिशन शुरू करें

Wire.beginTransmission (Addr);

// कॉन्फ़िगर रजिस्टर ए चुनें

वायर.राइट (0x00);

// सामान्य माप विन्यास सेट करें, डेटा आउटपुट दर = 0.75Hz

वायर.राइट (0x60);

// I2C ट्रांसमिशन बंद करो

वायर.एंडट्रांसमिशन ();

// I2C ट्रांसमिशन शुरू करें

Wire.beginTransmission (Addr);

// मोड रजिस्टर चुनें

वायर.राइट (0x02);

// निरंतर माप सेट करें

वायर.राइट (0x00);

// I2C ट्रांसमिशन बंद करो

वायर.एंडट्रांसमिशन ();

देरी (300);

}

शून्य लूप ()

{

अहस्ताक्षरित इंट डेटा [6];

// I2C ट्रांसमिशन शुरू करें

Wire.beginTransmission (Addr);

// डेटा रजिस्टर का चयन करें

वायर.राइट (0x03);

// I2C ट्रांसमिशन बंद करो

वायर.एंडट्रांसमिशन ();

// डेटा के 6 बाइट्स का अनुरोध करें

Wire.requestFrom (Addr, 6);

// डेटा के 6 बाइट्स पढ़ें

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

अगर (वायर.उपलब्ध () == 6)

{

डेटा [0] = वायर.रीड ();

डेटा [1] = वायर.रीड ();

डेटा [2] = वायर.रीड ();

डेटा [3] = वायर.रीड ();

डेटा [४] = वायर.रीड ();

डेटा [5] = वायर.रीड ();

}

देरी (300);

// डेटा कनवर्ट करें

int xMag = ((डेटा [0] * 256) + डेटा [1]);

int zMag = ((डेटा[2] * 256) + डेटा [3]);

int yMag = ((डेटा [4] * 256) + डेटा [5]);

// सीरियल मॉनिटर को आउटपुट डेटा

Serial.print ("एक्स-एक्सिस में चुंबकीय क्षेत्र:");

सीरियल.प्रिंट्लन (एक्समैग);

Serial.print ("Y-अक्ष में चुंबकीय क्षेत्र:");

Serial.println (yMag);

सीरियल.प्रिंट ("जेड-एक्सिस में चुंबकीय क्षेत्र:");

Serial.println (zMag);

देरी (300);

}

वायर लाइब्रेरी में वायर.राइट () और वायर.रीड () का उपयोग कमांड लिखने और सेंसर आउटपुट को पढ़ने के लिए किया जाता है। कोड का निम्नलिखित भाग सेंसर आउटपुट के पठन को दिखाता है।

// डेटा के ६ बाइट्स पढ़ें डेटा [1] = वायर.रीड (); डेटा [2] = वायर.रीड (); डेटा [3] = वायर.रीड (); डेटा [४] = वायर.रीड (); डेटा [5] = वायर.रीड (); }

Serial.print() और Serial.println() का उपयोग Arduino IDE के सीरियल मॉनीटर पर सेंसर के आउटपुट को प्रदर्शित करने के लिए किया जाता है।

सेंसर का आउटपुट ऊपर की तस्वीर में दिखाया गया है।

चरण 4: अनुप्रयोग:

अनुप्रयोग
अनुप्रयोग

HMC5883 एक सरफेस-माउंट, मल्टी-चिप मॉड्यूल है जिसे कम लागत वाले कंपासिंग और मैग्नेटोमेट्री जैसे अनुप्रयोगों के लिए डिजिटल इंटरफेस के साथ लो-फील्ड मैग्नेटिक सेंसिंग के लिए डिज़ाइन किया गया है। इसकी एक से दो डिग्री उच्च स्तरीय सटीकता और सटीकता पैदल यात्री नेविगेशन और एलबीएस अनुप्रयोगों को सक्षम बनाती है।

सिफारिश की: