Nyomásérzékelés

MPS20N0040D

Az egy DIP-tokozású, univerzális légköri nyomásmérő szenzor, mely széles körben használható légnyomásmérésre, mint például:

  • Gépkocsi: gumiabroncsnyomásmérő, légszivattyú, MAP érzékelők, diagnosztikai berendezések, autóérzékelők.
  • Ipari felhasználás: légfék nyomáskapcsolók, hordozható nyomásmérők, környezetvédelmi monitorok.
  • Orvosi felszerelések: betegmonitorozás és diagnosztikai berendezések, mint például vérnyomásmérő, orvosi műszerek és monitorok.

A nyomásmérő gyakorlatilag egy Wheatstone-híd, mely 0-25 mV jelet ad ki. Ez az Arduino számára közvetlenül nem értékelhető, ezért a jelátalakításhoz egy műveleti erősítőt kell beiktatni.

Technikai jellemzők

  • Mérőközeg: levegő
  • Mérési tartomány: 0-40 kPa (0-58 psi)
  • Működési hőmérséklet tartomány: -40 ℃ ~ + 125 ℃
  • Tárolási hőmérséklet: -40 ℃ ~ + 150 ℃
  • Páratartalom: (50% ± 10%) RH
  • Környezeti hőmérséklet: (25 ± 1) ℃
  • Közepes hőmérséklet: (25 ± 1) ℃
  • Kimeneti impedancia: 4kΩ ~ 6kΩ
  • Nulla kimenet: -15mV ~ + 15mV
  • Hiszterézis: + -0,7% FS
  • Tápellátás: ≤10V DC vagy ≤2.0mA DC
  • Szigetelési ellenállás: 100MΩ, 100VDC

A szenzor adatlapja: https://softroboticstoolkit.com/files/sorotoolkit/files/mps20n0040d-s_datasheet.pdf

Az MPS20N0040D lábkiosztása

Az MPS20N0040D lábkiosztása

Kapcsolás

MPS20N0040D áramút

Ez a kapcsolás Alexander Lang-tól származik, ő egy LM358-as műveleti erősítőn keresztül juttatta a nyomásmérő jelét az Arduno analóg bemenetére. Egy komment szerint (lásd az oldalon) a HX711 is tökéletesen alkalmas a jelátalakításra, a gain-t ezesetben 32-re kell állítani.

A fenti kapcsolást innen másoltam ide: http://langster1980.blogspot.de/2014/11/how-to-use-pressure-sensor-with.html

Forrás

