Hi,
Ik ben bezig met de code voor mijn LAB 10V referentie kastje en in de voorbeeld code van meerdere Library's zit ook de hoogte berekening, voor mijn project niet erg belangrijk maar ik wil wel graag weten wat er mis gaat..
Ik krijg met verschillende Librarys, Uno, Nano, Teensy controlers er waarden uit die een beetje erg veel naast de echte hoogte waarde zit.
De code laat zien dat ik mij bevind op een hoogte van ongeveer 210 meter!
Zover ik weet bevind mijn werkkamer zich niet bovenin de KPN toren langs de ringweg zuid hier in Amsterdam.
Een normale waarde zou rond 6 a 8 meter zijn.
Heeft iemand een idee waarom die waarde zover afwijkt?
Zou de waarde eigenlijk in voeten zijn weergegeven?
Moet ik de aangegeven waarde dan door 32,81cm delen, de waarde die er dan uit komt zit dan rond de 6,3M, wat zou kunnen kloppen...
Als ik dat deelgetal toepas, dan klopt de hoogte verplaatsing niet meer, dus zeg 40cm in hoogte verplaatsing wordt dan niet meer correct aangegeven.
De standaard Adafruit code gedraaid op een UNO en de BMP280 sensor is via i2c verbonden UNO.
c code:
/***************************************************************************
This is a library for the BMP280 humidity, temperature & pressure sensor
Designed specifically to work with the Adafruit BMP280 Breakout
----> http://www.adafruit.com/products/2651
These sensors use I2C or SPI to communicate, 2 or 4 pins are required
to interface.
Adafruit invests time and resources providing this open source code,
please support Adafruit andopen-source hardware by purchasing products
from Adafruit!
Written by Limor Fried & Kevin Townsend for Adafruit Industries.
BSD license, all text above must be included in any redistribution
***************************************************************************/
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_BMP280.h>
#define BMP_SCK (13)
#define BMP_MISO (12)
#define BMP_MOSI (11)
#define BMP_CS (10)
Adafruit_BMP280 bmp; // I2C
//Adafruit_BMP280 bmp(BMP_CS); // hardware SPI
//Adafruit_BMP280 bmp(BMP_CS, BMP_MOSI, BMP_MISO, BMP_SCK);
void setup() {
Serial.begin(9600);
while ( !Serial ) delay(100); // wait for native usb
Serial.println(F("BMP280 test"));
unsigned status;
//status = bmp.begin(BMP280_ADDRESS_ALT, BMP280_CHIPID);
status = bmp.begin();
if (!status) {
Serial.println(F("Could not find a valid BMP280 sensor, check wiring or "
"try a different address!"));
Serial.print("SensorID was: 0x"); Serial.println(bmp.sensorID(),16);
Serial.print(" ID of 0xFF probably means a bad address, a BMP 180 or BMP 085\n");
Serial.print(" ID of 0x56-0x58 represents a BMP 280,\n");
Serial.print(" ID of 0x60 represents a BME 280.\n");
Serial.print(" ID of 0x61 represents a BME 680.\n");
while (1) delay(10);
}
/* Default settings from datasheet. */
bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* Operating Mode. */
Adafruit_BMP280::SAMPLING_X2, /* Temp. oversampling */
Adafruit_BMP280::SAMPLING_X16, /* Pressure oversampling */
Adafruit_BMP280::FILTER_X16, /* Filtering. */
Adafruit_BMP280::STANDBY_MS_500); /* Standby time. */
}
void loop() {
Serial.print(F("Temperature = "));
Serial.print(bmp.readTemperature());
Serial.println(" *C");
Serial.print(F("Pressure = "));
Serial.print(bmp.readPressure());
Serial.println(" Pa");
Serial.print(F("Approx altitude = "));
Serial.print(bmp.readAltitude(1013.25)); /* Adjusted to local forecast! */
Serial.println(" m");
Serial.println();
delay(2000);
}
Deze code genereerd in de Serial monitor deze waarde:
c code:
Temperature = 18.46 *C
Pressure = 98872.33 Pa
Approx altitude = 206.23 m <= ik krijg hoogte vrees :-)
Iemand een idee waarom de hoogte waarde zover afwijkt, ik ben bekend er mee dat deze meting niet zo precies is, maar deze afwijking is wel erg veel.
Dank vast en groet,
BRam