Termômetro com Arduino e LM35

olá a todos daniel da qsp sejam bem vindos hoje eu tenho aqui pra vocês um exemplo mais prático do uso de arduino os para sistemas embarcados vou mostrar pra vocês hoje como medir temperatura utilizando o lm 35 e escrever é o valor da temperatura em um display lcd do tipo alfa numérico então nós temos aqui na tela já a minha aplicação montada podemos visualizar aqui o meu display display de duas linhas por 16 colunas medindo a temperatura aqui na minha sala está sendo comparada aqui com um medidor de temperatura da mini pá logo aqui embaixo eu tô com o meu arduino montado aqui é conectado ao display lcd por meio da própria board e aqui pessoal eu tenho o meu onde estou mostrando pra vocês aqui com o mouse eu tenho um sensor de temperatura o lm 35 bom esse circuito é bastante simples e também bastante comum aí na internet tá tem aqui o meu código depois vou estar disponibilizando o código para vocês nem como é o circuito também e aqui está um código bastante simples porém ele é um exemplo bastante prático também porque você pode estar utilizando isso pra medição de temperatura é na sua residência em alguma máquina e também se você for é melhorar esse projeto você pode fazer um sistema com realimentação onde eu meço a temperatura e controlo através de uma saída do arduino algum dispositivo que é venha aumentar a temperatura ou mesmo reduzir a temperatura então tá aqui o nosso código podemos observar que logo no início nós temos aqui uma inclusão uma diretiva da da linguagem c++ outra linguagem c que é inclui a biblioteca de funções para display de cristal líquido tão estou incluindo essa biblioteca nessa segunda linha eu estou é configurando a pinagem do melhor do hino no meu display de cristal líquido esses dois esses dois primeiros os referem-se ao é aos sinais de e-mail e aos sinais de instrução rs do display os demais números aqui eles referem-se aos barramentos de dados do display de cristal líquido observando vocês aí vocês podem é concluir que o display tá sendo utilizado no modo de 4 bits todo display lcd como esse tipo que estou mostrando podem trabalhar de duas formas com barramento de 8 bits e com barramento de 4 minutes as bibliotecas do arduino que eu estou incluindo aqui no meu código eles suportam o barramento em 4 bits aqui pessoal eu estou declarando uma entrada para o melhor do hino nem estou dizendo que a entrada a 0 que entrada analógica 0 do melhor do hino é o lm 35 declaro duas variáveis temperatura do tipo floating porque a minha temperatura como podemos observar aqui ela é um número real tenho que declarar a temperatura como o tipo flutuante e aqui eu tenho uma outra variável que eu estou utilizando para

receber é o resultado da conversão analógico para digital então o microcontrolador que está sendo utilizado no arduino que é o time pega 328 possui internamente um conversor analógico digital de 10 bits isso nos dá uma é um valor uma faixa que vai de zero até 1.023 ou seja quando aplicar uma tensão zero volts na entrada na lógica do meu conversora de a saída terá um número binário igual a zero quando eu e injetar um sinal de 5 volts na entrada na lógica do meu conversor de eu terei na saída um número é um número inteiro 1.023 então totalizando 1.024 partes do meu conversora de aqui nessa outra parte do meu código eu estou criando criei aqui um a reinar é uma matriz onde constrói o símbolo do graus centígrados né e então aquela bolinha que antecede a letra c ela foi então construída através dessa matriz de dados nós sabemos que todo o código par do hino começa com um a função setup e depois ele fica eternamente rodando na minha função lucro na minha função cetac eu inicializa o display em 16 colunas por duas linhas eu certo a posição do meu cursor coluna número 3 linha zero tá lembrando vocês que essas funções para display elas consideram é a primeira linha ea primeira coluna como sendo 100 nessa terceira linha aqui de código eu estou imprimindo no meu display lcd o texto é a informação de temperatura de medição é temp mede como podemos observar aqui lá no meu lcd o temp med já então isso foi colocado foi escrito no display a partir da coluna 3 linha zero aí eu crio aqui nessa função é eu utilizo dessa matriz para criar a minha bolinha que antecede o a letra cedo graus centígrados e eu escrevo ela numa posição da coluna 10 linha do linha 1 tá então seria essa linha onde estou mostrando que seria segunda linha a linha que começa sempre no 10 então 0 e 1 e na coluna número 10 não escrevo e se esse símbolo e depois é eu completo com a unidade é mostrada pelo símbolo da letra c pra isso aqui é feito uma vez só quando você inicializa o teu ardolino depois aqui na rotina eternamente verdadeira que o meu lupi eu faço o seguinte eu faço uma série de aquisições analógicas podemos observar aqui que através desta dessa estrutura de repetição eu faço 16 aquisições analógicas na entrada a 0 que a entrada onde está é conectado meu lm 35 podemos observar que eu estou utilizando a função analogue ride ou leitura de sinais analógicos e como argumento dessa função eu estou colocando aqui a minha entrada 0 que foi colocada foi declarado inicialmente aqui no meu código observando aqui com detalhe mas podemos concluir que é com esse símbolo de adição seguido do do igual nós estamos acumulando nós estamos

