Bom dia Galera,

Pessoal, trabalho com Arduino já algum tempo e me deparei com algo inexplicável até então.

Liguei no meu Arduino Uno um sensor LM35, na porta analógica A0. O LM35 está alimentado com os 5V do próprio Arduino, que por fim está ligado na USB do PC.

Até ai tudo bem, tudo funciona direitinho. 

Adicionei um potenciômetro também ligado entre o 5v e o GND. Seu pino central na porta A1.

O problema é que quando a tensão do potenciômetro vai a 5V, ou seja, quando jogo 5V no pino A1, o LM35 para de funcionar corretamente, e começa a oscilar em valores diferentes do normal. Chega variar em torno de 50 , a 60 inteiros. O que acarreta um erro enorme na temperatura.

Já fiz de tudo, não adianta. Porém, (isso é curioso) quando eu tiro a linha  AnalogRead(A1) do código (potenciômetro)  a medida do LM35 volta a ser normal.  Já pensei em interferência, queda de tensão em função do potenciômetro e nada. Quando o LM35 oscila, o potenciômetro indica 5V. Porém a tensão de alimentação em cima do LM35 continua intacta, ou seja, não vejo interferência nenhuma do potenciômetro no barramento de 5V.

Bom, quem não intendeu e quer tirar a prova. Só ligar o LM35 em uma porta analógica e um potenciômetro em outra. Compare as leituras do LM35 antes e depois do potenciômetro. Se alguém tiver uma explicação e solução agradeço, pois já testei com vários LM35 e com Arduinos diferentes. Aliás, estou com o UNO Rev 3.

Grande abraço!

Exibições: 3354

Responder esta

Respostas a este tópico

Amigo já fiz o mesmo que voce e tudo ocorreu perfeitamente.

se voce retira do codigo o AnalogRead(A1) e tudo funciona normalmente, isso significa que não erro na ligação, verifique seu codigo pois é 99.9% de certeza que o bug ta no codigo.

Sander.. Vou postar os códigos pra você dar uma olhada. 

Estou achando que o problema é o Delay entre as leituras dos Pinos.. Não tava usando. Vou tentar amanhâ.!

Valeu

Isso é normal. Da um pesquisada sobre sample and hold. Bem provável que o tempo de amostragem de seu programa deve esta muito baixo e o lm35 não esteja conseguindo 'carregar' o capacitor de retenção do conversor AD. Ja foi discutido em outros tópicos sobre esse problema, precisa no minimo aumentar o tempo de amostragem e o ideal é também colocar um buffer entre o LM35 e o Arduino.

Bom , legal saber. Vou testar.. Valeu!

Como é maravilhoso quanto por mais simples que possa parecer uma explicação, se não for colocado um desenho do circuito pode ser que algo foi montado errado...

Se você colocar o pino central do potenciômetro ligado a um dos pinos das bordas pode dar deste curto circuito até erros de leituras, quem sabe não é uma dessas coisas???

E se seu potenciômetro estiver danificado?

Tudo é possível, troque-o e faça novo teste.

Se algo pode dar errado com 2 componentes, pode acreditar...o erro será no terceiro...

Nunca usei o LM 35.

Uma vez obtive comportamentos estranho com um potenciometro e descobri, depois de muito tempo, que o problema estava na programação, com muitas linhas de codigo, ignoramas algumas quando revisamos e o erro estava em uma coisa que praticamente não prestamos atençao e que faz uma diferença enorme.

So uma dica, de uma conferida se não inverteu Input com Output no PinMode.

pinMode(A1, OUTPUT);

Veja se tem  :

pinMode(A1, INPUT);

Se não for, ignore, mas saibam que esse tipo de erro apresenta um comportamento muito estranho e parece que o potenciomentro esta louco e chega a valores absurdos...

[]´s

Jota

Exatamente, e quem leu algumas matérias antigas aqui de como proceder para não queimar seu Arduino, deve saber que dando output onde deveria ser um input, pode causar um curto exatamente com o terra ou o Vcc.

O Potenciômetro funciona sozinho sem problemas também!

O Problema é os dois juntos. 

:(

Euclides, já verifiquei tudo. As pinagens estão OK. Troquei potênciometros, LM35, e nada! 

Mas valeu!

O BRENO OLIVEIRA....

eu sei e vou te falar o BUG, isso ocorreu no meu semana passada e consegui eliminar isso fácil.

1° Arduino UNO não lê entradas analogicas SIMULTANEAS. -> no seu caso LM35 e POTENCIOMETRO.

2° esquece essa ipotese de interferencia. (logico que se tirar o potenciometro ele le normal, entao nao é interferencia.)

3° vc tem q tratar as entradas analogicas. (sabe ou quer que eu faça? é simples)

4° vc usa LCD ou imprime na SERIAL MONITOR ?

vc ta mandando ele lê o sensor a cada 1 segundo? -> delay(1000);

responde e ve se intendeu o que eu disse.

ABRAÇO

não falei que aprendi com você, nem sitei seu nome.

disse pro BRENO que é fácil... aqui não é pra ILUMINAR ALGUÉM QUE APRENDEMOS, estamos sim para ajudar o próximo, se vc já NASCEU SABENDO SEM QUE NGM TE FALA-SE 

MERITO SEU... =D (aplausos pra você meu querido Sander) "Alex"

não fui eu que fui EXCLUIDO DO LDG MAIS DE 3 VEZES.

O DEFEITO É SEMPRE OS OUTROS, NASCEU SABENDO...

LIGUEI AS 23hrs MESMO. VC ME AJUDOU, MAS AGR NÃO BASTA DIZER POR CIMA QUE VC ME ENSINOU PQ NAO INSINOU TUDO.

FELIZMENTE VOCE DOMINA A AREA QUE ESTOU APLICANDO. QUERO VER EM OUTRAS.

SE GUSPISE PARA CIMA JA TERIA CAIDO NA TESTA.

EU GUSPI EM VC.

=D ( OBRIGADO POR TUDO, MESMO NAS 23HRS )

SEJE MAIS HUMILDE ALEX, SANDER, TIRITICA... KKKKKKKKKKKKK ( SEI LÁ, VC TEVE 3 NOMES NO LDG)

RSS

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2019   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço