terça-feira, junho 30, 2015

TERMISTOR COM LED E BUZZER EM ARDUINO

O sketch abaixo apresenta o termistor e o buzzer associados aos LED’s. À medida que a temperatura muda de intervalo, um LED acende e o buzzer emite um som diferenciado a partir da função Tone. Esta função tem como parâmetros o pino onde se conecta o buzzer, a frequência desejada do som e a duração em milissegundos. Neste sketch se introduz a biblioteca do Termistor de 10K, que nada mais é do que um resistor que varia sua resistência de acordo com a temperatura do ambiente. Essa variação é transformada em temperatura pela biblioteca.


/*
***********************************************
PROJETO ROBÓTICA NA ESCOLA 2015 
     TERMISTOR COM LED E BUZZER     
        EE DR PEDRO VELHO – RN/BR         
***********************************************
*/
 #include <Thermistor.h>
//Define a temperatura máxima e mínima para o range do sensor
#define tempMax  32
#define tempMin  24
//Define o pino onde a sirene vai estar conectado
#define sirene    3
//Define o pino A0 como o pino onde o sensor de temperatura
Thermistor temp(0);
const int led2 = 8;
const int led4 = 9;
const int led6 = 10;
const int valorMedio = 28;
void setup()
{   
pinMode(led2, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led6, OUTPUT);
Serial.begin(9600);  
Serial.println("ALARME DE TEMPERATURA");
}
void loop()
{  
int temperatura = temp.getTemp();  // função da biblioteca do termistor
delay(2000); // delay para garantir no minimo 2s entre cada uma das leituras  
Serial.print("Temperatura: ");      
Serial.print(temperatura);      
Serial.println(" *C\n");
if (temperatura > tempMin && temperatura <= valorMedio)
{
digitalWrite(led2, HIGH);
tone (sirene,110,50);
}
else
{
digitalWrite(led2, LOW);
}
if (temperatura > valorMedio && temperatura <= tempMax)
{
digitalWrite(led4, HIGH);
tone (sirene,220,200);
}
else
{
digitalWrite(led4, LOW);
}
if (temperatura > tempMax)    
{      
digitalWrite(led6, HIGH);
tone (sirene,440,1000);      
Serial.println("PERIGO!!! TEMPERATURA FORA DO ESPERADO");
Serial.print(temperatura);      
Serial.println(" *C\n");
Serial.print("Temperatura deve estar entre ");      
Serial.print(tempMin);      
Serial.print(" e ");      
Serial.println(tempMax);    
}
else
{
digitalWrite(led6, LOW);
}
}

//FIM DO SKETCH

Nenhum comentário:

Postar um comentário