Სარჩევი:
ვიდეო: ნაწილაკების ფოტონი - MPL3115A2 ზუსტი სიმაღლემეტრის სენსორი გაკვეთილი: 4 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:17
MPL3115A2 იყენებს MEMS წნევის სენსორს I2C ინტერფეისით, რათა უზრუნველყოს წნევის/სიმაღლისა და ტემპერატურის ზუსტი მონაცემები. სენსორის გამოსასვლელი ციფრულდება მაღალი რეზოლუციის 24-ბიტიანი ADC საშუალებით. შიდა დამუშავება ხსნის კომპენსაციის ამოცანებს მასპინძელი MCU სისტემიდან. მას შეუძლია აღმოაჩინოს ცვლილება მხოლოდ 0.05 kPa– ში, რაც უდრის სიმაღლის 0.3 მ ცვლილებას. აქ არის მისი დემონსტრირება ნაწილაკების ფოტონთან ერთად.
ნაბიჯი 1: რაც გჭირდებათ..
1. ნაწილაკების ფოტონი
2. MPL3115A2
3. I²C კაბელი
4. ნაწილაკების ფოტონის I²C ფარი
ნაბიჯი 2: კავშირები:
აიღეთ I2C ფარი ნაწილაკების ფოტონისთვის და ნაზად გადაიტანეთ იგი ნაწილაკების ფოტონის ქინძისთავებზე.
შემდეგ შეაერთეთ I2C კაბელის ერთი ბოლო MPL3115A2 სენსორთან და მეორე ბოლო I2C ფარს.
კავშირები ნაჩვენებია ზემოთ მოცემულ სურათზე.
ნაბიჯი 3: კოდი:
MPL3115A2 ნაწილაკების კოდი შეგიძლიათ გადმოწეროთ ჩვენი Github საცავიდან-DCUBE Store.
აქ არის ბმული.
ჩვენ გამოვიყენეთ ორი ბიბლიოთეკა ნაწილაკების კოდისთვის, რომლებიც არის application.h და spark_wiring_i2c.h. Spark_wiring_i2c ბიბლიოთეკა საჭიროა სენსორთან I2C კომუნიკაციის გასაადვილებლად.
თქვენ ასევე შეგიძლიათ დააკოპიროთ კოდი აქედან, იგი მოცემულია შემდეგნაირად:
// განაწილებულია თავისუფალი ნების ლიცენზიით.
// გამოიყენეთ იგი ნებისმიერი ფორმით, როგორც გსურთ, მოგებით ან უფასოდ, იმ პირობით, რომ იგი ჯდება ლიცენზიებთან დაკავშირებული სამუშაოებისათვის.
// MPL3115A2
// ეს კოდი შექმნილია MPL3115A2_I2CS I2C მინი მოდულთან მუშაობისთვის
#ჩართეთ
#ჩართეთ
// MPL3115A2 I2C მისამართი არის 0x60 (96)
#განსაზღვრეთ Addr 0x60
float cTemp = 0.0, fTemp = 0.0, წნევა = 0.0, სიმაღლე = 0.0;
int temp = 0, tHeight = 0; ხანგრძლივი pres = 0;
ბათილად დაყენება ()
{
// ცვლადის დაყენება
ნაწილაკი. ცვლადი ("i2cdevice", "MPL3115A2");
ნაწილაკი. ცვლადი ("cTemp", cTemp);
ნაწილაკი. ცვალებადი ("წნევა", წნევა);
ნაწილაკი. ცვალებადი ("სიმაღლე", სიმაღლე);
// I2C კომუნიკაციის ინიციალიზაცია
Wire.begin ();
// სერიული კომუნიკაციის ინიციალიზაცია, დაყენებული baud განაკვეთი = 9600
სერიული.დაწყება (9600);
// დაიწყეთ I2C გადაცემა
Wire.beginTransmission (Addr);
// აირჩიეთ საკონტროლო რეგისტრი
Wire.write (0x26);
// აქტიური რეჟიმი, OSR = 128, ალტიმეტრის რეჟიმი
Wire.write (0xB9);
// შეაჩერე I2C გადაცემა
Wire.endTransmission ();
// დაიწყეთ I2C გადაცემა
Wire.beginTransmission (Addr);
// მონაცემთა კონფიგურაციის რეგისტრატორის არჩევა
Wire.write (0x13);
// მონაცემებისთვის მზად ღონისძიება ჩართულია სიმაღლეზე, წნევაზე, ტემპერატურაზე
Wire.write (0x07);
// შეაჩერე I2C გადაცემა
Wire.endTransmission ();
დაგვიანება (300);
}
ბათილი მარყუჟი ()
{
ხელმოუწერელი int მონაცემები [6];
// დაიწყეთ I2C გადაცემა
Wire.beginTransmission (Addr);
// აირჩიეთ საკონტროლო რეგისტრი
Wire.write (0x26);
// აქტიური რეჟიმი, OSR = 128, ალტიმეტრის რეჟიმი
Wire.write (0xB9);
// შეაჩერე I2C გადაცემა
Wire.endTransmission ();
დაგვიანება (1000);
// დაიწყეთ I2C გადაცემა
Wire.beginTransmission (Addr);
// მონაცემთა რეგისტრაციის არჩევა
Wire.write (0x00);
// შეაჩერე I2C გადაცემა
Wire.endTransmission ();
// მოითხოვეთ მონაცემების 6 ბაიტი
მავთული. მოთხოვნა (Addr, 6);
// წაიკითხეთ მონაცემების 6 ბაიტი 0x00 მისამართიდან (00)
// სტატუსი, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
თუ (Wire. Available () == 6)
{
მონაცემები [0] = Wire.read ();
მონაცემები [1] = Wire.read ();
მონაცემები [2] = Wire.read ();
მონაცემები [3] = Wire.read ();
მონაცემები [4] = Wire.read ();
მონაცემები [5] = Wire.read ();
}
// გადააკეთეთ მონაცემები 20 ბიტად
tHeight = (((((გრძელი) მონაცემები [1] * * გრძელი) 65536) + (მონაცემები [2] * 256) + (მონაცემები [3] & 0xF0)) / 16);
temp = ((მონაცემები [4] * 256) + (მონაცემები [5] & 0xF0)) / 16;
სიმაღლე = t სიმაღლე / 16.0;
cTemp = (temp / 16.0);
fTemp = cTemp * 1.8 + 32;
// დაიწყეთ I2C გადაცემა
Wire.beginTransmission (Addr);
// აირჩიეთ საკონტროლო რეგისტრი
Wire.write (0x26);
// აქტიური რეჟიმი, OSR = 128, ბარომეტრის რეჟიმი
Wire.write (0x39);
// შეაჩერე I2C გადაცემა
Wire.endTransmission ();
// დაიწყეთ I2C გადაცემა
Wire.beginTransmission (Addr);
// მონაცემთა რეგისტრაციის არჩევა
Wire.write (0x00);
// შეაჩერე I2C გადაცემა
Wire.endTransmission ();
დაგვიანება (1000);
// მოითხოვეთ 4 ბაიტი მონაცემები
მავთული. მოთხოვნა (Addr, 4);
// წაიკითხეთ 4 ბაიტი მონაცემები
// სტატუსი, pres msb1, pres msb, pres lsb
თუ (Wire. Available () == 4)
{
მონაცემები [0] = Wire.read ();
მონაცემები [1] = Wire.read ();
მონაცემები [2] = Wire.read ();
მონაცემები [3] = Wire.read ();
}
// გადააკეთეთ მონაცემები 20 ბიტად
pres = (((გრძელი) მონაცემები [1] * (გრძელი) 65536) + (მონაცემები [2] * 256) + (მონაცემები [3] & 0xF0)) / 16;
წნევა = (pres / 4.0) / 1000.0;
// მონაცემების გამოტანა საინფორმაციო დაფაზე
Particle.publish ("სიმაღლე:", სიმებიანი (სიმაღლე));
Particle.publish ("წნევა:", სიმებიანი (წნევა));
Particle.publish ("ტემპერატურა ცელსიუსში:", სიმებიანი (cTemp));
Particle.publish ("ტემპერატურა ფარენჰეიტში:", სიმებიანი (fTemp));
დაგვიანება (1000);
}
ნაბიჯი 4: პროგრამები:
MPL3115A2– ის სხვადასხვა პროგრამა მოიცავს მაღალი სიზუსტის ალტიმეტრიას, სმარტფონებს/ტაბლეტებს, პერსონალურ ელექტრონიკას ალტიმეტრიას და სხვა. ის ასევე შეიძლება ჩართული იყოს GPS Dead Reckoning– ში, GPS– ის გაძლიერებაში გადაუდებელ სამსახურში, რუქის დახმარებაში, ნავიგაციაში, ასევე ამინდის სადგურის აღჭურვილობაში.
გირჩევთ:
ნაწილაკების ფოტონი - TCN75A ტემპერატურის სენსორის გაკვეთილი: 4 ნაბიჯი
ნაწილაკების ფოტონი-TCN75A ტემპერატურის სენსორის სახელმძღვანელო: TCN75A არის ორ მავთულის სერიული ტემპერატურის სენსორი, რომელიც ჩართულია ტემპერატურის ციფრულ გადამყვანთან. იგი ჩართულია მომხმარებლის პროგრამირებადი რეგისტრებით, რომლებიც უზრუნველყოფენ მოქნილობას ტემპერატურის მგრძნობიარე პროგრამებისთვის. რეგისტრაციის პარამეტრები საშუალებას აძლევს მომხმარებლებს
ნაწილაკების ფოტონი - ADT75 ტემპერატურის სენსორის გაკვეთილი: 4 ნაბიჯი
ნაწილაკების ფოტონი - ADT75 ტემპერატურის სენსორის სახელმძღვანელო: ADT75 არის უაღრესად ზუსტი, ციფრული ტემპერატურის სენსორი. იგი მოიცავს დიაპაზონის ტემპერატურის სენსორს და 12 ბიტიან ციფრულ ციფრულ გადამყვანს ტემპერატურის მონიტორინგისა და ციფრების გასაუმჯობესებლად. მისი უაღრესად მგრძნობიარე სენსორი მას საკმარისად კომპეტენტურს ხდის ჩემთვის
ნაწილაკების ფოტონი - STS21 ტემპერატურის სენსორის გაკვეთილი: 4 ნაბიჯი
ნაწილაკების ფოტონი - STS21 ტემპერატურის სენსორის სახელმძღვანელო: STS21 ციფრული ტემპერატურის სენსორი გთავაზობთ საუკეთესო შესრულებას და სივრცის დაზოგვის ნაკვალევს. ის უზრუნველყოფს დაკალიბრებულ, ხაზოვანი სიგნალებს ციფრულ, I2C ფორმატში. ამ სენსორის დამზადება ემყარება CMOSens ტექნოლოგიას, რომელიც მიაკუთვნებს უპირატესობას
ნაწილაკების ფოტონი - HDC1000 ტემპერატურის სენსორის გაკვეთილი: 4 ნაბიჯი
ნაწილაკების ფოტონი - HDC1000 ტემპერატურის სენსორის გაკვეთილი: HDC1000 არის ციფრული ტენიანობის სენსორი ინტეგრირებული ტემპერატურის სენსორით, რომელიც უზრუნველყოფს გაზომვის შესანიშნავ სიზუსტეს ძალიან დაბალი სიმძლავრის დროს. მოწყობილობა ზომავს ტენიანობას ახალი capacitive სენსორის საფუძველზე. ტენიანობისა და ტემპერატურის სენსორები არის
ნაწილაკების ფოტონი - TMP100 ტემპერატურის სენსორის გაკვეთილი: 4 ნაბიჯი
ნაწილაკების ფოტონი-TMP100 ტემპერატურის სენსორის გაკვეთილი: TMP100 მაღალი სიზუსტის, დაბალი სიმძლავრის, ციფრული ტემპერატურის სენსორი I2C MINI მოდული. TMP100 იდეალურია გაფართოებული ტემპერატურის გაზომვისთვის. ეს მოწყობილობა გთავაზობთ accuracy 1 ° C სიზუსტეს კალიბრაციის ან გარე კომპონენტის სიგნალის კონდიცირების მოთხოვნის გარეშე. ის