HMC5883L मैग्नेटोमीटर एक सेंसर है जो तीन अक्षों में चुंबकीय क्षेत्र को मापने की क्षमता के लिए Arduino परियोजनाओं में व्यापक रूप से उपयोग किया जाता है। यह इसे डिजिटल कंपास, ड्रोन के लिए नेविगेशन सिस्टम और अन्य स्वायत्त वाहन बनाने के लिए एक उत्कृष्ट विकल्प बनाता है। किफायती होने के अलावा, इसके I2C इंटरफ़ेस के कारण इसका एकीकरण सरल है, जो इसे शुरुआती लोगों के लिए आदर्श बनाता है।
इस लेख में हम HMC5883L की मुख्य विशेषताओं, विभिन्न Arduino बोर्डों के साथ इसके कनेक्शन और इसके उपयोग के व्यावहारिक उदाहरणों के बारे में विस्तार से जानेंगे। अंत में, आप इस शक्तिशाली सेंसर की पूरी क्षमता का लाभ उठाते हुए, Arduino के साथ अपने स्वयं के डिजिटल कंपास प्रोजेक्ट को लागू करने में सक्षम होंगे।
HMC5883L क्या है और यह कैसे काम करता है?
HMC5883L एक है तीन अक्ष मैग्नेटोमीटर जो एक्स, वाई और जेड अक्षों में पृथ्वी के चुंबकीय क्षेत्र के घटकों को मापता है, यह न केवल चुंबकीय क्षेत्रों की उपस्थिति का पता लगाने की अनुमति देता है, बल्कि प्राप्त मापों के आधार पर गणना के माध्यम से अभिविन्यास निर्धारित करने की भी अनुमति देता है। ये विशेषताएं इसे डिजिटल कंपास जैसे ओरिएंटेशन सिस्टम बनाने के लिए आदर्श सेंसर बनाती हैं।
सेंसर आमतौर पर GY-273 मॉडल जैसे मॉड्यूल में पाया जाता है, जिसमें Arduino बोर्ड या अन्य माइक्रोकंट्रोलर के साथ इसके सीधे कनेक्शन की सुविधा के लिए आवश्यक इलेक्ट्रॉनिक्स भी शामिल होते हैं। इसकी बिजली आपूर्ति लचीली है, और इसे 3.3V और 5V दोनों के साथ संचालित किया जा सकता है, जो इसे विभिन्न प्रणालियों के साथ संगतता के मामले में बहुत बहुमुखी बनाता है।
Arduino के साथ कनेक्शन
HMC5883L को Arduino के साथ कनेक्ट करना इसके द्वारा उपयोग किए जाने वाले I2C इंटरफ़ेस के कारण वास्तव में सरल है। इस संचार के लिए केवल दो पिन की आवश्यकता है: एसडीए और एससीएल, जो Arduino बोर्ड पर संबंधित पिन से जुड़ा होना चाहिए।
- पैरा Arduino Uno, नैनो और मिनी: SDA पिन A4 से जुड़ता है और SCL A5 से जुड़ता है।
- यदि आप Arduino मेगा या ड्यू का उपयोग करते हैं: SDA को पिन 20 से और SCL को पिन 21 से कनेक्ट किया जाना चाहिए।
- Arduino लियोनार्डो के मामले में: SDA पिन 2 पर जाता है और SCL पिन 3 पर जाता है।
आइए यह न भूलें कि मैग्नेटोमीटर 2x0E के निश्चित I1C पते के साथ काम करता है, इसलिए इसे बदलना संभव नहीं है। यह पता इस प्रकार के सेंसर के लिए अद्वितीय है, जिसका अर्थ है कि हम एक ही I5883C बस पर एकाधिक HMC2L डिवाइस कनेक्ट नहीं कर सकते हैं।
चुंबकीय क्षेत्र पढ़ना
HMC5883L के संचालन की मुख्य विधि तीनों अक्षों में चुंबकीय क्षेत्र मान पढ़ना है। Arduino पर इन मानों को प्राप्त करने के लिए, हम जेफ रोबर्ग द्वारा विकसित लाइब्रेरी का उपयोग करते हैं। आप इस किताब की दुकान पर पा सकते हैं आपका गिटहब भंडार और इसे Arduino IDE में उपयोग के लिए डाउनलोड करें।
एक बार लाइब्रेरी स्थापित हो जाने पर, सेंसर को आरंभ किया जा सकता है और चुंबकीय क्षेत्र मानों को पढ़ना शुरू किया जा सकता है। ऐसा करने का एक सरल उदाहरण यहां दिया गया है:
#include "Wire.h"
#include "I2Cdev.h"
#include "HMC5883L.h"
HMC5883L magnetometro;
int16_t mx, my, mz;
void setup() {
Serial.begin(9600);
Wire.begin();
magnetometro.initialize();
}
void loop(){
magnetometro.getHeading(&mx, &my, &mz);
Serial.print("mx: "); Serial.print(mx);
Serial.print(" my: "); Serial.print(my);
Serial.print(" mz: "); Serial.println(mz);
delay(100);
}
इस कोड में, मैग्नेटोमीटर को आरंभीकृत किया जाता है और तीनों अक्षों पर मान एक लूप में पढ़े जाते हैं। हर बार जब हम `लूप()` निष्पादित करते हैं, तो एक्स, वाई और जेड में चुंबकीय क्षेत्र के मान सीरियल मॉनिटर पर प्रदर्शित होंगे।
रेंज और लाभ सेटिंग्स
HMC5883L आपको समायोजित करने की अनुमति देता है चुंबकीय क्षेत्र माप सीमा विभिन्न लाभ स्तरों के साथ ±0.88 गॉस और ±8.1 गॉस के बीच। डिफ़ॉल्ट सीमा ±1.3 गॉस है, और आप इसे अपनी परियोजना की आवश्यकताओं के अनुरूप संशोधित कर सकते हैं। यह कोड के भीतर निम्नलिखित पंक्ति का उपयोग करके किया जा सकता है:
magnetometro.setGain(value);
जहाँ मूल्य 0 और 7 के बीच एक पूर्णांक है, जो लाभ स्तर का चयन करेगा। नीचे हम आपको संबंधित मानों वाली एक तालिका दिखाते हैं:
वीरता | Rango | लाभ (एलएसबी/गॉस) |
---|---|---|
0 | ±0.88Ga | 1370 |
1 | ±1.3Ga | 1090 |
2 | ±1.9Ga | 820 |
3 | ±2.5Ga | 660 |
4 | ±4.0Ga | 440 |
5 | ±4.7Ga | 390 |
6 | ±5.6Ga | 330 |
7 | ±8.1Ga | 230 |
एक डिजिटल कंपास का निर्माण
HMC5883L के सबसे आम उपयोगों में से एक का निर्माण करना है डिजिटल कम्पास. ऐसा करने के लिए, हमें एक्स और वाई अक्षों की रीडिंग का उपयोग करके सेंसर और चुंबकीय उत्तर के बीच के कोण की गणना करने की आवश्यकता है। यह सूत्र का उपयोग करके प्राप्त किया जाता है:
float angulo = atan2(my, mx) * 180 / M_PI;
यह मान आपको चुंबकीय उत्तर के संबंध में अभिविन्यास कोण देगा। इस कोण को समायोजित करने के लिए भौगोलिक उत्तर, आपको अपने स्थान के चुंबकीय झुकाव को ध्यान में रखना चाहिए, जिसके बारे में आप www.ign.es या www.ngdc.noaa.gov जैसी विभिन्न वेबसाइटों पर परामर्श कर सकते हैं।
सही चुंबकीय झुकाव
एक बार जब आपको अपनी स्थिति का चुंबकीय झुकाव मिल जाए, तो आपको बस इसे प्राप्त कोण से घटाना होगा। उदाहरण के लिए:
angulo -= declinacion;
जब कोण ऋणात्मक हो, तो आप हमेशा 360 और 0 डिग्री के बीच समायोजित सकारात्मक मान प्राप्त करने के लिए 360 डिग्री जोड़ सकते हैं:
if (angulo < 0) angulo += 360;
यह सेटिंग आपको एक कंपास देगी जो हमेशा भौगोलिक उत्तर की ओर सटीक रूप से इंगित करेगी।
व्यवहार में, इस सेंसर और कुछ पुस्तकालयों के साथ आप कुछ ही मिनटों में एक कंपास प्राप्त कर सकते हैं। हालाँकि, कृपया ध्यान दें कि HMC5883L बाहरी हस्तक्षेप के प्रति संवेदनशील सेंसर है, जैसे कि पास की धातुएँ या उच्च धाराओं द्वारा उत्पन्न क्षेत्र, जो रीडिंग को बदल सकते हैं।