A BME20 egy nagyfelbontású légköri nyomást mérő szenzor. Az interneten sokféle modulba szervezett változata elérhető, ezeknek a közös vonása, hogy szerepel a nevükben a "280". Ez annyira nem véletlen, ugyanis ezek a Bosch BME280-as szenzorát (https://www.bosch-sensortec.com/bst/products/all_products/bme280) (rosszabb esetben enek valamely utángyártott klónját) használják a méréshez.

Specifikáció

  • Tápfeszültség a szenzornak: 1.71 V - 3.6 V
  • Áramfelvétel készenléti állapotban: 0.1 μA
  • Relatív páratartalom: 0 ~ 100%
  • Hőmérséklettartomány: -40 ° C ~ + 85 ° C
  • Válaszadási idő: 1 sec
  • Hiszterézis: 2% relatív páratartalom
  • Mérési hibahatár: ± 0.25 %
  • Nyomáshatár: 300 ~ 1100 hPa
  • Kommunikációs interfész: I²C, SPI

BME280 Modul

Ez a CJMCU modul a BME280 nyomásszenzoron kívül páratartalom- és hőmérséklet-mérést is tartalmaz. Technikai jellemzői megegyeznek a CJMCU-280E modullal.

portleírás
VccTápfeszültség
GNDgrund
SDII²C SDA (adat) port
SCKI²C SCL (órajel) port
CSBI²C kommunikáció esetén a Vcc-re kell kötni. SPI esetén a GND-re.
SDOAz I²C slave cím kiválasztása: a GND-re kötve 0x76, a Vcc-re kötve 0x77 lesz.
Az SDO-t mindenképpen le kell kötni, egyébként a modul címe bizonytalan lesz.

A modul használata ESP8266-tal: https://myesp8266.blogspot.de/2016/12/bmp280-and-esp8266.html

Példa

library: https://github.com/sparkfun/SparkFun_BME280_Arduino_Library

  • Vin → 5V
  • GND → grund
  • SCK → pin #13
  • SDO → pin #12
  • SDI → pin #11
  • CSB → pin #10
#include <stdint.h>
#include "SparkFunBME280.h"
#include "Wire.h"
#include "SPI.h"
 
//Global sensor object
BME280 mySensor;
 
void setup()
{
  Serial.begin(57600);
  //SPI
  mySensor.settings.commInterface = SPI_MODE;
  mySensor.settings.chipSelectPin = 10;
 
  //Operation settings
  mySensor.settings.runMode = 3; //Normal mode
  mySensor.settings.tStandby = 0;
  mySensor.settings.filter = 0;
  mySensor.settings.tempOverSample = 1;
  mySensor.settings.pressOverSample = 1;
  mySensor.settings.humidOverSample = 1;
 
  Serial.print("Starting BME280... result of .begin(): 0x");
  delay(10);  //BME280 requires 2ms to start up.
  Serial.println(mySensor.begin(), HEX);
 
}
 
void loop()
{
  //Each loop, take a reading.
 
  Serial.print("Temperature: ");
  Serial.print(mySensor.readTempC(), 2);
  Serial.println(" degrees C");
 
  Serial.print("Temperature: ");
  Serial.print(mySensor.readTempF(), 2);
  Serial.println(" degrees F");
 
  Serial.print("Pressure: ");
  Serial.print(mySensor.readFloatPressure(), 2);
  Serial.println(" Pa");
 
  Serial.print("Altitude: ");
  Serial.print(mySensor.readFloatAltitudeMeters(), 2);
  Serial.println("m");
 
  Serial.print("Altitude: ");
  Serial.print(mySensor.readFloatAltitudeFeet(), 2);
  Serial.println("ft"); 
 
  Serial.print("%RH: ");
  Serial.print(mySensor.readFloatHumidity(), 2);
  Serial.println(" %");
 
  Serial.println();
 
  delay(1000);
 
}

forrás: http://arduinolearning.com/code/bme280-sensor-example.php

BMP085 (GY-65) légköri nyomásmérő modul

A GY-65 a Bosch BMP085 légnyomás és hőmérsékletmérő szenzor modul-változata, I²C kommunikációval.

A BMP085 4 üzemmóddal (OSS) rendelkezik (ultra low power, standard, high resolution, ultra high resolution). Ezek egyrészt a kommunikáción keresztül paraméterezhetők, másrészt függenek a mérések gyakoriságától.

Az Arduino I²C összefoglalása itt található: Arduino I²C.

Technikai adatok

  • Légnyomásmérés: 300 .. 1100 hPa (-500 m-től 9000 m-ig)
  • Felbontás: 0,06 hPa (0,5 m)
  • Hőmérséklet mérés: 0 °C .. 65 °C (hőmérséklet / nyomás kompenzációval)
  • Mérés válaszideje: 7,5 ms
  • Alkalmazott kommunikáció: I²C
  • Tápfeszültség: 1.8V .. 3.6V (VDDA), 1.62V .. 3.6V (VDDD)
  • Áramfelvétel: 5μA szabványos üzemmódban
  • Alapértelmezett I²C cím: 0x77

A kommunikáció összekötése után érdemes az Arduino I²C scanner programmal tesztelni a modul jelenlétét.

Vigyázat, a legtöbb ilyen modulban nincs 5V-os feszültségszabályozó, így a leírásokat nem érdemes figyelmen kívül hagyni és a tápellátást is a 3.3V-tal kell megoldani.

Egyszerre csak egy ilyen modul lehet egy I²C vonalon, mivel fix címe van.

Az I²C vezetékeket felhúzóellenállásokkal az 5V DC-re át kell kötni (a lenti vezetékezés-példánál ez nincs feltüntetve)

Pinek

BMP085 pinpin funkció
VCCTáp (1.8V .. 3.6V)
GNDGrund
EOC"konverzió vége" kimenet: aktiv, ha a mérés készen van (opcionális)
XCLRmaster reset (low-active): ha GND-re kapcsoljuk, visszaállítja a BMP085 kezdeti értékeit (opcionális)
SCLsoros órajel I/O
SDAsoros adatjel I/O

Vezetékezés

Szoftver