विषयसूची:

ADXL345 और Arduino नैनो का उपयोग करके त्वरण का मापन: 4 चरण
ADXL345 और Arduino नैनो का उपयोग करके त्वरण का मापन: 4 चरण

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

वीडियो: ADXL345 और Arduino नैनो का उपयोग करके त्वरण का मापन: 4 चरण
वीडियो: Arduino ADXL345 Accelerometer in Hindi | Arduino Programming in Hindi - Tutorial #11 2024, नवंबर
Anonim
Image
Image

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

इस ट्यूटोरियल में arduino नैनो के साथ ADXL345 सेंसर मॉड्यूल के इंटरफेसिंग का चित्रण किया गया है। त्वरण मूल्यों को पढ़ने के लिए, हमने I2c एडेप्टर के साथ arduino का उपयोग किया है। यह I2C एडेप्टर सेंसर मॉड्यूल से कनेक्शन को आसान और अधिक विश्वसनीय बनाता है।

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

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

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

1. ADXL345

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

3. I2C केबल

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

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

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

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

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

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

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

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

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

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

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

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

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

#शामिल

// ADXL345 I2C पता 0x53 (83) है

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

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

{

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

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

// सीरियल कम्युनिकेशन शुरू करें, बॉड रेट सेट करें = 9600

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

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

Wire.beginTransmission (Addr);

// बैंडविड्थ दर रजिस्टर का चयन करें

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

// सामान्य मोड, आउटपुट डेटा दर = 100 हर्ट्ज

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

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

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

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

Wire.beginTransmission (Addr);

// पावर कंट्रोल रजिस्टर चुनें

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

// ऑटो-स्लीप डिसेबल

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

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

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

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

Wire.beginTransmission (Addr);

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

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

// स्वयं परीक्षण अक्षम, 4-तार इंटरफ़ेस, पूर्ण रिज़ॉल्यूशन, रेंज = +/- 2g

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

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

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

देरी (300);

}

शून्य लूप ()

{

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

for(int i = 0; i <6; i++)

{

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

Wire.beginTransmission (Addr);

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

वायर.राइट ((50 + i));

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

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

// डेटा के 1 बाइट का अनुरोध करें

Wire.requestFrom (Addr, 1);

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

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

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

{

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

}

}

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

int xAccl = (((डेटा [1] और 0x03) * 256) + डेटा [0]);

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

{

xAccl -= १०२४;

}

int yAccl = (((डेटा [3] और 0x03) * 256) + डेटा [2]);

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

{

yAccl -= १०२४;

}

int zAccl = (((डेटा [5] और 0x03) * 256) + डेटा [4]);

अगर (zAccl> 511)

{

zAccl -= १०२४;

}

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

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

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

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

Serial.println (yAccl);

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

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

देरी (300);

}

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

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

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

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

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

ADXL345 एक छोटा, पतला, अल्ट्रालो पावर, 3-एक्सिस एक्सेलेरोमीटर है जिसे हैंडसेट, मेडिकल इंस्ट्रूमेंटेशन आदि में लगाया जा सकता है। इसके एप्लिकेशन में गेमिंग और पॉइंटिंग डिवाइस, इंडस्ट्रियल इंस्ट्रूमेंटेशन, पर्सनल नेविगेशन डिवाइस और हार्ड डिस्क ड्राइव (HDD) प्रोटेक्शन भी शामिल है।

सिफारिश की: