// Programa que calcula a média das 30 medidas do sensor de temperatura
// e do potenciometro.
// Se a temperatura for maior que o valor do potenciometro, o led acende.
const float BETA = 3950;
float leituraSensor[30], leituraPot[30];
float mediaSensor, mediaPot, somaSensor, somaPot, celsius, pot;
int contador = 0;
void setup() {
Serial.begin(115200); //Inicia a tela Serial;
pinMode(A0, INPUT); //Indica que o pino A0 será utilizado como entrada;
pinMode(A1, INPUT); //Indica que o pino A1 será utilizado como entrada;
pinMode(13, OUTPUT); //Indica que o pino 13 será utilizado como saída;
}
void loop() {
// Zerar as variáveis;
somaSensor = 0;
somaPot = 0;
mediaSensor = 0;
mediaPot = 0;
celsius = 0;
pot = 0;
for (contador = 0; contador <30; contador++)
{
leituraSensor[contador] = analogRead(A0); //Realiza 30 medidas do sensor e guarda em um vetor;
leituraPot[contador] = analogRead(A1); //Realiza 30 medidas do potenciometro e guarda em um vetor;
}
for (contador = 0; contador < 30; contador++)
{
somaSensor = somaSensor + leituraSensor[contador]; //Soma as 30 medidas do sensor;
somaPot = somaPot + leituraPot[contador]; //Soma as 30 medidas do potenciometro;
}
mediaSensor = somaSensor/30.; //Calcula a média das medidas do sensor;
mediaPot = somaPot/30.; //Calcula a média das medidas do potenciometro;
celsius = 1 / (log(1 / (1023. / mediaSensor - 1)) / BETA + 1.0 / 298.15) - 273.15; //Converte o sinal analógico para valores de temperatura em celsius;
pot = (mediaPot/1023.)*100; //Converte o sinal analógico para porcentagens;
Serial.print("Temperatura está em: ");
Serial.print(celsius); //Imprime a média da temperatura;
Serial.println(" ℃");
if(celsius > pot) //Aciona o LED se a temperatura for maior que o valor do potenciômetro;
{
digitalWrite(13, HIGH);
}
else
{
digitalWrite(13, LOW);
}
Serial.print("Potenciômetro está em: ");
Serial.print(pot); //Imprime a média dos valores do potenciometro;
Serial.println(" %");
delay(3000); //Espera 3s para nova medição;
}