
Det som er fint med denne er at den går på I2C kommunikasjon. Det betyr at det er en bus-løsning som kun trenger to ledere i tillegg til + og -. Med en slik bus-løsning kan flere sensorer kobles på de samme to ledningene SDA og SCL..
Det som er kjempeviktig med denne sensoren er at den kun skal ha 3.3v.
Koble opp slik:
| Kort | 3.3v | GND | SCL | SDA |
| UNO | 3.3v | GND | A5 | A4 |
| Mega | 3.3v | GND | 21 | 20 |
| Nano | 3.3v | GND | A5 | A4 |
Se denne siden for hvor du kan kjøpe delene.
Her er kildekoden til et enkelt program: (Må installere biblioteket SFE_BMP180 som kan finnes her)
/* www.hushagehobby.no
* Måling av barometrisk trykk og temperatur. I2C
* 28/4-2017
*
* Test Arduino Uno- BMP180 GY-68
*/
#include <SFE_BMP180.h>
#include <Wire.h>
SFE_BMP180 pressure;
#define ALTITUDE 45.0 // Høyde hushagehobby.no
double T; //Temperatur
double P; //Barometrisk trykk
void setup() {
Serial.begin(9600);
startTempogtrykk();
}
void loop() {
lestempogtrykk();
delay(5000); // Pause for 5 seconds.
}
void startTempogtrykk() {
Serial.println("Starter");
if (pressure.begin())
Serial.println("BMP180 startet");
else
{
Serial.println("BMP180 startet ikke");
}
}
void lestempogtrykk() {
char status;
status = pressure.startTemperature();
if (status != 0)
{
delay(status); //Vent på måler starter
//Måling av Temperatur
status = pressure.getTemperature(T); // Temperatur blir lagret i variabelen T
if (status != 0) //status er 0 vis det er feil på målingen, mens 1 dersom den fungerer
{
Serial.print("temperatur: ");
Serial.print(T,1); //T er temperatur, og 1 er antall tall etter komma
Serial.print(" deg C, ");
//Start av barometrisk trykk måling
status = pressure.startPressure(1); // 0-3 for samplingsintervall. 3 høyest oppløsning.
if (status != 0) //status er 0 vis det er feil på målingen, mens 1 dersom den fungerer
{
delay(status); //Vent på måler starter
//Returnerer det målte trykket:
status = pressure.getPressure(P,T); //Trykkmaåling. P er variabelen som trykket lagres i. T er det tidligere målte temperaturen som brukes i beregningen av Trykk.
if (status != 0)
{
Serial.print("absolutt trykk: ");
Serial.print(P,1);
Serial.println(" mb");
}
else Serial.println("feil på trykkmåling");
}
else Serial.println("feil på trykkmåling");
}
else Serial.println("feil på temperaturmåling");
}
else Serial.println("feil på temperaturmåling");
}
Det som kan avleses i «Seriell Overvåker» er da :
Dersom det er noe som er uklart eller feil i koden, så skriv gjerne en kommentar