Buenas soy nuevo en este tema de Arduino y he hecho mi propio programa que por cierto funcionaba bien con un solo rele, el problema comenzó cuando incorpore 3 más, la acción que debería ocurrir al bajar o pasar ciertos márgenes de Temperatura no ocurre y los reles parpadean rápidanente como se ve en el vídeo, acá dejo el codigo estaría muy agradecido si alguien tiene tiempo para ayudarme
#include <DHT.h>
#include <Wire.h>
#include <LCDIC2.h>
#include <LiquidCrystal_I2C.h> //adicion librerias
#define DHTPIN 4 // entrada conexion dht22
#define DHTTYPE DHT22 // especifico tipo de sensor
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2); // led I2C 0x27, 16
//Variables int
int Sensorsuelo = A0;
float hum; // humidity valor
float temp; // temperature valor
int venti = 2;
int humid = 3;
int manta = 5;
void setup() {
pinMode(venti,OUTPUT); // Ventilador
pinMode(humid,OUTPUT); // humidifador
pinMode(manta,OUTPUT); // manta termica
digitalWrite(venti,LOW);
digitalWrite(humid,LOW);
digitalWrite(manta,LOW);
lcd.init(); // inicio lcd
lcd.backlight();
lcd.setCursor(0, 0); // mueve cursor 0,0
lcd.print("MAGIC");
(9600);
delay;(4000);
dht.begin();
lcd.begin(16,2);
lcd.init(); // inicio lcd
lcd.setCursor(0, 0);
lcd.print( "magic:");
lcd.setCursor(0, 1);
lcd.print("Cris.floating.root");
delay;(3000);
lcd.backlight();
}
void loop() {
delay(9000);
//leer datos y establecerlos en hum,temp,humsuelo
hum = dht.readHumidity();
temp = dht.readTemperature();
int hums = analogRead(Sensorsuelo);
if(temp>29){
digitalWrite(venti,HIGH);
digitalWrite(humid,HIGH);
digitalWrite(manta,LOW);
delay(20000);
digitalWrite(venti,LOW);
digitalWrite(humid,LOW);
digitalWrite(manta,LOW);
}
else{
digitalWrite(venti,LOW);
digitalWrite(humid,LOW);
digitalWrite(manta,LOW);
}
if (temp<27){
digitalWrite(venti,LOW);
digitalWrite(humid,LOW);
digitalWrite(manta,HIGH);
}
else{
digitalWrite(venti,LOW);
digitalWrite(humid,LOW);
digitalWrite(manta,LOW);
}
//monitor serial
Serial.print("Humidity: ");
Serial.print(hum);
Serial.print(" %, Temp: "); Serial.print(temp);
Serial.println(" Celsius");
//monitot lcd
lcd.setCursor(0,0);
lcd.print("HR: ");
lcd.print(hum);
lcd.print("%");
lcd.setCursor(0,1);
lcd.print("T:");
lcd.print(temp);
lcd.println(" C");
lcd.setCursor(8,1);
lcd.print("HS:");
lcd.print(hums);
delay(30000); //Delay 3min
}