Monitor Serial y Baudios // Control de temp, humedad y luz
Publicado por Lautaro Joel (3 intervenciones) el 01/07/2020 15:20:57
Buenas, estoy intentando conectar un dht22 para medir temperatura y humedad y una fotorresistencia para medir luz y que los valores se muestren en el monitor serial.
Probando solo el valor de la fotorresistencia funciona bien, tambien cuando pruebo el dht22. El problema viene cuando los quiero unir en un solo programa.
Creo que puede llegar a ser un problema de alimentacion ya que ambos van al 5v de arduino y la placa se apaga aun conectada al puerto com5 de la pc, y cuando desconecto el pin de 5v vuelve a encender.
Aun asi tengo una duda con los "Baudios". En el programa del dht uso 57600 baudios pero en el programa de la fotorresistencia ldr uso 11520, eso me genera la duda de que serial begin usar en el programa y que baudios usar en el monitor serial.
El codigo es el siguiente:
Lo que me devuelve los valores
"0
Humedad nan %tTemperatura: nan *C nan *F" (Donde 0 la luminosidad del ldr).
PROGRAMA SOLO DEL DHT:
PROGRAMA SOLO DEL LDR:
Alguna ayuda? Gracias!
Probando solo el valor de la fotorresistencia funciona bien, tambien cuando pruebo el dht22. El problema viene cuando los quiero unir en un solo programa.
Creo que puede llegar a ser un problema de alimentacion ya que ambos van al 5v de arduino y la placa se apaga aun conectada al puerto com5 de la pc, y cuando desconecto el pin de 5v vuelve a encender.
Aun asi tengo una duda con los "Baudios". En el programa del dht uso 57600 baudios pero en el programa de la fotorresistencia ldr uso 11520, eso me genera la duda de que serial begin usar en el programa y que baudios usar en el monitor serial.
El codigo es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include "DHT.h"
#define DHTTYPE DHT22
#define DHTPIN 2
const long A = 1000; //Resistencia en oscuridad en KΩ
const int B = 15; //Resistencia a la luz (10 Lux) en KΩ
const int Rc = 10; //Resistencia calibracion en KΩ
const int LDRPin = A0; //Pin del LDR
int V;
int ilum;
DHT dht(DHTPIN, DHTTYPE);
void setup()
{
Serial.begin(115200);
Serial.println("Iniciando...");
dht.begin();
}
void loop()
{
V = analogRead(LDRPin);
//ilum = ((long)(1024-V)*A*10)/((long)B*Rc*V); //usar si LDR entre GND y A0
ilum = ((long)V*A*10)/((long)B*Rc*(1024-V)); //usar si LDR entre A0 y Vcc (como en el esquema anterior)
Serial.println(ilum);
float h = dht.readHumidity(); //Leemos la Humedad
float t = dht.readTemperature(); //Leemos la temperatura en grados Celsius
float f = dht.readTemperature(true); //Leemos la temperatura en grados Fahrenheit
//--------Enviamos las lecturas por el puerto serial-------------
Serial.print("Humedad ");
Serial.print(h);
Serial.print(" %t");
Serial.print("Temperatura: ");
Serial.print(t);
Serial.print(" *C ");
Serial.print(f);
Serial.println(" *F");
delay(5000);
}
Lo que me devuelve los valores
"0
Humedad nan %tTemperatura: nan *C nan *F" (Donde 0 la luminosidad del ldr).
PROGRAMA SOLO DEL DHT:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "DHT.h"
#define DHTPIN 2 // Pin donde está conectado el sensor
//#define DHTTYPE DHT11 // Descomentar si se usa el DHT 11
#define DHTTYPE DHT22 // Sensor DHT22
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println("Iniciando...");
dht.begin();
}
void loop() {
delay(2000);
float h = dht.readHumidity(); //Leemos la Humedad
float t = dht.readTemperature(); //Leemos la temperatura en grados Celsius
float f = dht.readTemperature(true); //Leemos la temperatura en grados Fahrenheit
//--------Enviamos las lecturas por el puerto serial-------------
Serial.print("Humedad ");
Serial.print(h);
Serial.print(" %t");
Serial.print("Temperatura: ");
Serial.print(t);
Serial.print(" *C ");
Serial.print(f);
Serial.println(" *F");
}
PROGRAMA SOLO DEL LDR:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const long A = 1000; //Resistencia en oscuridad en KΩ
const int B = 15; //Resistencia a la luz (10 Lux) en KΩ
const int Rc = 10; //Resistencia calibracion en KΩ
const int LDRPin = A0; //Pin del LDR
int V;
int ilum;
void setup()
{
Serial.begin(115200);
}
void loop()
{
V = analogRead(LDRPin);
//ilum = ((long)(1024-V)*A*10)/((long)B*Rc*V); //usar si LDR entre GND y A0
ilum = ((long)V*A*10)/((long)B*Rc*(1024-V)); //usar si LDR entre A0 y Vcc (como en el esquema anterior)
Serial.println(ilum);
delay(1000);
}
Alguna ayuda? Gracias!
Valora esta pregunta


0