somando né sucessivas medidas e guardando salvando nessa variável inteira que eu declarei aqui em cima pessoal veja bem o mm 35 ou no meu caso aqui eu estou utilizando um eh eh sensor de temperatura que ele é semelhante ao elenco e 35 ele é pessoal o mcp 9700 deixo aqui baixar pra vocês o datasheet dele ele é muito parecido com ele e me 35 com a diferença que ele ele tem um custo muito mais baixo né o elenco 35 é muito caro então esse é uma versão da microsoft pe o mesmo que dá mesmo fabricante dos microcontroladores pique a e ele tem a mesma pinagem então ele pino compatível e também a função de transferência dele é igual ao mm 35 que é 10 mil volts por grau centígrado nós podemos observar aqui o nec é também chamado de coeficiente de temperatura 10 mil volts por grau centígrado isso significa que a cada grau centígrado que aumenta no meio ambiente esse sensor ele irá fornecer 10 mil volts a mais na saída só que pensa bem pessoal ele tem um off set nós podemos observar que quando a temperatura ela está zero graus ele fornece uma tensão nominal de 500 mil volts ou meio volts pessoal essa esse offset eu tenho que retirar aqui no meu código então por isso que eu estou aqui ó fazendo uma subtração do valor que foi lido lá no meu conversora de por uma constante essa constante pessoal 105 ela foi calculada é considerando meio volte / 1 lsb a nós não podemos observar que seu poder calcular um l s b que seria a mínima atenção na entrada do conversor de para que eu possa é modificar em um bit a saída então como é que eu cheguei nesse valor eu pego a atenção de referência que é de 5 volts e / 1.024 então vou ter o valor de um lsb que nesse caso o pessoal vai dar em torno de 1024 né vai dar em torno de 4.9 mini volts 4.9 milivolts se eu pegar meio volte e dividir por isto vai dar em torno de 105 103 né o valor então por isso que eu que eu peguei joguei joguei nesse valor aqui o pessoal esse valor pode estar oscilando um pouquinho porque esse essa tensão aqui de offset do mcp 9700 ela é nominal de e mail volte mas ela pode ser um pouquinho mais um pouquinho menos então você vai ter aí um valor que vai ter que ajustar isso aqui é via software pra você configurar e atua temperatura ok então aqui que a gente pode fazer aquele que a gente pode concluir aqui que eu estou é fazendo sucessivas medidas é da tensão de saída do meu sensor de temperatura subtraindo a um valor que corresponde a um off set e depois quando eu terminar de fazer 16 medidas eu vou então é calcular a média raul calcular a mary isso vai me dar um resultado mais exato pessoal bom esse valor de ads has ele é uma variável inteira não é isso que eu quero mostrar lá no meu display então tem que converter isso para o equivalente em graus centígrados então tá aqui ó aqui está a conta que converte o valor inteiro em graus centígrados repare pessoal que o valor da variável

se encontra encontra-se aqui esse valor ele tem que ser multiplicado por cinco uma vez que o meu fundo de escala ele é de 100 graus por isso que estou dividindo ele por r 10.013 veja bem então estão tendo no fundo da escala e eu e se eu jogar 100 graus no meu é de r 35 eu vou ter então volte porque é simples é só a gente pegar aqui o sensor não posso pegar aqui um sensor de temperatura até mostrar pra vocês aqui ó que vocês possam entender de uma forma mais mais clara então ó atenção do lm 35 vai ser igual aos 10 mil volts atenção máxima vezes 100 graus e isso vai me dar um volt se eu jogar 100 graus centígrados no meu sensor lm 35 eu vou ter na saída um volts só que a tensão de referência do conversor a de é de 5 volts por isso que eu tenho que pegar a tensão de entrada não é do meu conversor vai ter que ser atenção do meu lm 35 vezes 5 então se eu tenho que a tensão de entrada na tensão de saída do mm forum volte para é 100 graus tão vezes 5 vai me dar 5 volts tá que isso é que vale podemos dizer que isso aqui vai aqui vai ser o equivalente a mil e 23 tá por isso que na conta aqui eu estou multiplicando por 5 / 1.023 foi o máximo que o conversor de pode está fornecendo aí quando eu aplicar 5 volts bom só que essa variável é uma variável inteira o 1.023 também é uma variável inteira então se eu fizer essa conta o cálculo que a linguagem c irá executar aqui será um cálculo inteiro não pode ele irá pegar a parte inteira dessa fração tão esse cálculo não daria certo ou ele seria zero ele seria um quando que ele seria um quando esse produto aqui ó quando esse produto que fosse igual à minha 23 23 / 1.023 vai dar um se eu tiver um número menor do que mil e 23 então essa divisão irá resultar em zero pra que esse erro não aconteça eu faço um cast o que seria esse cast eu vou promover é este produto temporariamente para um tipo flot aí como resultado eu vou ter essa divisão toda como sendo um flot isso multiplicado dividido né no meu caso aqui pelo fundo da escala de 100 graus então aí eu vou ter então aqui na minha variável temperatura que é uma variável flot eu terei então o equivalente em graus centígrados bom uma vez feita esse cálculo eu certo meu cursor coluna 4 linha 1 inscreva no meu display lcd isso aqui pessoal irá se repetir a cada 250 mil segundos que é um valor aí muito bom quando você quer mostrar valores em displays seja splice de o display em sete segmentos tão pessoal vamos olhar aqui agora o funcionamento podemos verificar então aqui ó o arduino o sensor de temperatura temperatura aqui do meu display está em torno de 24 aos irlandeses por causa do do ruído aqui pessoal da placa porque aqui no trilho

certo era ter um plano de terra né uma malha aqui é pra poder ajudar então eu sempre tenho um pouco de ruído devido à montagem na prova do board e aqui uma pessoa a gente pode ver que o valor ele está aí bem próximo do equipamento da mini porque o ok então pessoal esse é outro exemplo aqui do nosso curso de arduino espero que vocês tenham gostado desse vídeo espero que isso tenha ajudado vocês aí com alguma uma dúvida e vamos seguindo o nosso curso pessoal um abraço a todos e fui