LusoRobótica - Robótica em Português

Sistemas específicos => Arduino / AVR => Tópico iniciado por: mrr em 07 de Abril de 2010, 11:28

Título: Problemas com a distancia Arduino + LM35
Enviado por: mrr em 07 de Abril de 2010, 11:28
Boas pessoal,


Tenho um arduino ligado a um sensor de temperatura(LM35), estou com problemas quando ligo o sensor com um cabo de 30metros, começa a dar valores errados e inconstantes. Se ligar o sensor directo ao arduino(20cm de cabo) esse problema desaparece.

Estou a utilizar um sensor LM35 mais uma resistência de 10K.
Não percebo nada de electrónica, se alguém me poder ajudar a resolver este problema agradecia.
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: microbyte em 07 de Abril de 2010, 11:40
Num cabo de 30m, não admira apanhar ruído, campos eléctricos, etc...
Deves pôr o Arduino perto do sensor e fazer o resto da comunicação depois disso.

Nada de valores analógicos. Para fazeres a maratona dos 30m, apenas HIGH ou LOW.
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: mrr em 07 de Abril de 2010, 12:22
Obrigado pela ajuda.
O problema é que tenho vários sensores para ligar e com alguma distancia considerável.
E se utilizar um sensor digital tipo SHT15 será que vou ter o mesmo problema?
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: Njay em 07 de Abril de 2010, 12:34
Podes tentar as recomendações do fabricante, páginas 7 e 8:
http://www.national.com/ds/LM/LM35.pdf (http://www.national.com/ds/LM/LM35.pdf)
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: mrr em 17 de Abril de 2010, 21:21
Obrigado Njay pela dica. Mas como não percebo nada de electrónica torna-se complicado para perceber.


E se utilizar o TMP102 será que deixo de ter esse problema, já que se trata de um sensor digital?
   Arduino ->-----30 metros cabo-----> TMP102.

Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: senso em 17 de Abril de 2010, 21:47
30 metros de cabo precisas de usar rs-232 dos dois lados para teres algo mais que ruido na ponta do cabo
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: mrr em 17 de Abril de 2010, 22:22
O meu objectivo é ter um arduino ligado a uns reles e ler a temperatura de uma estufa, o problema é que queria ter o sensor a 30 metros de distancia(centro da estufa). não estou a ver como o vou fazer de forma simples, existe sempre algum problema   :'( .
Agradeço a todos os que me têm ajudado e me possam vir a ajudar.
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: amando96 em 17 de Abril de 2010, 23:57
existe sempre o wireless  :)
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: metRo_ em 18 de Abril de 2010, 00:20
O meu objectivo é ter um arduino ligado a uns reles e ler a temperatura de uma estufa, o problema é que queria ter o sensor a 30 metros de distancia(centro da estufa). não estou a ver como o vou fazer de forma simples, existe sempre algum problema   :'( .
Agradeço a todos os que me têm ajudado e me possam vir a ajudar.

Se queres ter o sensor a 30metros eu aconcelhava-te a usar por exemplo um Attiny da Atmel que são a familia mais simples/pequena dos AVR de 8bits e depois utilizas por exemplo rs232 a baixas velocidades de transmissão de dados ou por exemplo rs485 entre o sensor e os reles. Esta solução parece-me a mais indicada a menos que digas que não pode ter fios e ai só tens a solução wireless.
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: mrr em 18 de Abril de 2010, 12:09
Obrigado pessoal pela dica.
Pensei que seria algo mais simples. Isto porque tenho um sistema de uma empresa holandesa lá montado, onde tem duas sondas uma a 30metros e outra a 120metros de distancia do computador e não existe nada entre elas, apenas um cabo de rede que utiliza apenas dois fios. A sonda é parecida a foto que anexei.
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: Njay em 18 de Abril de 2010, 12:23
Vê a figura 6 das páginas da datasheet que te indiquei, é isso que podes experimentar. Adicionar aquelas 3 resistências (só a ligada ao OUT é que fica com o sensor, as outras 2 ficam ao pé do arduino) e usar o cabo entrançado.

