Tartalom:
- Légnyomás mértékegységei, légnyomás csökkenése a tengerszint feletti magasság függvényében
- A BMP180 chip műszaki adatai
- Összekötése az Arduino-val
- Programkönyvtár letöltése és használata
- Példa program a működés megismeréséhez
—————————————————————————–

Egy kicsike elmélettel kezdünk. A tengerszinten a légnyomás 1013,25 hPa (hektopaszkal), illetve 1013,25 mbar (milibar), ami egyébként 1 atm (atmoszféra). Sok a mértékegység, és gyakorlatban a légköri nyomásra a mbar-t hallom a legtöbbször. A légnyomás a magassággal nem lineárisan csökken. Pár száz méterig számolhatunk 0,1 mbar/méter csökkenéssel, tehát a Gellért hegy tetején (235m), már csak kb 998 mbar légnyomás mérhető. Lakóhelyemen az átlagos légnyomás kb. 995 mbar, ebből már sejthető, hogy nem a Mátrában lakom.
Ennek a modulnak a lelke egy igen kisméretű 3,6 x 3,8 x 0,9 mm-es szenzor.
Műszaki adatai:
- 1,8 V – 3,6 V tápfeszültség
- Alacsony energiafogyasztás – 0,5uA (másodpercenként egy mérés esetén)
- I2C interfész
- Maximális I2C sebesség: 3.5Mhz
- Nagyon alacsony zaj – akár 0.02hPa (17cm)
- Nyomástartomány: 300hPa – 1100hPa (+ 9000–500 m)
- Súly: 1,18 g
- Méret: 21mm x 18mm
Áramköri kapcsolás:

Mint látható, 3,3V-os tápfeszre lett kötve a rajzon. Én ezt nem vettem észre, és 5V tápfeszre kötöttem. Számomra is meglepő módon nem ment tönkre, működött két éven keresztül, amikor szétszedtem a kapcsolást!
Itt találtam hozzá programcsomagot:

A példa programhoz sok magyarázat nem szükséges.
#include <Wire.h> #include <Adafruit_BMP085.h> Adafruit_BMP085 bmp; void setup() { Serial.begin(9600); if (!bmp.begin()) { Serial.println("Nem talalhato ervenyes BMP180 erzekelo!"); while (1) {} } } void loop() { Serial.print("Homerseklet = "); Serial.print(bmp.readTemperature()); Serial.println(" *C"); Serial.print("Legnyomas = "); Serial.print(bmp.readPressure()/100); Serial.println(" mBar"); /* Magasság kiszámításához feltételezzük, hogy a standard légköri nyomás 1013,25 mbar */ Serial.print("Magassag = "); Serial.print(bmp.readAltitude()); Serial.println(" meter"); Serial.println(); delay(5000); }