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.
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.
