Bonjour,
J'ai brancher sur un Arduino UNO un capteur BMP180 et un écran LCD I2C 16/2 .
Ce que je voudrais faire c'est calculer une Altitude de référence ( disons Ar ) , dans le setup, qui serait la moyenne des 10 premières mesures du capteur BMP180 et la "stocker" pour la réutiliser dans le loop.
Ensuite je voudrais faire la différence entre l'altitude actuellement lue ( Ar) et l'altitude de référence pour que lorsque cette différence soit supérieur à une valeur donnée ( que je fixerai plus tard ) , un message s'affiche sur l'écran LCD.
Voici le programme que j'ai actuellement :
#include <Wire.h>
#include <Adafruit_BMP085.h>
// Connect VCC of the BMP085 sensor to 3.3V (NOT 5.0V!)
// Connect GND to Ground
// Connect SCL to i2c clock - on '168/'328 Arduino Uno/Duemilanove/etc thats Analog 5
// Connect SDA to i2c data - on '168/'328 Arduino Uno/Duemilanove/etc thats Analog 4
// EOC is not used, it signifies an end of conversion
// XCLR is a reset pin, also not used here
Adafruit_BMP085 bmp;
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define ADDRESS_SENSOR 0x77 // Addresse du capteur
LiquidCrystal_I2C lcd(0x27,20,4); // set the LCD address to 0x27 for a 16 chars and 2 line display
void setup() {
{
lcd.init(); // initialize the lcd
lcd.init();
// Print a message to the LCD.
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Amis Geocacheurs!");
lcd.setCursor(3,1);
lcd.print("T5 ou PAS!");
delay(5000);
lcd.init();
}
delay(5000);
Serial.begin(115200);
if (!bmp.begin()) {
Serial.println("Could not find a valid BMP085 sensor, check wiring!");
while (1) {}
}
}
void loop() {
Serial.print("Temperature = ");
Serial.print(bmp.readTemperature());
Serial.println(" *C");
Serial.print("Pressure = ");
Serial.print(bmp.readPressure());
Serial.println(" Pa");
lcd.setCursor(4,0);
lcd.print("Altitude");
// Calculate altitude assuming 'standard' barometric
// pressure of 1013.25 millibar = 101325 Pascal
Serial.print("Altitude = ");
lcd.setCursor(1,1);
lcd.print(bmp.readAltitude());
lcd.println(" metres ");
// you can get a more precise measurement of altitude
// if you know the current sea level pressure which will
// vary with weather and such. If it is 1015 millibars
// that is equal to 101500 Pascals.
Serial.print("Real altitude = ");
Serial.print(bmp.readAltitude(101500));
Serial.println(" meters");
Serial.println();
delay(2000);
}
Merci d'avance, un débutant arduiniste
.