DHT11 -> mostrar temp y hum en display de 7 seg - 4 caracteres


hola

voy montar un prototipo testeado y funcionando en su ubicación, pero necesito que indique la humedad en un display. tengo un por aquí de cuatro caracteres y 7 segmentos.

he hecho el siguiente cableado:


este código funciona la perfección:
code: [select]

// include library found @
// https://docs.google.com/file/d/0bwrp4uluzcpnde9owty0m3bncta/edit
#include "sevseg.h"
 
//create instance of object.
sevseg sevseg;
 
void setup() {
  // set pins
  // arguments :
  // first 0 common cathode
  // following 0 11 numbers arduino pins
  // connected display in following order
  // 1,2,3,4,a,b,c,d,e,f,g,dp
  sevseg.begin(0,0,1,2,3,4,5,6,7,8,9,10,11);
}
 
void loop() {  
  // prepare number display, , dot position
  // (0 3, other number means no dot)  
  sevseg.newnum(1234,0);
  // display number
  sevseg.printoutput();  
  // maintain display wiring,
  // forced loop on commands rapidly
}


este es el código que tengo:
code: [select]

int sensor = 13; // pin donde va conectado el sensor de temperatura y humedad dht11
int rele = 12; // pin donde va conectado el rele
int on = low; // variable para activar el rele (high = apagado / low = encendido) ?hago algo mal?
int off = high; // variable para desactivar el rele
//int ledok = 6; // led verde - todo ok // eliminado para poder conectar el display
//int lederr = 7; // led rojo - error // eliminado para poder conectar el display

#include "sevseg.h" // carga la libreria para el display
#include <dht.h> // carga la libreria del sensor
#define dhtpin sensor // define el pin 4 para el sensor
#define dhttype dht11   // define el tipo de sensor dht 11

sevseg sevseg;

dht dht(dhtpin, dhttype);
//create instance of object.




int hmax = 70; // humedad maxima la que se activa el extractor
int tol = 5 ; // rango de seguridad para evitar que se encienda de manera intermitente el ventilador

void setup() {
  // put setup code here, run once:
  // serial.begin(9600); // activamos el monitor serie 9600 bauds // desactivado - da problemas con el display
  pinmode(rele, output); // activamos el pin rele como salida para el rele

  dht.begin(); // iniciamos el sensor de humedad

  // set pins
  // arguments :
  // first 0 common cathode
  // following 0 11 numbers arduino pins
  // connected display in following order
  // 1,2,3,4,a,b,c,d,e,f,g,dp
  sevseg.begin(0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 21);

}

void loop() {
  // aqui se leen los datos del sensor y se envian por el monitor de serie

  int h = dht.readhumidity();
  int t = dht.readtemperature();

  // check if returns valid, if nan (not number) went wrong!
  if (isnan(t) || isnan(h) || h == 0 && t == 0) {
    serial.println("failed read dht");
    //digitalwrite(lederr, high); // eliminado para poder conectar el display
  } else {
    // digitalwrite(ledok, high); // eliminado para poder conectar el display
    serial.print("humidity: ");
    serial.print(h);
    serial.print(" %\t");
    serial.print("temperature: ");
    serial.print(t);
    serial.println(" *c");
    delay(2000);

  }

  // empieza la parte del rele que controla el ventilador
  if (h > hmax) {
    digitalwrite(rele, on);

  }
  if (h < hmax - tol) {
    digitalwrite(rele, off);
  }

  // prepare number display, , dot position
  // (0 3, other number means no dot)
  int num;
  char texto = h + t;
  num = atoi("texto");
  sevseg.newnum(num, 2);
  // display number
  sevseg.printoutput();
  // maintain display wiring,
  // forced loop on commands rapidly





}


y tengo dos problemas:
-con el sensor desconectado, si activo el puerto serie para leer los datos en el ordenador, el display no muestra los dígitos correctamente. si comento la línea del serial.begin todo ok, salvo que cada dos segundos aprox, hace un parpadeo
-si conecto el sensor, el parpadeo es la inversa. el display está apagado y cada dos segundos aprox, muestra fugaazmente el número.

¿qué puede ser?

gracias
un saludo

pines 0 y 1 no puedes usarlos para el display si usas el puerto serie.


Arduino Forum > International > Español > Software (Moderators: surbyte, Hector_A) > DHT11 -> mostrar temp y hum en display de 7 seg - 4 caracteres


arduino

Comments