This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Problemas con la Humedad y temperatura
#1
Hola buenas tardes. Tengo un sensor de temperatura y humedad el cual cuando activo el Monitorserie aparece:
Test sensor DHT11:
Error 1: Condicion de start 1 no conocida. ¿Me podrían ayudar a quitar este error? Gracias de antemano
  Responder
#2
El sensor es un DT11? Que código utilizas?

No es un mensaje tipo, por lo que tiene que estar definido en el código.
  Responder
#3
En efecto es un DT1, perdón por no especificarlo.
  Responder
#4
El codigo exactamente es :
define DHTPIN 2 // Indicamos el pin del arduino donde conectamos el sensor

byte bGlobalErr; //para pasar el codigo de error de vuelta de las funciones
byte DHTDAT[5]; //Array para almacenar los bytes enviados por el sensor
int maxh=0,minh=100,maxt=0,mint=100,t,h; //variables para ir guardando las maximas de
// humedad y temperatura y las minimas de humedad y temperatura

void setup()
{
InitDHT(); // Inicializamos el pin empleado para leer el sensor
Serial.begin(9600); //Iniciamos comunicacion serie con el pc para ver los datos leidos
Serial.println("Test sensor DHT11:");
delay(1000); //Este delay es para esperar el tiempo recomendado para acceder al sensor (1 segundo)
}

void loop()
{
ReadDHT(); // Leemos el sensor y almacenamos el resultados en variables globales
switch (bGlobalErr)
{
case 0:
//Como en este sensor la humedad y la temperatura no nos sale con decimales,
//podemos desechar los bytes 1 y 3 de la lectura del sensor
h=DHTDAT[0];
t=DHTDAT[2];
Serial.print("Humedad relativa: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperatura: ");
Serial.print(t);
Serial.println("*C");
//Comprobacion de maximos y minimos de humedad y temperatura
if (maxh<h)
maxh=h;
if (h<minh)
minh=h;
if (maxt<t)
maxt=t;
if (t<mint)
mint=t;
Serial.print("Max: ");
Serial.print(maxh);
Serial.print(" % ");
Serial.print("Min: ");
Serial.print(minh);
Serial.print(" %\t");
Serial.print("Max: ");
Serial.print(maxt);
Serial.print(" *C ");
Serial.print("Min: ");
Serial.print(mint);
Serial.println(" *C\n");
break;
case 1:
Serial.println("Error 1: Condicion de start 1 no conocida.");
break;
case 2:
Serial.println("Error 2: Condicion de start 2 no conocida.");
break;
case 3:
Serial.println("Error 3: DHT checksum error.");
break;
default:
Serial.println("Error: Encontrado codigo irreconocible.");
break;
}
delay(1000);// Esperamos 1 segundo para la siguiente lectura
}


// Initilize pin for reading
void InitDHT(){
pinMode(DHTPIN,OUTPUT);
digitalWrite(DHTPIN,HIGH);
}

void ReadDHT(){
bGlobalErr=0;
byte dht_in;
byte i;
// Enviamos el comando "start read and report" al sensor
// Primero: ponemos a "0" el pin durante 18ms
digitalWrite(DHTPIN,LOW);
delay(18);
delay(5);//TKB, frm Quine at Arduino forum
//Segundo: ponemos a "1" el pin durante 40us,enviamos el comando de "start read" al sensor
digitalWrite(DHTPIN,HIGH);
delayMicroseconds(40);
//Tercero: Cambiamos el pin de Arduino a entrada de datos
pinMode(DHTPIN,INPUT);
delayMicroseconds(40); //Esperamos 40 us
dht_in=digitalRead(DHTPIN);
//si hay un 1 en la lectura del pin, indicamos que hay error de tipo 1
if(dht_in)
{
bGlobalErr=1;
return;
}
delayMicroseconds(80); //Esperamos 80us
dht_in=digitalRead(DHTPIN);
//si no hay un 1 en la lectura del pin, indicamos que hay error de tipo 2
if(!dht_in){
bGlobalErr=2;
return;
}
/*Despues de 40us a nivel bajo, el pin deberia de estar durante 80us a nivel alto.
Despues de esto comienza el envio del primer bit hasta alcanzar los 40 bits enviados.
The routine "read_dht_dat()" expects to be called with the system already into this low.*/
delayMicroseconds(80); //Esperamos 80us
//Ahora comienza la recepcion de datos, son 5 bytes de datos, es decir 40 bits, almacenamos en un array de 5 bytes
for (i=0; i<5; i++)
DHTDAT[i] = read_dht_dat();
//Cuarto: Volvemos a configurar el pin del arduino como salida
pinMode(DHTPIN,OUTPUT);
//QuintoLenguaonemos a "1" el pin de salida
digitalWrite(DHTPIN,HIGH);
//Comprobamos si los datos recibidos coinciden con el checksum recibido
byte DHTCHECKSUM = DHTDAT[0]+DHTDAT[1]+DHTDAT[2]+DHTDAT[3];
//Si no coincide el byte recibido de checksum con la suma de los 4 primeros bytes enviamos error tipo 3
if(DHTDAT[4]!= DHTCHECKSUM)
bGlobalErr=3;
};

