terça-feira, 9 de junho de 2015

Passo a Passo:

Primeiro, faça a montagem com o Arduíno e os componentes apresentados no esquema abaixo.
Observação: Em nosso caso, estamos usando um led do tipo Anodo comum. Caso o led que esteja usando na sua montagem seja Catodo, é necessário que coloque a perna maior do LED no negativo e fazer pequenas alterações no código, alterando o que esta Low para High e High para Low (apenas inverter).














Após a montagem, é necessário usar o codigo abaixo. Caso não tenha o programa do Arduino instalado no seu computar, faça o Download aqui:

Código do Sensor de temperatura com comentários para entedimento do código. Cole o código no programa Arduino.

//Programa : Sensor de temperatura LM35 com Ventilador
// Verde + Vermelho = Amarelo
// Vemelho + Azul = Rosa
// Verde + Azul = Azul Claro
//
int pin = 0; // Pino analogico para ligacao do LM35

// Variaveis que armazenam a temperatura em Celsius e Fahrenheit
int tempc = 0,tempf=0;
int samples[8]; // Array para precisão na medição

// Variáveis que guardam a temperatura máxima e mínima
int maxtemp = -100,mintemp = 100;
int i;

void setup()
{
  Serial.begin(9600);     // Inicializa comunicação serial
  pinMode(13, OUTPUT);    // Define pino 13 como saída (led azul)
  pinMode(12, OUTPUT);    // Define pino 12 como saída (led vermelho)
  pinMode(11, OUTPUT);    // Define pino 11 como saída (led verde)
  pinMode(10, OUTPUT);    // Define pino 10 como saída (relay)
}

void loop()
{
  for(i = 0;i<=7;i++){ // Loop que faz a leitura da temperatura 8 vezes
    samples[i] = ( 5.0 * analogRead(pin) * 100.0) / 1024.0;
    //A cada leitura, incrementa o valor da variavel tempc
    tempc = tempc + samples[i];
  delay(100);
}

// Divide a variavel tempc por 8, para obter precisão na medição
tempc = tempc/8.0;
//Converte a temperatura em Fahrenheit e armazena na variável tempf
tempf = (tempc * 9)/ 5 + 32;
//Armazena a temperatura máxima na variável maxtemp
if(tempc > maxtemp) {maxtemp = tempc;}
//Armazena a temperatura minima na variavel mintemp
if(tempc < mintemp) {mintemp = tempc;}

//Se a temperatura estiver abaixo de 23, acende o led azul
if(tempc <23)
  {
    digitalWrite(13, LOW);
    digitalWrite(12, HIGH);
    digitalWrite(11, HIGH);
    digitalWrite(10, LOW);
  }

//Se a temperatura estiver acima de 30, acende o led vermelho
if(tempc >30)
  {
    digitalWrite(13, HIGH);
    digitalWrite(12, LOW);
    digitalWrite(11, HIGH);
    digitalWrite(10, HIGH);
  }

//Se a temperatura estiver entre 30 e  23, acende o led verde e vermelho(Amarelo)
if((tempc >23) && (tempc <30))
  {
    digitalWrite(13, HIGH);
    digitalWrite(12, LOW);
    digitalWrite(11, LOW);
    digitalWrite(10, LOW);
  }

// As linhas abaixo enviam para o monitor serial a temperatura em
// Celsius e Fahrenheit,
// e também as temperaturas máxima e mínima registradas

Serial.print(tempc,DEC);
Serial.print(" Cels., ");
Serial.print(tempf,DEC);
Serial.print(" Fahr. -> ");
Serial.print(" Min : ");
Serial.print(mintemp,DEC);
Serial.print("  Max: ");
Serial.println(maxtemp,DEC);

tempc = 0;
delay(1000); // Aguarda 1 segundo e reinicia o processo
}


Por fim, compile o código e de um upload para o programa rodar no seu arduino. (Certifique no programa que a porta e a placa estão selecionadas corretamente).

Nenhum comentário:

Postar um comentário