Usar sensores digitais só por si não te resolve o problema (que é o comprimento do cabo).
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: mrr em 18 de Abril de 2010, 14:30
Obrigado Njay, por acaso já me tinhas indicado. Vou tentar fazer tal como indica na figura 6. Depois digo o resultado, espero que seja satisfatório  ;) .
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: PDI em 18 de Abril de 2010, 17:48
Já agora que tipo de cabo estas a utilizar, por acaso é cabo com malha ligada a terra.
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: mrr em 18 de Abril de 2010, 18:16
Estou a usar cabo de rede, pelo menos parece, é igual e tem seis fios.
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: PDI em 18 de Abril de 2010, 19:18
Eu costumo utilizar liycy para as sondas com a malha ligada a terra apenas num dos lados.
http://www.eurocabos.pt/catalogo/detalhes_produto.php?id=1237 (http://www.eurocabos.pt/catalogo/detalhes_produto.php?id=1237)

Antes utilizava-mos tvhv mas tinha-mos muitos problemas com interferências( ruídos) nas leituras.
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: mrr em 06 de Maio de 2010, 21:58
Boa noite,

Alguém me pode indicar quais são as cores das riscas de uma resistencia de 200 1%?
é que eu comprei uns de 200, mas não sei se são de 1%, os que tenho e: vermelho, preto, castanho e dourado, segue em anexo uma foto.
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: microbyte em 06 de Maio de 2010, 22:08
Queres saber o valor da resistência (resistor), não do transístor.
Pelas cores que deste é de 200 ohm com 5% tolerância.

Se quisesses 1% tolerância teria de ser vermelho, preto, castanho e castanho.
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: mrr em 06 de Maio de 2010, 22:15
Obrigado microbyte,