byte read_dht_dat()
{
//Cogemos 8 de los bits recibidos y los devolvemos como un byte.
//Si por ejemplo recibimos 00000100 , devolvemos en decimal 4
byte i = 0;
byte result=0;
for(i=0; i< 8; i++)
{
//Entramos mientras dura el primer bit de start (a nivel bajo durante 50us) del byte
//Esperamos hasta que el pin se pone a nivel alto señalizando fin del la transmision del bit de start
while(digitalRead(DHTPIN)==LOW);
//La linea de datos debera estar ahora a nivel alto durante 27 o 70us,
//dependiendo si un "0" o un "1" esta siendo enviado respectivamente
delayMicroseconds(30); //Esperamos 30 us
if (digitalRead(DHTPIN)==HIGH)
result |=(1<<(7-i)); //Si despues de los 30us el pin permanece a "1" añadimos un 1 al byte, sino queda un "0"
//Esperamos hasta que el pin se vuelve a poner a nivel bajo,
// el cual indica la señal de start del siguiente bit de la transmision
while (digitalRead(DHTPIN)==HIGH);
}
return result; //devolvemos el resultado
}
  Responder
#5
después le hecho un ojo con calma, pero así por encima intercambiaría los valores de min y max, ya que no pintan muy razonables.... siempre que sean grdos y no mida resistencia, que es lo que devuelven muchos sensores Guiño

int maxh=0,minh=100,maxt=0,mint=100,t,h; //variables para ir guardando las maximas de
// humedad y temperatura y las minimas de humedad y temperatura

Max de 0 y min de 100?
  Responder
#6
el fallo viene en el void loop, justo después de los Serials :
break;
case 1:
Serial.println("Error 1: Condicion de start 1 no conocida.");
break;
case 2:
Serial.println("Error 2: Condicion de start 2 no conocida.");
break;
case 3:
Serial.println("Error 3: DHT checksum error.");
break;
default:
Serial.println("Error: Encontrado codigo irreconocible.");
break;
}
delay(1000);// Esperamos 1 segundo para la siguiente lectura
}
  Responder
#7
Gracias, si parece más razonable me confundí al meterlo
  Responder
#8
El problema es q si compilo me dice que todo está perfecto
  Responder
#9
Probé este:
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht (DHTPIN,DHTTYPE);
void setup (){
Serial.begin(9600);
dht.begin();

}
void loop(){
float h= dht.readHumidity();
float t= dht. readTemperature();
Serial.println("Humedad");
Serial.println(h);
Serial.println("Temperatura");
Serial.println(t);ç

delay(500);

}
Pero aparece :
sketch_jun30g.ino:1:17: fatal error: DHT.h: No such file or directory

Si me ayudaran con eso dejaría el otro.
  Responder
#10
Gracias
  Responder
#11
no tienes la librería instalada.

https://github.com/adafruit/DHT-sensor-library

baja el zip, descomprimelo y quítale el _master del nombre de la carpeta y ponla en mis documentos/arduino/library o similar, yo uso mac y no te sabría confirmar, pero es algo básico a lo que deberías de prestarle un momento.

http://www.geekfactory.mx/tutoriales/com...e-arduino/
  Responder
#12
Gracias ya la he instalado
  Responder
#13
no me aparece el fatal error
  Responder
#14
no obstante me aparece:
Read failHumedad Relativa: 0 %
Temperatura: 0 C'
Creo que no es un mensaje tipo, me lo pone con la mayoría de programasq ubo a la placa
El error puede estar en el circuito o el programa, sigo trabajando en ello.
Gracias biketrial981 me estas ayudando mucho
  Responder
#15
https://dub125.mail.live.com/att/GetAtta...0&size=Att
  Responder
#16
https://a.gfx.ms//photo_57.png
  Responder
#17
https://a.gfx.ms//photo_57.png
  Responder
#18
los dos ultimos no los miren me han salido mal al meterlos
  Responder
#19
https://dub125.mail.live.com/att/GetAtta...0&size=Att
  Responder
#20
Como conectas el sensor? A que pin?
  Responder