Menu

Aula 008 - Enviando dados ao monitor serial

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 e no serial do PC.

O Set point poderá ser ajustado através do potenciômetro e seu valor exibido no LCD e Serial.

O código...

//-------------------------------------------------------------//
//  Projeto Desenvolvedores 4.0  - Desenvolvimento com Arduino
//  Programa/hardware: 008 - Enviando dados ao monitor Serial
//  Autor:Clodoaldo Silva
//  Revisão: 27Abr2020
//---------------------------------------------------------------

//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);
  Serial.begin(9600);

  //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()
{
  //Leitura da variável temperatura
  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

  //Dados para o LCD
  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

  //Dados para o PC local
  Serial.print("Temperatura = "); //imprime os valores de Temperatura na serial
  Serial.println(Temp); //imprime os valores de Temperatura na serial

  //Leitura da variável Set point
  Valor_AD1 = analogRead(Sinal_01);
  Set = Valor_AD1 * 0.09765625; //Multiplica o valor AD

  //Dados para o LCD
  lcd.setCursor(0, 2);
  lcd.print("Set Point = " );
  lcd.print(Set);               // Imprime a variável no LCD
  lcd.print(" C" );                // Escreve a unidade

  //Dados para o PC local
  Serial.print("Set point = ");
  Serial.println(Set); //imprime os valores do Set point na serial

  //Aciona o motor e apresenta o status Coloca no LCD
  if (Temp > Set)               // Se a temperatura for maior que o Set point
  {
    digitalWrite(Motor, HIGH);    // Liga motor
    lcd.setCursor(0, 3);
    lcd.print("Motor = Ligado  : " );
    
    Serial.println("Motor Ligado"); //imprime os valores do Set point na serial
  }
  else
  {
    digitalWrite(Motor, LOW);
    lcd.setCursor(0, 3);
    lcd.print("Motor = Desligado  : " );
    Serial.println("Motor Desligado"); //imprime os valores do Set point na serial
  }
}

Até a próxima...
"A persistência é o caminho do êxito."

Charles Chaplin.

www.clubedaeletronica.com.br

Autor: Clodoaldo Silva...