Já corrigi, de facto era uma resistencia e não transistor. Parece é que me enganei no que comprei   :-\
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: Njay em 06 de Maio de 2010, 22:39
Pega num multimetro e mede a resistência delas na escala mais baixa possível. As que tiverem entre 198 e 202 Ohm inclusivé (se alguma) são na prática equivalentes a resistências de 200 Ohm 1%.
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: Sérgio_Sena em 06 de Maio de 2010, 22:40
Ou então trocar o LM35 por um DS1820, e ter centenas de metros de distância :)


Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: senso em 07 de Maio de 2010, 01:59
Em que tipo de ambientes?
É que centenas de metros para um sinal de 5v dc não sei bem se é possivel, digo eu :s
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: Sérgio_Sena em 07 de Maio de 2010, 09:40
É possivel devido ao protocolo de comunicação que é usado ::  1-wire (http://www.maxim-ic.com/app-notes/index.mvp/id/1796) e 1-wire (http://www.1wire.org/) e 1-wire (http://en.wikipedia.org/wiki/1-Wire)

É bastante robusto, e permite muitos participantes no barramento.

Vejam os links, que vale a pena saber desta tecnologia.


Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: mrr em 08 de Maio de 2010, 19:48
Obrigado a todos pelas dicas que me têm dado.
Eu de electrónica não percebo nada, só consigo fazer coisas simples e começa-se a tornar complicado fazer algo mais complexo.

Estou agora com um problemazito que é o seguinte:
Neste momento estou a tentar ligar o LM35 como indica na figura 6 do datasheet, o problema é que não consegui arranjar resistências de 200 Ohm a 1% então estou com resistências de 200 Ohm a 5% não sei se isso influencia.
O problema que tenho agora é o código no arduino que ei de utilizar para ler os valores, estou a utilizar o seguinte, mas os valores estão errados, muito acima da temperatura ambiente:

Citar
/*
An open-source LM35DZ Temperature Sensor for Arduino. This project will be enhanced on a regular basis
(cc) by Daniel Spillere Andrade , http://www.danielandrade.net
http://creativecommons.org/license/cc-gpl
*/

int pin = 0; // analog pin
int tempc = 0,tempf=0; // temperature variables
int samples[8]; // variables to make a better precision
int maxi = -100,mini = 100; // to start max/min temperature
int i;

void setup()
{
Serial.begin(9600); // start serial communication
}

void loop()
{

for(i = 0;i <= 7;i++){ // gets 8 samples of temperature

samples = ( 5.0 * analogRead(pin) * 100.0) / 1024.0;
tempc = tempc + samples;
delay(1000);

}

tempc = tempc/8.0; // better precision
tempf = (tempc * 9)/ 5 + 32; // converts to fahrenheit

if(tempc > maxi) {maxi = tempc;} // set max temperature
if(tempc < mini) {mini = tempc;} // set min temperature

Serial.print(tempc,DEC);
Serial.print(" Celsius, ");

Serial.print(tempf,DEC);
Serial.print(" fahrenheit -> ");

Serial.print(maxi,DEC);
Serial.print(" Max, ");
Serial.print(mini,DEC);
Serial.println(" Min");

tempc = 0;

delay(1000); // delay before loop
}


Alguém me pode dar uma ajuda?
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: Njay em 09 de Maio de 2010, 01:15
1º a fórmula de cálculo da temperatura é ligeiramente diferente para esse circuito, está lá na figura 6 (+1ºC).

Depois eu faria o seguinte. Ligava o LM35 da forma habitual e via a temperatura; depois arranjava um potenciómetro de 10K e colocava no lugar da resistência de 6.8K da figura, a ajustava-o até ler a temperatura certa. Depois mudava de local para um alguns graus mais frio ou mais quente e comparava a leitura do LM ligado de forma normal com a do LM35 no novo circuito, para ver se tudo bate certo. Se não batesse, arranjava as resistências de 200 Ohm (ou, com um multimetro, pegava nas que já tinha e escolhia 2 com um valor separado de até 4 Ohm) e repetia. Se ainda assim não batesse certo, pensaria depois no que fazer...
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: Sérgio_Sena em 09 de Maio de 2010, 16:44
É raro os LM35 estarem muito desviados da temperatura certa. A melhor for de aferir, é usar um termómetro de mercúrio para comparar. Esses não falham.

Se mesmo assim houver um desvio, ou corrige-se na equação ou na resistência veriavel.

Aumentar a saida do LM35 em 4x, ajuda a fazer as leituras. Mas o desvio tem q ser sempre corrigido por soft/hardware.

Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: mrr em 11 de Maio de 2010, 22:49
Como é que posso aumentar a saída do LM35?
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: Sérgio_Sena em 12 de Maio de 2010, 09:32
Podes fazê-lo com um Amplificador Operacional. Tens aqui literatura  (http://cadeiras.iscte.pt/cse//Folhas/AMPOPs/AMPOPs.htm)tirada do google, aleatoreamente. Lê com atenção, está lá muita informação. Se quiseres mais e-livros, tenho muita coisa.

E tens em anexo, um circuito simples que multiplica o sinal 2x.

As resistências R1 e R2 estipulam o ganho do amplificador.

Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: mrr em 23 de Maio de 2010, 13:44
Boas pessoal,

O problema da distancia esta resolvido, liguei o LM35 como indica na figura 6 do datasheet, depois de ter conseguido arranjar resistências de 200 a 1% consegui obter valores de temperatura correctos...

Agora estou com outra questão, tenho um potenciómetro e gostava de sabes se é possível liga-lo apenas com dois fios ao arduino, tal como acontece com o LM35, acabo por ter apenas dois fios, o resto fica perto do arduino(resistências).

Muito obrigado a todos que me ajudaram, sem a vossa ajuda acho que nunca teria conseguido...
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: senso em 23 de Maio de 2010, 14:00
Um potenciometro tem de ter 3 fios, dois estão ligados á resistencia do potenciometro, tal e qual como uma resistencia e o outro fio liga á escova do potenciometro e é essa que te dá a leitura variavel de resistencia.
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: Njay em 23 de Maio de 2010, 17:32
Agora estou com outra questão, tenho um potenciómetro e gostava de sabes se é possível liga-lo apenas com dois fios ao arduino, tal como acontece com o LM35, acabo por ter apenas dois fios, o resto fica perto do arduino(resistências).

Dá se aceitares algumas limitações. De que valor é o teu potenciómetro?
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: mrr em 27 de Maio de 2010, 22:25
Njay tenho um potenciómetro, mas não sei a potencia dele.

podes-me dar algum exemplo?
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: metRo_ em 27 de Maio de 2010, 23:10
Njay tenho um potenciómetro, mas não sei a potencia dele.
podes-me dar algum exemplo?

Tu não deves querer saber a potencia dele, embora uma das características das resistências é a potencia que aguentam, neste caso queres saber a resistência do potenciómetro.

Dá aqui uma vista de olhos Qué son los potenciometros (http://www.youtube.com/watch?v=x4I_i2P4QTg#) e Potentiometers - How They Work, Disassembly and Exploration (http://www.youtube.com/watch?v=rUkrpqEmXb8#ws)
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: Njay em 01 de Junho de 2010, 21:47
Eu quero saber é a resistência (máxima) dele, deve lá ter escrito.
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: mrr em 06 de Junho de 2010, 23:27
A única coisa que vi lá escrito foi M20, não sei será de 20K....
Não há uma "formula" tipo universal para se conseguir ligar um potenciómetro apenas com dois fios?
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: Njay em 06 de Junho de 2010, 23:49
M20? Não tou a ver o que é.

O que eu propunha para ligares um pot com apenas 2 fios é usar uma resistência com o mesmo valor do pot e ligar assim:


                    +-----+
                    |     |
5V ---\/\/\---+---\/\/\---+--- GND
              |
              |
        ADC do Arduino


A limitação desta ligação é que só vais ler valores do ADC entre 0 e ~511, e és capaz de ter que "corrigir" a leitura pois ela não é linear (se usares uma resistência de umas 5 vezes o valor do pot a aceitares teres leituras apenas entre 0 e talvez uns 170, a leitura já deve ser linear q.b.)... mas é uma forma de conseguir o que queres.
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: FET_Destroyer em 07 de Junho de 2010, 12:27
Não percebi o porque de ligarem o pot so com 2 fios e depois usarem uma resistencia em serie.
Se ele usar o pot directamente tem 10bits de resoluçao.

               ____
5v -------|__/__|-------- Gnd
                 /               
               /  arduino analog
Título: Re: Problemas com a distancia Arduino + (LM35 e Potenciómetro)
Enviado por: mrr em 07 de Junho de 2010, 13:54
FET_Destroyer,


Dá forma como indicas-te quando ligado com um cabo comprido acaba por ter um sinal muito variado devido ao ruído...

Por isso é que preciso saber como ligar apenas com dois fios para não ter problemas com a distancia.
Vou tentar fazer  como o Njay indicou.

Obrigado a todos pela ajuda que me têm dado.
Título: Re: Problemas com a distancia Arduino + (LM35 e Potenciómetro)
Enviado por: FET_Destroyer em 07 de Junho de 2010, 18:29
FET_Destroyer,


Dá forma como indicas-te quando ligado com um cabo comprido acaba por ter um sinal muito variado devido ao ruído...

Por isso é que preciso saber como ligar apenas com dois fios para não ter problemas com a distancia.
Vou tentar fazer  como o Njay indicou.

Obrigado a todos pela ajuda que me têm dado.

Boas
Continuo sem perceber porque penso que tenha ruido com 2 ou 3 fios, mas lá está, com essa ligação ficas com muito menos resolução, segundo disse o Njay 170, não chega a 8bits, mas de ser para o que queres sempre poupas um condutor, pk em vez de 3 levas 2.

cumps
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: Njay em 07 de Junho de 2010, 23:08
A minha sugestão vem de apenas ter sido pedido um potenciómetro com 2 fios, nada mais.
Para o problema do ruído, é experimentar uma ou várias de

1) Colocar uma resistência em série e depois um condensador para a massa na entrada do ADC no Arduino
2) Usar resistência e potenciómetro de valores baixos, como 1K (menos não)
3) Entrançar o cabo do potenciómetro
Título: Re: Problemas com a distancia Arduino + LM35
Enviado por: senso em 07 de Junho de 2010, 23:11
Experimenta usar um cabo cat5, é barato ao metro, ou então um cabo para microfones e no lado do arduino ligas o shield do cabo á massa para assim se tornar mais imune ao ruido.
Título: Controlo de estufa - (Problemas com a distancia Arduino + LM35 -resolvido)
Enviado por: mrr em 16 de Agosto de 2010, 19:53
Boas pessoal,

