14 de jul. de 2013

Projeto 10 - Controle de temperatura com LCD e Cooler

Projeto 10 -  Controle de temperatura com LCD e Cooler

Olá pessoal, já vimos basicamente como utilizar um LCD com o Arduino, agora vamos fazer um pequena aplicação utilizando o mesmo esquema do projeto anterior acrescentando um cooler. Este projeto tem pouca complexidade, desde que montado com calma para não se perderem nas inserções dos jumpers.
Os códigos serão todos comentados para melhor entendimento, podendo ser retirados após a compreensão de cada linha. Bom trabalho !!!

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.


Vídeo do projeto pronto






- Se você gostou do post, por favor comente! Nos dê um feedback, isto nos incentiva a continuar! :)
- Curta nossa fan page !
- Baixe o APP Faça Com Arduino e carregue para onde você for os projetos. É simples. É fácil !!





10 comentários:

  1. Ola! Muito bom seu blog, tem um conteudo interessante.
    Sera que nao da para adaptar esse projeto para uma estufa de tabaco?
    A principal funçao e controlar a temperatura (nao precisa controlar umidade) em fahrenheit e para colocar um motor, tipo a 100 graus ele fecha a tampa de entrada de ar fazendo com que o fogo nao aumente assim controlando a temperatura e quando estiver em 99 graus ele abrisse essa tampa aumentando a temperatura novamente. Porem para colocar estes dados nele (tantos graus fecha, tantos abre) e preciso ser feito nele mesmo!
    Gostei tambem do sensor de re, e mais uma coisa, vi uma calculadora feita com arduino, porem e de 4 digitos, divide, multiplica, soma e subtrai, bem interessante tambem.
    PAREBENS PELO BLOG!!

    ResponderExcluir
    Respostas
    1. Ola Cleber muito obrigado pelo comentario e desculpa pela demora na resposta, eu gostaria de saber mais sobre o funcionamento desta estufa irei pesquisar, e posso fazer um projeto desse e postar aqui.

      Excluir
  2. Gostei muito desse projeto muito bom mesmo.
    Tem como colocar mais uns 4 cooler ? Ou pode danificar o arduino? Eu estou fazendo um projeto em uma caixa de isopor, e quero fazer os cooler ligarem quando atingir tipo uns 28 graus sera que não estraga o arduino com 4 coolers?

    ResponderExcluir
    Respostas
    1. Ola Zenon, obrigado por comentar! Coloque uma fonte externa para alimentar os coolers com uma fonte de aproximadamente 9V e 900mA (dependendo do tamanho do cooler), pois o Arduino fornece apenas 40mA.

      Excluir
  3. Opa blz..estava precisando de uma ajuda rs...esta por ai?

    ResponderExcluir
    Respostas
    1. pode passar e-mail ou outro contato?porque acho que vai ficar meio grande para explicar por aqui rs...

      Excluir
    2. Ok, envie para facacomarduino@hotmail.com

      Excluir
  4. Parabéns pelo Blog, gostaria de saber como coloco uma fonte externa de 12v para o cooler? Sou novato estou tentando aprender...

    ResponderExcluir
  5. Eu gostaria de ver um relógio com data, em um lcd destes usando o arduíno. Tem como fazer isso?

    ResponderExcluir