Introduction: Sensor De Temperatura Y Presión En La Pantalla Display. Maria Jose Oviedo

En este tutuorial les voy a mostrar como conectar un sensor de temperatura y presión BMP180 con el crystal display. Este display en una pantalla hecha de liquido que muestra información que se le da la orden de hacer. El sensor de temperatura y presión muestra la temperatura en la que nos encontramos y en la presión que estamos.

Vamos a ver como hacer la conexión y un código para poder hacer que la temperatura que el sensor detecta y la presión, se muestren en el crystal display.

Step 1: Paso 1: Materiales

Los materiales que se necesitan para poder conectar un display y un sensor de temperatura para hacer que la temperatura se refleje en el display son:

Arduino Uno

Protoboard

16 Cables

Potenciometro

Crystal display (QY-1602A)

Conector USB al Arduino

Sensor de temperatura y presión.

1 Resistencia

Soldador

Estaño

Step 2: Paso 2: Soldar El LCD Con Los Conectores De Metal. Y El Sensor a Los Cables.

El LCD (crystal display) viene con unos conectores aparte para poder conectar este display al protoboard y mandar una orden al arduino.

Para esto, cogemos el estaño y el soldador, insertamos los conectores a los huecos del display y se empieza a derretir el estaño al rededor de todos los conectores hasta que queden bien soldados, asegurándonos de que no se vaya a soltar. Cuando veamos una bolita de "metal" al rededor de todos los conectores podemos estar seguros de esto.

Después soldamos el sensor a los cables para que se puedan conectar al arduino.

Step 3: Paso 3: Hacer El Montaje

Sensor:

lado izquierdo- A4.

Mitad izquierda- A5

Mitad derecha- GND

Derecho-5V

Display:

Pin12

Pin11

Pin5

Pin4

Pin3

Pin2

Step 4: Paso 4: Librerías

Para poder lograr el código necesitamos baja algunas librerías que son:

SFE BMP180.h

Wire.h

LiquidCrystal.h

Incluirlas en el código:

#include
#include #include // You will need to create an SFE_BMP180 object, here called "pressure": SFE_BMP180 pressure; LiquidCrystal lcd(12, 11, 5, 4, 3, 2); double baseline; // baseline pressure

Step 5: Paso 5: Código

#include
#include #include // You will need to create an SFE_BMP180 object, here called "pressure":

SFE_BMP180 pressure;

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

double baseline; // baseline pressure

void setup() {

Serial.begin(9600);

Serial.println("REBOOT");

lcd.begin(16, 2);

// Initialize the sensor (it is important to get calibration values stored on the device).

if (pressure.begin())

lcd.println("BMP180 init success");

else {

Serial.println("BMP180 init fail (disconnected?)\n\n");

while(1); // Pause forever. }

// Get the baseline pressure:

baseline = getPressure();

lcd.setCursor(0, 1);

Serial.print("baseline pressure: ");

Serial.print(baseline);

Serial.println(" mb"); }

void loop() { double a,P;

// Get a new pressure reading:

P = getPressure();

// Show the relative altitude difference between

// the new reading and the baseline reading:

a = pressure.altitude(P,baseline);

lcd.print("relative altitude: "); if (a >= 0.0) lcd.print(" ");

// add a space for positive numbers

lcd.print(a,1);

lcd.print(" meters, ");

if (a >= 0.0) Serial.print(" ");

// add a space for positive numbers lcd.print(a*3.28084,0);

lcd.println(" feet");

delay(500); }

double getPressure() {

char status; double T,P,p0,a;

// You must first get a temperature measurement to perform a pressure reading.

// Start a temperature measurement:

// If request is successful, the number of ms to wait is returned.

// If request is unsuccessful, 0 is returned.

status = pressure.startTemperature();

if (status != 0) {

// Wait for the measurement to complete:

delay(status);

// Retrieve the completed temperature measurement:

// Note that the measurement is stored in the variable T.

// Use '&T' to provide the address of T to the function.

// Function returns 1 if successful, 0 if failure.

status = pressure.getTemperature(T);

if (status != 0) {

// Start a pressure measurement:

// The parameter is the oversampling setting, from 0 to 3 (highest res, longest wait).

// If request is successful, the number of ms to wait is returned.

// If request is unsuccessful, 0 is returned.

status = pressure.startPressure(3);

if (status != 0) {

// Wait for the measurement to complete:

delay(status);

// Retrieve the completed pressure measurement:

// Note that the measurement is stored in the variable P.

// Use '&P' to provide the address of P.

// Note also that the function requires the previous temperature measurement (T).

// (If temperature is stable, you can do one temperature measurement for a number of pressure measurements.) // Function returns 1 if successful, 0 if failure.

status = pressure.getPressure(P,T);

if (status != 0) {

return(P);

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

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

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

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

}

Step 6: Paso 6: Explicación De Código

Primero, incluimos las librerías que vamos a descargar.

Segundo, nombramos todos los pines a los que se conecta el LCD (crystal display).

Tercero, ponemos la presión de base.

Cuarto, se pone el void setup en la que establecemos la velocidad de la obediencia de esta orden en el crystal display.

Quinto, se pone el void loop el cual establece que es lo que el código manda a hacer. En este caso es mandar una orden del arduino al computador para que la temperatura y la presión que muestra el sensor BMP180 y que se vea en e cresta display.

Step 7: Paso 7: Verificar

Ya conectado el arduino al computador te aseguras de tener el arduino conectado en herramientas al comando. Después subes el código y revisas el monitor serial para ver si la temperatura y la presión salen en este. Después ya te aseguras de que te aparezca la misma información en el crystal display.