Menu

Aula 007 - Monitorando a temperatura + Set Point ajustável

Objetivo: Agora vamos ler a varaível temperatura, mostrar no LCD e compará-la com com set pointe ajustável e se esta for maior o Motor deverá ser ligado.

Usaremos como sensor o LM 45 um sinal de 0 a 1VDC, com uma resolução de 10mV/graus Celcius e o arduino nos fornecerá um sinal digital de 10 bits (0 a 206) que converteremos de 0 a 100 °C para exibirmos no LCD.

O Set point poderá ser ajustado através do potenciômetro.

O código...
//-------------------------------------------------------------//
//  Projeto Desenvolvedores 4.0  - Desenvolvimento com Arduino
//  Programa/hardware: 007 - Monitorando a temperatura com Set Point
//  Autor:Clodoaldo Silva
//  Revisão: 26Abr2020
//---------------------------------------------------------------

//inclui a biblioteca do LCD
#include <LiquidCrystal.h>
//http://www.arduino.cc/en/Tutorial/LiquidCrystalDisplay

//DEFINIÇÕES DO HARDWARE DE DESENVOLVIMENTO
//Entradas digitais
#define S1 A0    //Nomeia o pino A0 (analógico) como (digital)
#define S2 A1    //indem
#define S3 A2    //indem
#define S4 A3    //indem

//Entradas analógicas
#define Sinal_01 A4   //Preparado p/ receber sinais analógico  
#define Sinal_02 A5   //indem  

//Saídas Digitais 
#define LED_vermelho 10    //define do pino 10 como saída
#define LED_amarelo 9    //define do pino 9 como saída
#define LED_verde 8    //define do pino 8 como saída
#define Lampada 7   //define do pino 7 como saída
#define Motor 6   //define do pino 6 como saída

//DEFINIÇÕES E TIPOS DE VARIÁVEIS

float Valor_AD1 = 0;  // Valor lido no pino A4
float Set = 0;      // variável trabalhada p/ ler tensão

float Valor_AD2 = 0;  // Valor lido no pino A5
float Temp = 0;      // variável trabalhada p/ ler temperatura


//DEFINE PINOS PARA LCD JÁ NA BIBLIOTECA
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
/*
   Respectivamente
   LCD RS pin to digital pin 12
   LCD Enable pin to digital pin 11
   LCD R/W pin to ground
   LCD D4 pin to digital pin 5
   LCD D5 pin to digital pin 4
   LCD D6 pin to digital pin 3
   LCD D7 pin to digital pin 3
*/
void setup()
{
  // Inicializa o LCD com 20 colunas e 4 linhas
  lcd.begin(20, 4);
  
  //Configurando os pinos definidos como saídas.
  pinMode(LED_vermelho, OUTPUT);
  pinMode(LED_amarelo, OUTPUT);
  pinMode(LED_verde, OUTPUT);
  pinMode(Lampada, OUTPUT);
  pinMode(Motor, OUTPUT);

  //Configurando os pinos definidos como entradas.
  //Sinais discretos - 4 Entradas
  pinMode(S1, INPUT);
  pinMode(S2, INPUT);
  pinMode(S3, INPUT);
  pinMode(S4, INPUT);

  //Sinais analógicos - 2 Entradas
  pinMode(Sinal_01, INPUT); 
  pinMode(Sinal_02, INPUT);
}
//-------------------------------------------
void loop()
{
  Valor_AD2 = analogRead(Sinal_02); // Lê o pino analógico 
                                   //e armazena na variável Valor_AD 
  
  Temp = Valor_AD2*0.48543689320388349514563106796117; //Multiplica o valor AD
                                                                  
  lcd.setCursor(0,0);             // Posiciona
  lcd.print("Arduino: Temperatura"); // Escreve no LCD
  lcd.setCursor(0, 1);
  lcd.print("Temperatura: " );    
  lcd.print(Temp);               // Imprime a variável Vol no LCD
  lcd.print(" C" );                // Escreve a unidade
  
  Valor_AD1 = analogRead(Sinal_01);  
  Set = Valor_AD1*0.09765625; //Multiplica o valor AD
  
  lcd.setCursor(0, 2);
  lcd.print("Set Point = " );    
  lcd.print(Set);               // Imprime a variável no LCD
  lcd.print(" C" );                // Escreve a unidade             

  if(Temp>Set)                  // Se a temperatura for maior que o Set point
  digitalWrite(Motor,HIGH);     // Liga motor
  else
  digitalWrite(Motor,LOW);
  }



Até a próxima...
"Nada acontece a menos que sonhemos antes”.
Carl Sandburg

www.clubedaeletronica.com.br
Autor: Clodoaldo Silva...