Buenas, estoy haciendo un código para el sensor DHT11, en el que se imprima en una pantalla, los datos que obtengamos, para ello el valor se va midiendo cada dos segundos y medio para que aparezca una flecha alado si el valor ha incrementado, se ha mantenido o ha decrecido. Lo que pasa es que cuando imprimo por separado la H y la T va perfecto, pero cuando lo imprimo en el mismo código, solo aparece la Humedad.
// Incluimos la librería de control del sensor DHT11
#include "DHT.h"
#include <Keypad.h>
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
byte const ANCHO_PANTALLA = 128; // ancho pantalla OLED
byte const ALTO_PANTALLA = 64; // alto pantalla OLED
// Objeto de la clase Adafruit_SSD1306
Adafruit_SSD1306 display(ANCHO_PANTALLA, ALTO_PANTALLA, &Wire, -1);
// Definimos el pin en el que está conectado el sensor.
const int DHT_Pin = 2;
// Creamos un objeto tipo DHT que denominaremos Sensor:
// - Indicando que está conectado al pin DHT_Pin
// - Y que es un sensor tipo DHT11
DHT Sensor(DHT_Pin, DHT11);
// Variables donde almacenaremos los valores previos
// de la Humedad y la Tempeatura.
float P_H = 0;
float P_T = 0;
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
// Activamos el puerto Serial y el objeto Sensor.
Serial.begin(9600);
Sensor.begin();
delay(2500); // damos tiempo para la activación del sensor.
display.clearDisplay();
}
void loop() {
float H = Sensor.readHumidity(); // Lee la Humedad
float T = Sensor.readTemperature(); // Lee la Temperatura
// Si los nuevos valores son distintos a los anteriores
// mostramos los nuevos y los almacenamos como previos.
if(H>P_H){
display.clearDisplay();
// Mostramos la Humedad en el monitor Serial
display.setTextSize(1);
// Color del texto
display.setTextColor(SSD1306_WHITE);
// Posición del texto
display.setCursor(16, 0);
// Escribir texto
display.println("Humedad...."); // imprimir en pantalla un texto
display.setCursor(10, 10);
display.setTextSize(2);
display.println(H); //imprimir en pantalla valor
display.setCursor(75, 10);
display.println("%"); // imprimir en pantalla un texto
display.setCursor(85, 10);
display.print((char) 24);
display.display();
}
else if(H<P_H){
display.clearDisplay();
// Mostramos la Humedad en el monitor Serial
display.setTextSize(1);
// Color del texto
display.setTextColor(SSD1306_WHITE);
// Posición del texto
display.setCursor(16, 0);
// Escribir texto
display.println("Humedad...."); // imprimir en pantalla un texto
display.setCursor(10, 10);
display.setTextSize(2);
display.println(H); //imprimir en pantalla valor
display.setCursor(75, 10);
display.println("%"); // imprimir en pantalla un texto
display.setCursor(85, 10);
display.print((char) 25);
}
else if(H==P_H){
display.clearDisplay();
// Mostramos la Humedad en el monitor Serial
display.setTextSize(1);
// Color del texto
display.setTextColor(SSD1306_WHITE);
// Posición del texto
display.setCursor(16, 0);
// Escribir texto
display.println("Humedad...."); // imprimir en pantalla un texto
display.setCursor(10, 10);
display.setTextSize(2);
display.println(H); //imprimir en pantalla valor
display.setCursor(75, 10);
display.println("%"); // imprimir en pantalla un texto
display.setCursor(85, 10);
display.println("-");
display.display();
}
else if(T>P_T){
display.clearDisplay();
// Mostramos la Humedad en el monitor Serial
display.setTextSize(1);
// Color del texto
display.setTextColor(SSD1306_WHITE);
// Posición del texto
display.setCursor(16, 30);
// Escribir texto
display.println("Temperatura...."); // imprimir en pantalla un texto
display.setCursor(10, 40);
display.setTextSize(2);
display.println(T); //imprimir en pantalla valor
display.setCursor(80, 40);
display.setTextSize(2);
display.println("C"); // imprimir en pantalla un texto
display.setCursor(90, 40);
display.setTextSize(2);
display.print((char) 24);
display.display();
}
else if(T<P_T){
//Mostramos la Humedad en el monitor Serial
display.setTextSize(1);
// Color del texto
display.setTextColor(SSD1306_WHITE);
// Posición del texto
display.setCursor(16, 30);
// Escribir texto
display.println("Temperatura...."); // imprimir en pantalla un texto
display.setCursor(10, 40);
display.setTextSize(2);
display.println(T); //imprimir en pantalla valor
display.setCursor(80, 40);
display.setTextSize(2);
display.println("C"); // imprimir en pantalla un texto
display.setCursor(90, 40);
display.setTextSize(2);
display.print((char) 25);
display.display();
}
else if(T==P_T){
// Mostramos la Humedad en el monitor Serial
display.setTextSize(1);
// Color del texto
display.setTextColor(SSD1306_WHITE);
// Posición del texto
display.setCursor(16, 30);
// Escribir texto
display.println("Temperatura...."); // imprimir en pantalla un texto
display.setCursor(10, 40);
display.setTextSize(2);
display.println(T); //imprimir en pantalla valor
display.setCursor(80, 40);
display.setTextSize(2);
display.println("C"); // imprimir en pantalla un texto
display.setCursor(90, 40);
display.setTextSize(2);
display.println("-");
display.display();
}
P_H = H;
P_T = T;
// Esperamos antes de hacer la siguiente lectura.
delay (2500);
}
Saludos