Buenas noches, estoy tratando de hacer encender unas calderas con un rele cuando la temperatura sea menor que 24 y apaque cuando sea mayor a 34, pero el rele no prende. les dejo datos y codigo usado. placa arduino leonardo, sensor DS18B20. #include <Wire.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>
/*
Programa: LCD Tutorial
Autor: Humberto Higinio
Web: www.humbertohiginio.com
Canal de Youtube: Humberto Higinio - YouTube
Video Exclusivo para mi canal de Youtube
Todos los Derechos Reservados - 2015
Código de Dominio Público
*/ #define ONE_WIRE_BUS 1
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
Yo tengo esta parte de codigo para activar el compresor del aire acondicionado de un automovil cuando la temperatura del evaporador es superior a 15 °C y lo apaga cuando llega a una temperatura inferior a 3°C creo que es lo que quieres hacer lo explicare lo mejor posible lo que hace e intenta agregarlo a tu código modificando los nombres de acuerdo con lo que tengas y las salidas que tengas y la lógica que funcionen tus relés.
thresholdLowEvaporador = 3, // Umbral de temperatura Apagado (Embrague Magnetico)
thresholdHighEvaporador = 15; // Umbral de temperatura Encendido (Embrague Magnetico)
void controlAutomatico()
{
if (estadoActivacionAc == 1) // Variable que indica que se ha activado el aire acondicionado por el ususario
{
if (!estadoAcTemperatura && tempEvaporador > thresholdHighEvaporador) { // estadoACtemperatura significa que que si esta apagado y la temperatura es superior a la establecida cambie el estado de la variable a 1 para que no se vuelva a entrar en la condición y active el compresor, en tu caso el rele
estadoAcTemperatura = 1;
digitalWrite(cluchRelay, HIGH);
}
if (estadoAcTemperatura && tempEvaporador < thresholdLowEvaporador) { // estadoAcTemperatura en este caso como es 1 y la temperatura es inferior a la establecida en el umbral cambia de estado a 0 y desactiva el compresor, en tu caso el rele
estadoAcTemperatura = 0;
digitalWrite(cluchRelay, LOW);
}
}
else
{
digitalWrite(cluchRelay, LOW);
}
}
Espero que logres hacerlo funcionar por tu cuenta si no pregunta de nuevo por aquí, no dispongo de mucho tiempo por lo que no lo adapto a tu código.
if (Temperature < 24.0)
digitalWrite(relee, LOW); // esto activa el rele. Logica inversa
if (Temperature > 34.0)
digitalWrite(relee, HIGH); // esto apaga el rele. Logica inversa
Como nota antes de todo... si piensas usar el arduino en un ambiente industrial.
Te recomiendo desde ya que lo cambies por un relevador de estado solido.
Te aseguro que te vas a ahorrar muchisimos problemas.