Hola, quiero hacer un proyecto el cual me muestre la distancia de un objeto, la humedad y temperatura.
Conectar el dht11 solo no fue ningun problema, al igual que el hrs-04.
El problema vino cuando intente conectar ambos sensores a la ves.
el sensor de distancia no tomaba los datos y el dht daba error al leer, aca les dejo mi codigo.
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
#define Pecho 6
#define Ptrig 7
long duracion, distancia;
void setup(){
Serial.begin(9600);
dht.begin();
pinMode(Pecho, INPUT);
pinMode(Ptrig, OUTPUT);
}
void Distancia(){
digitalWrite(Ptrig, LOW);
delayMicroseconds(2);
digitalWrite(Ptrig, HIGH);
delayMicroseconds(10);
digitalWrite(Ptrig, LOW);
duracion = pulseIn(Pecho, HIGH);
distancia = (duracion/2) / 29;
}
void loop(){
float h=dht.readHumidity();
float t=dht.readTemperature();
Serial.print("Humedad: ");
Serial.print(h);
Serial.println("%");
Serial.print("Temperatura: ");
Serial.println(t);
Serial.print(distancia);
delay(1000);
}
Cual es mi error?.
PD: si mi codigo es bastante malo, es porque recien estoy empezando en esto y en cada proyecto voy aprendiendo un poco mas.
I copied your code and with only a couple of changes (commented) ran the code on my Uno (ver. 1.04 of IDE) set up with an HCSR04 ahd DHT11 using you pin definitions. It runs fine, reporting accurate distance, temperature and humidity. If it still does not work, double check your wiring.
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
#define Pecho 6
#define Ptrig 7
long duracion, distancia;
void setup(){
Serial.begin(9600);
dht.begin();
pinMode(Pecho, INPUT);
pinMode(Ptrig, OUTPUT);
}
void Distancia(){
digitalWrite(Ptrig, LOW);
delayMicroseconds(2);
digitalWrite(Ptrig, HIGH);
delayMicroseconds(10);
digitalWrite(Ptrig, LOW);
duracion = pulseIn(Pecho, HIGH);
distancia = (duracion/2) / 29;
}
void loop(){
float h=dht.readHumidity();
float t=dht.readTemperature();
Distancia(); // added call to distance
Serial.print("Humedad: ");
Serial.print(h);
Serial.println("%");
Serial.print("Temperatura: ");
Serial.println(t);
Serial.print("Distancia: "); //label for distance
Serial.println(distancia);
Serial.println(); // blank line between readings
delay(1000);
}
Output
Humedad: 33.00%
Temperatura: 26.00
Distancia: 174
Humedad: 33.00%
Temperatura: 26.00
Distancia: 174
I used the DHT library from here:
DHT library