विषयसूची:

कण फोटॉन - MPL3115A2 प्रेसिजन अल्टीमीटर सेंसर ट्यूटोरियल: 4 कदम
कण फोटॉन - MPL3115A2 प्रेसिजन अल्टीमीटर सेंसर ट्यूटोरियल: 4 कदम

वीडियो: कण फोटॉन - MPL3115A2 प्रेसिजन अल्टीमीटर सेंसर ट्यूटोरियल: 4 कदम

वीडियो: कण फोटॉन - MPL3115A2 प्रेसिजन अल्टीमीटर सेंसर ट्यूटोरियल: 4 कदम
वीडियो: फोटॉन की ऊर्जा | energy of photon | प्रकाश की द्वैत प्रकृति एवं पदार्थ |@PCMEDUCATIONCENTRE 2024, जून
Anonim
Image
Image

MPL3115A2 सटीक दबाव/ऊंचाई और तापमान डेटा प्रदान करने के लिए I2C इंटरफ़ेस के साथ एक MEMS दबाव सेंसर को नियोजित करता है। सेंसर आउटपुट को उच्च रिज़ॉल्यूशन 24-बिट एडीसी द्वारा डिजीटल किया जाता है। आंतरिक प्रसंस्करण मेजबान एमसीयू सिस्टम से मुआवजे के कार्यों को हटा देता है। यह केवल 0.05 kPa में परिवर्तन का पता लगाने में सक्षम है जो ऊंचाई में 0.3m परिवर्तन के बराबर है। कण फोटॉन के साथ इसका प्रदर्शन यहां दिया गया है।

चरण 1: आपको क्या चाहिए..

जिसकी आपको जरूरत है..!!
जिसकी आपको जरूरत है..!!

1. कण फोटॉन

2. एमपीएल3115ए2

3. आई²सी केबल

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

चरण 2: कनेक्शन:

सम्बन्ध
सम्बन्ध
सम्बन्ध
सम्बन्ध
सम्बन्ध
सम्बन्ध
सम्बन्ध
सम्बन्ध

कण फोटॉन के लिए I2C ढाल लें और इसे कण फोटॉन के पिनों पर धीरे से धकेलें।

फिर I2C केबल के एक सिरे को MPL3115A2 सेंसर से और दूसरे सिरे को I2C शील्ड से कनेक्ट करें।

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

चरण 3: कोड:

कोड
कोड

MPL3115A2 के लिए पार्टिकल कोड हमारे Github रिपॉजिटरी-DCUBE स्टोर से डाउनलोड किया जा सकता है।

लिंक यहां दिया गया है।

हमने पार्टिकल कोड के लिए दो पुस्तकालयों का उपयोग किया है, जो application.h और Spark_wiring_i2c.h हैं। सेंसर के साथ I2C संचार की सुविधा के लिए Spark_wireing_i2c लाइब्रेरी की आवश्यकता है।

आप यहां से भी कोड कॉपी कर सकते हैं, यह इस प्रकार दिया गया है:

// एक फ्री-विल लाइसेंस के साथ वितरित किया गया।

// इसे किसी भी तरह से उपयोग करें, लाभ या मुफ्त, बशर्ते यह इसके संबंधित कार्यों के लाइसेंस में फिट बैठता है।

// एमपीएल3115ए2

// यह कोड MPL3115A2_I2CS I2C मिनी मॉड्यूल के साथ काम करने के लिए डिज़ाइन किया गया है

#शामिल

#शामिल

// MPL3115A2 I2C पता 0x60 (96) है

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

फ्लोट cTemp = ०.०, fTemp = ०.०, दबाव = ०.०, ऊंचाई = ०.०;

इंट टेम्प = 0, टीहाइट = 0; लॉन्ग प्रेसिडेंट = 0;

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

{

// चर सेट करें

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

पार्टिकल.वेरिएबल ("cTemp", cTemp);

कण। चर ("दबाव", दबाव);

कण। चर ("ऊंचाई", ऊंचाई);

// I2C संचार प्रारंभ करें

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

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

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

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

Wire.beginTransmission (Addr);

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

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

// सक्रिय मोड, OSR = 128, altimeter मोड

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

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

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

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

Wire.beginTransmission (Addr);

// डेटा कॉन्फ़िगरेशन रजिस्टर का चयन करें

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

// डेटा तैयार घटना ऊंचाई, दबाव, तापमान के लिए सक्षम है

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

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

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

देरी (300);

}

शून्य लूप ()

{

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

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

Wire.beginTransmission (Addr);

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

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

// सक्रिय मोड, OSR = 128, altimeter मोड

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

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

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

देरी (1000);

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

Wire.beginTransmission (Addr);

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

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

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

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

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

Wire.requestFrom (Addr, 6);

// पते 0x00 (00) से डेटा के 6 बाइट्स पढ़ें

// स्थिति, ऊंचाई एमएसबी 1, ऊंचाई एमएसबी, ऊंचाई एलएसबी, अस्थायी एमएसबी, अस्थायी एलएसबी

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

{

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

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

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

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

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

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

}

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

tHeight = ((((लंबा) डेटा [1] * (लंबा) 65536) + (डेटा [2] * 256) + (डेटा [3] और 0xF0)) / 16);

अस्थायी = ((डेटा [4] * 256) + (डेटा [5] और 0xF0)) / 16;

ऊंचाई = ऊंचाई / 16.0;

cTemp = (अस्थायी / १६.०);

fTemp = cTemp * १.८ + ३२;

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

Wire.beginTransmission (Addr);

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

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

// सक्रिय मोड, OSR = 128, बैरोमीटर मोड

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

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

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

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

Wire.beginTransmission (Addr);

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

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

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

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

देरी (1000);

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

Wire.requestFrom (Addr, 4);

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

// स्थिति, msb1, प्रेस msb, प्रेस lsb

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

{

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

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

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

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

}

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

राष्ट्रपति = (((लंबा) डेटा [1] * (लंबा) 65536) + (डेटा [2] * 256) + (डेटा [3] और 0xF0)) / 16;

दबाव = (पूर्व / ४.०) / १०००.०;

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

Particle.publish ("ऊंचाई:", स्ट्रिंग (ऊंचाई));

Particle.publish ("दबाव:", स्ट्रिंग (दबाव));

Particle.publish ("सेल्सियस में तापमान:", स्ट्रिंग (cTemp));

Particle.publish ("फ़ारेनहाइट में तापमान:", स्ट्रिंग (fTemp));

देरी (1000);

}

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

MPL3115A2 के विभिन्न अनुप्रयोगों में उच्च सटीकता अल्टीमेट्री, स्मार्टफोन / टैबलेट, पर्सनल इलेक्ट्रॉनिक्स अल्टीमेट्री आदि शामिल हैं। इसे जीपीएस डेड रेकनिंग, आपातकालीन सेवाओं के लिए जीपीएस एन्हांसमेंट, मैप असिस्ट, नेविगेशन के साथ-साथ वेदर स्टेशन उपकरण में भी शामिल किया जा सकता है।

सिफारिश की: