Paso 3: Código de Arduino
#include < Wire.h >#include < Adafruit_Sensor.h > //library disponible en adafruit.com
#include < Adafruit_BMP085.h > //library disponible en adafruit.com
Bmp Adafruit_BMP085 = Adafruit_BMP085(10085);
int wSpeed;
int wDirect;
temp1 int;
int press1;
wsee int;
/**************************************************************************/
/*
Función de configuración de Arduino (llamada automáticamente en el arranque)
*/
/**************************************************************************/
void setup(void)
{
Serial.Begin(9600);
/ * Inicializar el sensor * /
if(!BMP.Begin())
{
/ * Hubo un problema detectando el BMP085... Compruebe sus conexiones * /
Serial.Print ("Ooops, no BMP085 detectado... Compruebe el cableado o I2C ADDR!");
while(1);
}
}
void loop(void)
{
/ * Obtener un nuevo evento de sensor * /
evento sensors_event_t;
bmp.getEvent(&event);
WSEE=analogRead(a0);
wSpeed=map(wsee,0,1023,0,1534); después de esto me dio velocidad exacta del viento
wDirect=analogRead(A1); será diferente para el anemómetro
/ * Mostrar los resultados (la presión barométrica es una medida en hPa) * /
Si (event.pressure)
{
/ * Mostrar pressue atmosférica en hPa * /
press1=Map(Event.pressure,850,1100,0,1023);
/ * Cálculo de altitud con exactitud razonable requiere de presión *
* el nivel del mar presión para su posición en el momento los datos *
* convertido, así como de la temperatura en grados *
* centígrados. Si usted no tiene estos valores, un valor 'genérico' de *
* 1013.25 hPa puede ser utilizado (definido como SENSORS_PRESSURE_SEALEVELHPA *
* en sensors.h), pero esto no es ideal y le dará variable *
* resultados de un día a otro. *
* *
* Usted puede encontrar generalmente el valor actual de SLP mirando el tiempo *
* sitios web o centros de información ambiental cerca de cualquier importante *
Aeropuerto. *
* *
* Por ejemplo, puede comprobar la media actual de París, Francia *
* presión y nivel del mar: http://bit.ly/16Au8ol * /
/ * Primero obtenemos la temperatura actual de la BMP085 * /
Float temperatura;
bmp.getTemperature(&temperature);
temp1=Map(temperature,-30,55,0000,1023);
}
Si (wSpeed < 1000 & & wSpeed > 99) {}
Serial.Print("0"); Estos si declaraciones sumamos 0 a la
Serial.Print(wSpeed); vanguardia para crear una cadena de
} //16 números para enviar a través del USB
else if (wSpeed < 100 & & wSpeed > 9)
{
Serial.Print("00");
Serial.Print(wSpeed);
}
otra cosa if(wSpeed<10) {}
Serial.Print("000");
Serial.Print(wSpeed);
}
Else {}
Serial.Print(wSpeed);
}
Si (press1 < 1000 & & press1 > 99) {}
Serial.Print("0");
Serial.Print(press1);
}
else if (press1 < 100 & & press1 > 9)
{
Serial.Print("00");
Serial.Print(press1);
}
otra cosa if(press1<10) {}
Serial.Print("000");
Serial.Print(press1);
}
Else {}
Serial.Print(press1);
}
Si (temp1 < 1000 & & temp1 > 99) {}
Serial.Print("0");
Serial.Print(temp1);
}
else if (temp1 < 100 & & temp1 > 9)
{
Serial.Print("00");
Serial.Print(temp1);
}
otra cosa if(temp1<10) {}
Serial.Print("000");
Serial.Print(temp1);
}
Else {}
Serial.Print(temp1);
}
Si (wDirect < 1000 & & wDirect > 99) {}
Serial.Print("0");
Serial.Print(wDirect);
}
else if (wDirect < 100 & & wDirect > 9)
{
Serial.Print("00");
Serial.Print(wDirect);
}
otra cosa if(wDirect<10) {}
Serial.Print("000");
Serial.Print(wDirect);
}
Else {}
Serial.Print(wDirect);
}
Serial.Print("\n");
Delay(996); 2 - 2 retrasos para el convertidor digital analógico a
para stabalize y 996 retraso para generar intervalos de un segundo
} .