hola soy nuevo en el foro y estoy empezando en el mundo arduino. bueno al grano, estoy tratando de armar un indoor automatizado y hasta ahora tengo el manejo del sensor, pero resulta que por algún motivo el relay que maneja un ventilador no se activa (ya provee el cableado y las conexiones esta todo bien, probé de activar y desactivar el realy y me funciona bien).
les dejo el codigo ppor si alguno me puede ayudar gracias desde ya saludos.
LiquidCrystal_I2C lcd(0x27, 16, 2); // configuracion display 16x2
// defino pin conectado al sensor AM2322
#define DHTPIN 2 // pin 2 digital
#define DHTTYPE DHT22 // DHT 22 (AM2302)
DHT dht(DHTPIN, DHTTYPE); // LED pins
int relay1 = 8;
int boton1 = 9;
void setup() {
pinMode(relay1, OUTPUT);
pinMode(boton1,INPUT_PULLUP);//configuracion de pulsador (estado = 1, PULLUP)
Serial.begin(9600); // configoracion monitor serial
dht.begin();
lcd.init(); // inicializa lcd
lcd.backlight();
lcd.clear();
lcd.setCursor(1, 0);
lcd.print("SR ELECTRONIC");
lcd.setCursor(1, 1);
lcd.print("SR ELECTRONIC");
delay(3000);
}
void loop() {
if(digitalRead(boton1)==0){
lcd.backlight();
delay(2000);
}
if(digitalRead(boton1)==0){
lcd.noBacklight();
}
float h = dht.readHumidity(); //variable humedad
float t = dht.readTemperature(); //variable temperatura
// verifica lectura de sensor AM2322
if (t >= 23.00) {
digitalWrite(relay1, HIGH); // manda un 1 al pin 8
Serial.println(" VENTILADOR ACTIVADO ");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("VENTILADOR");
lcd.setCursor(0, 1);
lcd.print("ACTIVADO");
delay(1000);
}
if (t <= 19.00) {
digitalWrite(relay1, LOW); // manda un 0 al pin 8
}
if (isnan(t) || isnan(h)) {
Serial.println(F("falla de lectura"));
lcd.setCursor(0, 0);
lcd.clear();
lcd.print("FALLA DE LECTURA");
lcd.setCursor(0, 1);
lcd.print("SENSOR AM2322");
}
else {
Serial.print(F("Humedad: "));
Serial.print(h);
Serial.print(F(" %\t"));
Serial.print(F("Temperatura: "));
Serial.print(t);
Serial.println(F(" C"));
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Humedad:");
lcd.setCursor(8, 0);
lcd.print(h);
lcd.print("%");
lcd.setCursor(0, 1);
lcd.print("Temp:");
lcd.setCursor(5, 1);
lcd.print(t);
lcd.print("C");
}
delay(3000);
}