Introduction: Sensor BMP 180 En El LCD En Arduino

Propósito:

    • Este tutorial tiene como objetivo enseñar cómo usar el sensor BMP 180 en Arduino y cómo hacer que los datos de este aparezcan en la pantalla LCD, todo conectado a montado a travez de Arduino.

    Materiales:

    • Pantalla LCD 16 x 2
    • Arduino UNO
    • Potenciometro
    • Cables (Aprox. 20)
    • Sensor BMP 180

    Step 1: Montanje

    Este es el montaje de trabajo.

    Step 2: Código

    • Este código es una modificación de los ejemplos que vienen por defecto en las librerías del LCD y del BMP 180.

    #include <LiquidCrystral.h>

    #include<SFE_BMP180.h>

    #include<Wire.h>

    SFE_BMP180 pressure;

    #define ALTITUDE 1655.0

    LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

    void setup()

    {

    lcd.begin(16,2);

    lcd.print("REBOOT");

    if (pressure.begin())

    lcd.print("BMP180 init success");

    else

    {

    lcd.print("BMP180 init fail\n\n");

    while(1); // Pause forever.

    }

    }

    void loop()

    {

    char status;

    double T,P,p0,a;

    lcd.setCursor(0, 1);

    lcd.print("provided altitude: ");

    lcd.print(ALTITUDE,0);

    lcd.print(" meters, ");

    lcd.print(ALTITUDE*3.28084,0);

    lcd.print(" feet");

    lcd.print(millis()/1000);

    status = pressure.startTemperature();

    if (status != 0)

    {

    delay(status);

    status = pressure.getTemperature(T);

    if (status != 0)

    {

    // Print out the measurement:

    lcd.print("temperature: ");

    lcd.print(T,2);

    lcd.print(" deg C, ");

    lcd.print((9.0/5.0)*T+32.0,2);

    lcd.print(" deg F");

    status = pressure.startPressure(3);

    if (status != 0)

    {

    delay(status);

    status = pressure.getPressure(P,T);

    if (status != 0)

    {

    lcd.print("absolute pressure: ");

    lcd.print(P,2);

    lcd.print(" mb, ");

    lcd.print(P*0.0295333727,2);

    lcd.print(" inHg");

    p0 = pressure.sealevel(P,ALTITUDE); // we're at 1655 meters (Boulder, CO)

    lcd.print("relative (sea-level) pressure: ");

    lcd.print(p0,2);

    lcd.print(" mb, ");

    lcd.print(p0*0.0295333727,2);

    lcd.print(" inHg");

    a = pressure.altitude(P,p0);

    lcd.print("computed altitude: ");

    lcd.print(a,0);

    lcd.print(" meters, ");

    lcd.print(a*3.28084,0);

    lcd.print(" feet");

    }

    else lcd.print("error retrieving pressure measurement\n");

    }

    else lcd.print("error starting pressure measurement\n");

    }

    else lcd.print("error retrieving temperature measurement\n");

    }

    else lcd.print("error starting temperature measurement\n");

    delay(5000);

    }

    Step 3: