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: 4234

Responder esta

Respostas a este tópico

Pois é , bom e velho Ctrl-c !!! rsrs

Mas até agora nada de funcionar. :(

uai... nao funcionou mesmo ?

manda ele le assim ó. !

alanogRead(sensor);

delayMicroseconds(200);

alanogRead(sensor);

isso vai estabilizar teu sensor !!!!! APRENDI NUM MATERIAL EM PIC.. USEI NO ARDUINO E FUNCIONOU

Vou tentar também BURST. Valeu.

Prezados, estou tendo este mesmo problema. 

Fiz um chocadeira e utilizei o arduino para monitorar a tempertura e acionar um relê que liga a resistência, mantendo a temperatura estável. Bem, o caso é que, por estarmos no inverno, eu quero aumentar um pouco a faixa à noite, e para isto quero usar um potenciômetro de maneira que eu consiga variar em até 1 grau o limite máximo.

Daí me deparei com este galho, relatado pelo Breno. O lm35 está bem estável, até eu habilitar no código a leitura do potenciometro. Aí ele enlouquece.

Alguém conseguir resolver o problema??

Obrigado.

ja fiz um tcc com dois potenciometros e um lm35, funciona certinho, mas tem que por um capacitor ceramico de 22uf entre o GND e o pino de leitura do lm35, e do potenciometros. o delay de 200 microsegundos entre as leituras é essencial

http://labdegaragem.com/forum/topics/problema-lm35d?id=6223006%3ATo...

Só para entender melhor, Tiago: são dois capacitores cerâmicos de 22 micro farads? Um para o LM outro para o potenciômetro?

Sim, Rogério. 

Tente, separar as funções também, crie um void para cada sensor, ex:

void potenciometro() {
valorSensor = analogRead(A1);
delayMicroseconds(200);
valorModificado = map(valorSensor, 0, 1023, 40, 50); // programa delay entre 40ºC e 50ºC 
Serial.print("Temp desejada; ");
Serial.print(valorModificado );
}

void LM35 () { //Faz a leitura da temperatura e define a dose de ração em função da temperatura
valorLido = analogRead(pinoSensor); // leitura da temperatura
delayMicroseconds(200);
double temperatura = (valorLido * 0.48857); // converte a leitura do LM35 em graus Celcius
Serial.print("Temp; ");
Serial.print(temperatura);
delay(1000);
}

em anexo um modelinho

Anexos

Tiago, qual o código do capacitor cerâmico que você utilizou, é  o 202?

seria o 223 ou 224, mas se vc tiver um capacitor eletrolítico de 100uf, tambem serve, mas os  cerâmicos são melhores para estabilizar pelo que percebi

Tiago, muito obrigado. Tinha aqui um eletrolítico de 1000/16v e coloquei só entre o GND e o Analógico do LM35 e já estabilizou completamente, sem precisar colocar no potenciômetro. Valeu mesmo!!!

PROBLEMA RESOLVIDO, graças a você.

Fico feliz por poder ter contribuído com o que aprendi com ajuda do forum, abraços e bom projeto.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço