विषयसूची:

Arduino नैनो - MPL3115A2 प्रेसिजन अल्टीमीटर सेंसर ट्यूटोरियल: 4 चरण
Arduino नैनो - MPL3115A2 प्रेसिजन अल्टीमीटर सेंसर ट्यूटोरियल: 4 चरण

वीडियो: Arduino नैनो - MPL3115A2 प्रेसिजन अल्टीमीटर सेंसर ट्यूटोरियल: 4 चरण

वीडियो: Arduino नैनो - MPL3115A2 प्रेसिजन अल्टीमीटर सेंसर ट्यूटोरियल: 4 चरण
वीडियो: Arduino Nano - MPL3115A2 Precision Altimeter Sensor Tutorial 2024, जुलाई
Anonim
Image
Image

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

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

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

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

2. एमपीएल3115ए2

3. आई²सी केबल

4. Arduino नैनो के लिए I²C शील्ड

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

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

Arduino Nano के लिए एक I2C शील्ड लें और इसे धीरे से नैनो के पिनों पर धकेलें।

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

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

चरण 3: कोड:

कोड
कोड

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

यहाँ उसी के लिए लिंक है:

github.com/DcubeTechVentures/MPL3115A2/blob/master/Arduino/MPL3115A2.ino

हम Arduino बोर्ड के साथ सेंसर के I2c संचार की सुविधा के लिए लाइब्रेरी Wire.h शामिल करते हैं।

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

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

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

// एमपीएल3115ए2

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

#शामिल

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

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

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

{

// 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-बिट्स में बदलें

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

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

फ्लोट ऊंचाई = ऊंचाई/16.0;

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

फ्लोट fTemp = cTemp * 1.8 + 32;

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

Wire.beginTransmission (Addr);

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

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

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

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

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

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

देरी (1000);

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

Wire.beginTransmission (Addr);

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

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

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

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

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

Wire.requestFrom (Addr, 4);

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

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

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

{

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

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

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

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

}

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

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

फ्लोट प्रेशर = (प्रेस / ४.०) / १०००.०;

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

सीरियल.प्रिंट ("ऊंचाई:");

सीरियल.प्रिंट (ऊंचाई);

सीरियल.प्रिंट्लन ("एम");

सीरियल.प्रिंट ("दबाव:");

सीरियल.प्रिंट (दबाव);

Serial.println ("केपीए");

सीरियल.प्रिंट ("सेल्सियस में तापमान:");

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

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

Serial.print ("फ़ारेनहाइट में तापमान:");

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

सीरियल.प्रिंट्लन ("एफ");

देरी (500);

}

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

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

सिफारिश की: