Neste tutorial vamos fazer a montagem de um termostato experimental simples com Arduino. Esta montagem faz com que um relê e um LED liguem quando a temperatura baixe de um valor mínimo estabelecido ou desligue quando ultrapassar uma temperatura máxima definida.
Note que a medição de temperatura é empírica e não deve ser usada como instrumento preciso.

O Que Vou Aprender?

- Usar seu Arduino para controlar dispositivos a partir da leitura da temperatura ambiente.
- Para este experimento você pode variar a temperatura do sensor apenas segurando o mesmo com a ponta dos dedos.
- Note que da mesma maneira que estamos utilizando um relê para acender um LED, você poderia acionar qualquer outro dispositivo (um motor, por exemplo), dentro da faixa de potência do relê.

Código Fonte

Download do arquivo em formato .ino

Materiais Necessários

Para este tutorial você vai precisar de 1 Arduino Uno R3, 2 LEDs, 1 relê, 1 Resistor 1kΩ, 1 Resistor 300Ω, 1 Termistor, 1 Protoboard, 1 Cabo USB - AB e Jumpers premium. Ou você pode utilizar os componentes do Kit Iniciante com Arduino Uno R3.

Tutorial Multilógica-Shop Arduino Termostato

 

Diagrama

Tutorial Multilógica-Shop Arduino Termostato

 

Código Fonte

//Exemplo de termostato experimental simples com Arduino
//Esta montagem faz com que o rele e um Led
//liguem quando a temperatura abaixe de um minimo
//e desliguem quando ultrapasse um maximo
//A medicao de temperatura e uma aproximacao empirica
//Nao utilize como instrumento preciso e sim como um
//modelo didatico de termostato.

// rele ligado ao pino 2 digital
// Led ligado ao pino 13 digital
// divisor resistivo do termistor ligado ao pino A0 analogico

// declaracao de variaveis :
#define pino_termistor A0
int rele=2;
int led=13;
float leitura;
float leitura1;

// defino modo de atuacao :
void setup(void) {
  pinMode(rele,OUTPUT);
  pinMode(led,OUTPUT);
  Serial.begin(9600);
}

// loop infinito :
void loop(void) {
  leitura = analogRead(pino_termistor);
  Serial.print("Leitura pino A0 = ");
  Serial.println(leitura);
  leitura1 = (leitura*0.2027)-85; // Calcula a temp. aproximada
  if (leitura1 < 32) // define temperatura de acionamento
    {
     digitalWrite(rele,HIGH);  // liga rele
     digitalWrite(led,HIGH);   // liga Led
    }
  if (leitura1 > 35)  // define ponto de desligamento
    {
     digitalWrite(rele,LOW);   // desliga rele
     digitalWrite(led,LOW);    // desliga Led
    }  
  Serial.print("Temperatura aprox. Celsius = ");  //  envia e temp. para o monitor serial
  Serial.println(leitura1);
  Serial.println("");
  delay(2500);
}