Depois de algum tempo ausente decidi voltar, desta vez para publicar o resultado do sistema que consegui montar.
Desde já agradeco a todos os que me ajudaram, sem vocês isto não era possível.

Agora o sistema, já está a funcionar a quase dois meses e meio sem problema nenhum até agora detectado, 24hx7dias sempre a bombar. 

O sistema actual esta a controlar a abertura e fecho de janelas de uma estufa, apenas tem como valores de input a temperatura e % do estado a que se encontra a janela, a partir desses dois valores tenho um PC com um programa feito em C# que tem um interface simples onde se pode parametrizar vários valores e que esta constantemente a fazer cálculos de forma a dar ordens ao arduino quando algo deve acontecer.

O sistema é composto por:
    - Arduino;
    - LM35 (Sensor de temperatura);
    - Potenciómetro (Sensor de % de abertura);
    - 2 Rele 12V (Manda abrir ou fechar a janela);
    - PC (Programa que controla o sistema).

O próximo passo era integrar mais sensores (humidade+temperatura exterior+velocidade do vento+chuva+direcção do vento) para ter um melhor controlo, mas algo que para mim esta-se a tornar complexo de mais para quem não percebe nada de electrónica. Mesmo assim vou tentar, penso conseguir obter ajuda com vocês,   ;).