Wenn man bei ebay nach GY-65 sucht, findet man den entsprechenden Sensor für ca. 5 Euro. Der Sensor hat ein normales I2C-Interface, sodass nur 2 Kabel nötig sind. Für den Arduino braucht man dann die I2Cdev Library, die gibt es hier zum runterladen. Der Quellcode an sich ist maximal simpel, zuerst wird der Sensor initialisiert, dann wird eingestellt, dass der Druck gemessen werden soll und anschließen der Druck ausgelesen und daraus die Höhe berechnet. Ein komplettes, simples Beispielprogramm sieht so aus:
#include <I2Cdev.h>
#include "BMP085.h"
#include <Wire.h>
BMP085 barometer;
double pressure;
double altitude;
void setup() {
Wire.begin();
Serial.begin(9600);
Serial.println("starting...");
//initialize the barometer
barometer.initialize();
}
void loop()
{
// request pressure (3x oversampling mode, high detail, 23.5ms delay).
// Let's just wait a bit more to be sure...
barometer.setControl(BMP085_MODE_PRESSURE_3);
delay(30);
// read calibrated pressure value in Pascals (Pa)
pressure = barometer.getPressure();
// calculate absolute altitude in meters based on known pressure
// (may pass a second "sea level pressure" parameter here,
// otherwise uses the standard value of 101325 Pa)
altitude = barometer.getAltitude(pressure);
// print back the calculated altitude
Serial.println(altitude);
// do this every second
delay(1000);
}
Keine Kommentare:
Kommentar veröffentlichen