Sorry !!!
I am trying to read data from a BMP180 with an Arduino MKR Zero.
I have problems uploading the program. If I have the BMP180 connected to both I2C bus (D11 and d12) the program does not upload. If I disconnect it, if I can upload the program but the program does not start.
I do not know what's happening !!!
This program on an ARDUINO UNO, works fine
// Sonda digital BMP180 - I2C
// Llibreries i variables-----------------------------------------------------
#include <SFE_BMP180.h>
#include <Wire.h>
SFE_BMP180 bmp180;
double PresionNivellMar = 1013.25; //pressio sobre el nivell del mar en mar
// Configuració SETUP del programa********************************************
void setup()
{
delay(500); //esperem 0,5 segons
Serial.begin(9600); //port serie
Serial.println("**************");
Serial.println("Sonda MBP180 ");
Serial.println("**************");
delay(1000);
if (bmp180.begin())
Serial.println("BMP180 iniciado");
else
{
Serial.println("Error al iniciar BMP180");
while(1); // bucle infinito
}
}
// INICI DEL PROGRAMA*********************************************************
void loop()
{
Serial.println(" -> Dades capturades :");
CapturaDeDades();
Esperem (1); //esperem 1, 10 minut,...
delay (1000); //esperem 1 segon
}
//Fi bucle del programa******************************************************
//Funció capturar dades------------------------------------------------------
void CapturaDeDades()
{
char status;
double Temperatura, Pressio, Altitud;
status = bmp180.startTemperature(); //Inici de lectura de temperatura
if (status != 0)
{
delay(status); //Pausa perque acavi la lectura
status = bmp180.getTemperature(Temperatura); //Obtener la temperatura
if (status != 0)
{
status = bmp180.startPressure(3); //Inici lectura de pressio
if (status != 0)
{
delay(status); //Pausa perque acavi la lectura
status = bmp180.getPressure(Pressio, Temperatura); //Obtenim la presio
if (status != 0)
{
Serial.print(" -> Temperatura: ");
Serial.print(Temperatura,2);
Serial.print(" *C , ");
Serial.print("Presion: ");
Serial.print(Pressio,2);
Serial.print(" mb, ");
Altitud = bmp180.altitude(Pressio,PresionNivellMar); //Calcular altura
Serial.print("Altitud: ");
Serial.print(Altitud);
Serial.println(" m");
}
}
}
}
}
// Fi capturar dades---------------------------------------------------------
// Funció temps d'espera entre captura de dades, en minuts-------------------
void Esperem (int minuts)
{
Serial.print(" -> Esperant (minuts) :");
Serial.println( minuts);
Serial.println (" ");
for (int a=0; a<minuts; a++)
{
//delay(60000); //60000 es un minut
delay(5000); //60000 es un minut
}
}
// Fi funció temps d'espera--------------------------------------------------