Problemas com relé

lmeireles43:
Coloquei o comando para o resfriador e o aquacedor logo abaixo do no more adresseses pois achei que travava, porém não é isto que acontece, o relé fica ligando e desligando..... fiz a leitura da entrada como vc falou e ficou perto dos 280 com o sensor desplugado e 1021 com ele plugado... ou seja quando ele fizer a leitura perto dos 280 eu quero que desligue o aquecedor e o resfiador e ligue uma luz de alerta... como fazer isto?

Quando compilas o programa, aparecem alguns warnings? (provavelmente não por causa dos settings do Arduino)
Existe a remota possibilidade de estares a usar a variável float sem inicializares... daí dar problemas.

Eu não tenho a certeza do que é que o return faz dentro da loop, por isso nada como fazer assim:

if ( !ds.search(addr)) {
    Serial.println("No more addresses.");
    Serial.println();
    digitalWrite(LED_ERRO, HIGH); //ligar uma luzinha para dar erro... 
    while (!ds.search(addr) {  //enquanto não encontrar o sensor, fica preso aqui a procurar. 
        ds.reset_search();
        delay(250);
    }//return;
  }

Ou então, uma solução mais "civilizada"...

#include <OneWire.h>
#include <LiquidCrystal.h>
#define Luz_Fundo  6

LiquidCrystal lcd(8, 7, 5, 4, 3, 2);
OneWire  ds(A15);  // on pin 10

void setup(void) {
  Serial.begin(9600);
  pinMode(Luz_Fundo,OUTPUT); //define o pino como saída
   lcd.begin(16, 2); //inicia o lcd com 2 linhas e 16 colunas
   digitalWrite(Luz_Fundo,HIGH); // Liga a luz do display.
}

void loop(void) {
  byte i;
  byte present = 0;
  byte type_s;
  byte data[12];
  byte addr[8];
  float celsius;
  
  if ( !ds.search(addr)) {
    Serial.println("No more addresses.");
    Serial.println();
    ds.reset_search();
    delay(250);
//    return;
  } else { //se o sensor estiver bom... corre esta parte do programa. 
   ds.reset();
  ds.select(addr);
  ds.write(0x44,1);         // start conversion, with parasite power on at the end
  
  delay(1000);     // maybe 750ms is enough, maybe not
  // we might do a ds.depower() here, but the reset will take care of it.
  
  present = ds.reset();
  ds.select(addr);    
  ds.write(0xBE);         // Read Scratchpad

 for ( i = 0; i < 9; i++) {           // we need 9 bytes
    data = ds.read();
 }
  // convert the data to actual temperature
unsigned int raw = (data[1] <<  | data[0];
  if (type_s) {
    raw = raw << 3; // 9 bit resolution default
    if (data[7] == 0x10) {
      // count remain gives full 12 bit resolution
      raw = (raw & 0xFFF0) + 12 - data[6];
    }
  } else {
    byte cfg = (data[4] & 0x60);
    if (cfg == 0x00) raw = raw << 3;  // 9 bit resolution, 93.75 ms
    else if (cfg == 0x20) raw = raw << 2; // 10 bit res, 187.5 ms
    else if (cfg == 0x40) raw = raw << 1; // 11 bit res, 375 ms
    // default is 12 bit resolution, 750 ms conversion time
  }
  celsius = (float)raw / 16.0;
  Serial.print("  Temperature = ");
  Serial.print(celsius);
  Serial.print(" Celsius, ");
  lcd.setCursor(0,0);
  lcd.print(celsius);
} //fim do else. 
}

Como o Hugo disse, ter as variáveis ali por inicializar não é boa prática.

Quanto ao teu controlo de temperatura... se apenas tivesses uma fonte de energia (aquecedor, arrefecedor), o controlo de termostato funcionaria (duvido que fosse óptimo) com uma histerese tão pequena (dependendo onde tens o sensor e onde tens o actuador). No entanto, com duas fontes de energia isso vai provocar fazer com que o sistema descontrole completamente.
Qual é a gama de conforto que os peixes necessitam? Certamente que serão entre 3 a 5 graus, não? Porque não usar essa gama para a tua histerese?

Outra questão:
Qual é em média a temperatura da tua casa? Eu acredito que não tenhas um ar condicionado para arrefecer no verão, já aquecer no Inverno certamente que terás algo que coloque a temperatura da casa acima daqueles 5 que falaste anteriormente. Tens ideia de qual é a temperatura da casa durante o Inverno? Efectivamente esse será o teu limite baixo para o sistema de controlo.

Tu falaste em ventoínhas para arrefecer a água. Que ventoínhas são essas? São ventoínhas de 230V? Ou ventoínhas de 12? Se tiveres ventoínhas de 12V, poderias implementar diferentes controlos para a temperatura da água.
Por exemplo, para aquecer colocar um controlo tipo termostato (on/off) com o relé e resistência e para arrefecer usar um PWM para controlar a ventoínha e podias ver um PID por exemplo...
Isto não são coisas necessárias... apenas ideias para melhorar o sistema.