Projeto temperatura com display

PROJETO 10 - CONTROLE DE TEMPERATURA COM LCD E COOLER


Componentes necessários

1 Protobord
1 LCD (JHD 162A de 16 colunas e 2 linhas) ou outro modelo com back light
2 Potenciômetros de 10 K ohms (Um para o contraste e o outro para a luz de fundo) *
1 Sensor LM35
1 Cooler**
Fios jumpers

*Este modelo que utilizei não possui o back light, porém o projeto foi montado com se tivesse essa função.
**Dependendo do cooler que você utilizar será necessário uma fonte externa para alimentá-lo. Uma vez que a saída do Arduino possui apenas 5V.

Conectando os componentes
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB. Agora, pegue o LCD, os potenciômetros, o sensor LM35, o cooler
e os fios e conecte-os como mostra a figura.








Não importa se você utiliza fios de cores diferentes ou furos diferentes na protoboard, desde que os componentes e os fios estejam conectados na mesma ordem da figura. Tenha cuidado ao inserir os componentes na protoboard. Caso sua protoboard seja nova, a superfície dos furos ainda estará rígida. A não inserção cuidadosa dos componentes pode resultar em danos. Certifique-se de que todos os componentes estejam conectados corretamente. Quando você estiver seguro de que tudo foi conectado corretamente, ligue seu Arduino e conecte o cabo USB.


Para facilitar a montagem segue abaixo como inserir os jumpers no LCD/Arduino.

- Pino 1 do LCD ligado ao GND do Arduino;
- Pino 2 do LCD ligado ao 5V do Arduino;
- Pino 3 do LCD ligado ao pino central do primeiro potenciômetro (controle de contraste);
- Pino 4 do LCD ligado ao pino digital 9 do Arduino;
- Pino 5 do LCD ligado ao GND do Arduino;
- Pino 6 do LCD ligado ao pino digital 8 do Arduino;
- Pino 11 do LCD ligado ao pino digital 5 do Arduino;
- Pino 12 do LCD ligado ao pino digital 4 do Arduino;
- Pino 13 do LCD ligado ao pino digital 3 do Arduino;
- Pino 14 do LCD ligado ao pino digital 2 do Arduino;
- Pino 15 do LCD ligado ao pino central do segundo potenciômetro (controle do brilho);
- Pino 16 do LCD ligado ao GND do Arduino.
Os demais pinos não serão utilizados neste projeto.


Agora vamos ao código

// Projeto 10 -  Controle de temperatura com LCD e Cooler

#include <LiquidCrystal.h>
#include <Limits.h>

const int sensorTemp = 0; // Pino analógico em que o sensor de temperatura está conectado

int fan = 13;  // Declara o pino digital 13 para acionar o cooler
int tempPin = 0;  // Declara o pino analógico 0 para ler o valor do sensor de temperatura
int valorSensorTemp = 0;  // Variável usada para ler o valor de temperatura
int valorTemp = INT_MAX;  // Variável usada para armazenar o menor valor de temperatura

LiquidCrystal lcd(9, 8, 5, 4, 3, 2);  // Cria um objeto LCD e atribui os pinos

void setup() {
  pinMode (fan, OUTPUT);   // Define o pino 13 como saída
  lcd.begin(16, 2);   // Define o display com 16 colunas e 2 linhas
}

void loop() {
   
  /*Para evitar as grandes variações de leitura do componente
  LM35 são feitas 6 leitura é o menor valor lido prevalece*/
  valorTemp  = INT_MAX; // Inicializando a variável com o maior valor int possível
  for (int i = 1; i <= 6; i++) {  // Lendo o valor do sensor de temperatura
    valorSensorTemp = analogRead(sensorTemp);  

    valorSensorTemp *= 0.54 ;  // Transforma o valor lido do sensor de temperatura em graus Celsius aproximados
   
     if (valorSensorTemp < valorTemp) {  // Mantendo sempre a menor temperatura lida
      valorTemp = valorSensorTemp;
    }
  
   delay(100);
  }  
   
    if(valorTemp > 35)  // Indica condição para acionamento do cooler
    {
      lcd.setCursor(0,1);  // Define a coluna 0 e linha 1 do LCD onde será impresso a string
      lcd.write("Fan ligado !");  // Imprime no LCD
      digitalWrite(fan, HIGH);  // Quando condição verdadeira, liga o cooler
    }
    else
    {
      lcd.setCursor(0,1);
      lcd.write("Fan desligado !");
      digitalWrite(fan, LOW);  // Desliga cooler quando este estiver a baixo da valorTemp, indicando no LCD que esta desligado
    }
    delay(1000);
   
  // Exibindo valor da leitura do sensor de temperatura no display LCD
  lcd.clear();  // Limpa o display do LCD    
  lcd.print("Temperatura:");  // Imprime a string no display do LCD                
  lcd.print(valorTemp);
  lcd.write(B11011111); // Símbolo de graus Celsius
  lcd.print("C");
  delay(2000); // Aguarda 2 segundos
}


Para certificar se o código está correto pressione o botão Verify/Compile. Se tudo estiver correto pressione o botão Upload para fazer o upload do código para seu Arduino. Pronto, agora você irá visualizar no visor do LCD a temperatura que está no ambiente e se o cooler está desligado ou ligado - dependendo da temperatura que você estipulou para acioná-lo. Caso seja necessário, ajuste o contraste e luz de fundo para melhor visualização.