विषयसूची:

बीएमए २५० और अरुडिनो नैनो का उपयोग कर त्वरण मापन: ४ कदम
बीएमए २५० और अरुडिनो नैनो का उपयोग कर त्वरण मापन: ४ कदम

वीडियो: बीएमए २५० और अरुडिनो नैनो का उपयोग कर त्वरण मापन: ४ कदम

वीडियो: बीएमए २५० और अरुडिनो नैनो का उपयोग कर त्वरण मापन: ४ कदम
वीडियो: ₹250 में Veriabale Power Supply कैसे बनाएं | How To Make Leb Bench Power Supply | Samar Experiments 2024, नवंबर
Anonim
Image
Image

BMA250 ±16 g तक के उच्च रिज़ॉल्यूशन (13-बिट) माप के साथ एक छोटा, पतला, अल्ट्रालो पावर, 3-अक्ष एक्सेलेरोमीटर है। डिजिटल आउटपुट डेटा को 16-बिट टूस पूरक के रूप में स्वरूपित किया गया है और I2C डिजिटल इंटरफ़ेस के माध्यम से पहुँचा जा सकता है। यह झुकाव-संवेदन अनुप्रयोगों में गुरुत्वाकर्षण के स्थिर त्वरण के साथ-साथ गति या झटके से उत्पन्न गतिशील त्वरण को मापता है। इसका उच्च रिज़ॉल्यूशन (3.9 मिलीग्राम/एलएसबी) 1.0 डिग्री से कम के झुकाव परिवर्तन को मापने में सक्षम बनाता है।

इस ट्यूटोरियल में हम BMA250 और Arduino Nano का उपयोग करके तीनों लंबवत अक्षों में त्वरण को मापने जा रहे हैं।

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

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

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

1. बीएमए250

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

3. I2C केबल

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

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

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

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

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

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

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

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

चरण 3: त्वरण मापन के लिए Arduino कोड:

त्वरण मापन के लिए Arduino कोड
त्वरण मापन के लिए Arduino कोड
त्वरण मापन के लिए Arduino कोड
त्वरण मापन के लिए Arduino कोड

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

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

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

#शामिल

// BMA250 I2C पता 0x18 (24) है

#परिभाषित जोड़ें 0x18

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

{

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

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

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

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

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

Wire.beginTransmission (Addr);

// श्रेणी चयन रजिस्टर का चयन करें

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

// सेट रेंज +/- 2g

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

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

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

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

Wire.beginTransmission (Addr);

// बैंडविड्थ रजिस्टर चुनें

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

// बैंडविड्थ 7.81 हर्ट्ज सेट करें

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

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

वायर.एंडट्रांसमिशन (); देरी (300);}

शून्य लूप ()

{

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

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

Wire.beginTransmission (Addr);

// डेटा रजिस्टर चुनें (0x02 - 0x07)

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

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

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

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

Wire.requestFrom (Addr, 6);

// छह बाइट्स पढ़ें

// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb

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

{

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

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

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

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

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

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

}

देरी (300);

// डेटा को 10 बिट्स में बदलें

फ्लोट xAccl = ((डेटा [1] * 256.0) + (डेटा [0] और 0xC0)) / 64;

अगर (एक्सएसीएल> 511)

{

xAccl -= १०२४;

}

फ्लोट yAccl = ((डेटा [3] * 256.0) + (डेटा [2] और 0xC0)) / 64;

अगर (वाईएसीएल> 511)

{

yAccl -= १०२४;

}

फ्लोट zAccl = ((डेटा [5] * 256.0) + (डेटा [4] और 0xC0)) / 64;

अगर (zAccl> 511)

{

zAccl -= १०२४;

}

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

Serial.print ("एक्स-एक्सिस में त्वरण:");

सीरियल.प्रिंट्लन (xAccl);

Serial.print ("Y-अक्ष में त्वरण:");

Serial.println (yAccl);

Serial.print ("जेड-एक्सिस में त्वरण:");

Serial.println(zAccl);

}

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

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

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

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

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

सिफारिश की: