Após seguir o post Arduino – Sensor de temperatura Parte1 vamos agora programar nosso Arduino. Como iremos ter um computador para interagir com o Arduino é inteligente e boa prática usar o Arduino apenas para capturar o valor da temperatura e enviar (quando solicitado ou automaticamente) para nossa aplicação via serial (USB), ok?
Segue o código-fonte para o Arduino, seguindo a configuração do post anterior:
/* Temperatura em Celsius */ int PinAnalogLM35 = 0; //Setando Pino A0 float valAnalog = 0; // Iniciando variavel valAnalog como 0 float temp = 0; //Iniciando variavel temp como 0 void setup(){ Serial.begin(9600); } void loop(){ if (Serial.available() > 0){ if (Serial.read() == 116){ // letra t // Lento o pino A0, aqui estamos obtendo o valor valAnalog = analogRead(PinAnalogLM35); temp = (valAnalog * 500) / 1023; Serial.println(temp); } } }
Código acho que é simples e de fácil compreensão, certo? A única diferença esta na linha 14 que eu realizo uma comparação, que na verdade pode vir qualquer coisa pela serial, mas ele só ira enviar o valor da temperatura caso seja enviado o caracter t, que no caso temos que comparar o seu respectivo valor da tabela ASCII (t = 116).
Outra questão pode ser na linha 16, porque desta conta! Bom primeiramente temos que saber algumas coisas como o A/D do Arduino que é de 10bits (0 à 1023), nossa entrada A0 pode entrar com valores de 0V a 5V e o LM35 irá nos fornecer 10mV a cada 1ºC.
Então a conversão A/D de uma forma mais clara seria:
temp = (valAnalog * 0.00488);
5V / 1023 = 0.00488
Temos o valor convertido, agora passar para Graus Celsius
temp = temp * 100;
Vale ressaltar que a cada 10mV equivale a 1ºC
Simplificando isso em uma linha temos o que esta na linha 16.
Se você compilar este código e enviar para o Arduino, utilizando a própria IDE do Arduino você pode testar indo em Tools > Serial Monitor. Digite a letra t e pressione enter e irá aparecer o valor da temperatura.
Desenvolvi uma aplicação para este post, segue uma imagem abaixo:
Dois modos de operação, manual onde você solicita a temperatura quando clicar no botão como na imagem abaixo:
E o modo automático, onde você irá escolher o valor de intervalo que deverá realizar a leitura como na imagem abaixo:
Um log ficará registrado no meio da tela com o valor da temperatura, data e hora e acima três mostradores da menor, atual e maior temperatura registrada.
Para download do instalador do aplicativo clique aqui.
Caso tenha interesse no aplicativo, personalização ou desenvolvimento entre em contato, pois estou fechando consultorias para desenvolvimento, já caso esse lhe sirva use-o a vontade.
Arduino – Sensor de temperatura Parte3 [em breve]
Até a próxima!
Arduino – Sensor de temperatura Parte2 by Cleiton Bueno is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.