विषयसूची:

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

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

वीडियो: ADXL345 और कण फोटॉन का उपयोग करके त्वरण का मापन: 4 चरण
वीडियो: Arduino Breakout Boards 2024, जून
Anonim
Image
Image

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

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

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

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

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

1. ADXL345

2. कण फोटॉन

3. I2C केबल

4. कण फोटॉन के लिए I2C शील्ड

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

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

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

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

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

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

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

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

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

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

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

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

#शामिल

#शामिल

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

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

इंट xAccl = 0, yAccl = 0, zAccl = 0;

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

{

// चर सेट करें

Particle.variable("i2cdevice", "ADXL345");

कण। चर ("xAccl", xAccl);

Particle.variable("yAccl", yAccl);

Particle.variable("zAccl", zAccl);

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

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

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

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

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

Wire.beginTransmission (Addr);

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

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

// आउटपुट डेटा दर = १०० हर्ट्ज का चयन करें

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

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

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

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

Wire.beginTransmission (Addr);

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

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

// ऑटो स्लीप डिसेबल चुनें

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

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

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

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

Wire.beginTransmission (Addr);

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

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

// पूर्ण रिज़ॉल्यूशन चुनें, +/- 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)

{

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

}

देरी (300);

}

// डेटा को 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 -= १०२४;

}

// डैशबोर्ड पर आउटपुट डेटा

Particle.publish ("एक्स-एक्सिस में त्वरण है:", स्ट्रिंग (xAccl));

Particle.publish ("Y-अक्ष में त्वरण है:", स्ट्रिंग (yAccl));

Particle.publish ("जेड-एक्सिस में त्वरण है:", स्ट्रिंग (zAccl));

}

Particle.variable() फ़ंक्शन सेंसर के आउटपुट को स्टोर करने के लिए वेरिएबल बनाता है और Particle.publish() फ़ंक्शन साइट के डैशबोर्ड पर आउटपुट प्रदर्शित करता है।

सेंसर आउटपुट आपके संदर्भ के लिए ऊपर चित्र में दिखाया गया है।

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

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

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

सिफारिश की: