Estou com um projeto onde o arduino ira monitorar 3 sensores  

ontem fazendo alguns testes percebi que mesmo sem o sensor B estar conectado quando variava o sensor A o B tambem estava variando. Sera que é por que o circuito dos 2 sensores usa a mesma alimentação? como posso contornar isso.

Valew

Exibições: 4975

Responder esta

Respostas a este tópico

Fabiano, quando você diz que "o sensor B também estava variando", você quer dizer que a leitura no Arduino variava, ou que o sinal de tensão medido com multímetro em J3 variava?

Vejo três possíveis problemas:

1. As entradas analógicas no Arduino têm impedância muito elevada. Por isso, é interessante fazer a leitura apenas quando algo esteja efetivamente conectado ao pino. Com a entrada flutuando você pode ler qualquer coisa.

2. Ao fazer a leitura analógica com o Arduino, certifique-se de que os resistores de pull-up estejam desabilitados e que o pino utilizado esteja configurado como entrada. Para isso, execute nesta ordem:

pinMode(pino, INPUT);  // configura como entrada

digitalWrite(pino, LOW);  // desabilita resistores de pull-up

3. O datasheet do ATmega recomenda que leituras sucessivas de duas ou mais entradas analógicas sejam realizadas com um intervalo entre elas. Ou seja, pode haver interferência se você executar dois comandos analogRead, um imediatamente após o outro, em pinos diferentes. Coloque um delay entre as leituras.

Espero que ajude!

Abraços!

muito obrigado...

Acredito que o delay entre as leituras resolva

Caro Fabiano, 

a informação que você nos passa é muito enxuta. Eu possa dar uns palpites:

  • Os CIs analógicos têm que estar montados numa placa de circuito impresso. Nunca em protoboard!!!!;
  • É importante separar o GND dessa parte analógica do GND do arduíno, juntando-os apenas no GND da fonte;
  • Não vi no seu desenho capacitores de desacoplamento da alimentação (Vcc e GND). Tradicionalmente coloca-se de 1 a 10 uF de tântalo em paralelo com outro de 0,1 uF cerâmico, e em casos de necessidade de uma filtragem mais elaborada, coloca-se outro de 0,01 uF de cerâmica em paralelo também. Os capacitores devem ser um conjunto para cada CI analógico e colocados o mais próximo possível do componente;
  • Se ainda assim o ruído persistir, você pode optar por colocar um indutor de filtro SMD,(Ferrite Beads) que varia a sua impedância predominantemente resistiva conforme aumenta a frequência do ruído (Típico 600 Ohms a 100 MHz), não deixando que ele entre pela alimentação do CI. Às vezes um resistor de 1 Ohm faz o mesmo efeito
  • Na placa de circuito impresso, deve-se separar os sinais analógicos dos digitais e prover grandes áreas de GND em volta dos sinais sensíveis;
  • Manter os sinais sensíveis o mais curto possível;
  • Colocar sua interface numa caixa metálica e conectar essa caixa ao GND;
  • etc...

Tem um Application Note da Burr Brown / Ti  sobre isso, que se eu encontrar eu posto aqui.

Se for problema de hardware, alguma das ações descritas o um conjunto delas certamente trará bons resultados!

Boa sorte! Abraço!

Henrique

consulte sempre um engenheiro eletrônico

 

Opa tentarei implementar algumas dessas ações também.

Muito obrigado pelas dicas...

E se encontrar o Application Note da Burr Brown / Ti   posta ae pra gente... vai ser muito útil, acredito que muitos outros ja tiveram esse tipo de problema.

Estou com o mesmo problema...porém o pino analógico não me dá o valor correto medido....e quando eu desconecto os fios da entrada, o arduino continua imprimindo uns numeros nada haver...será q meu arduino ja era?

Kleber,

O Arduino vai SEMPRE ler algum valor nas entradas analógicas. Se você deixar o pino solto/desconectado (flutuando), o valor lido irá oscilar de maneira aparentemente aleatória. Se você quiser ler valor zero e estável, conecte o pino de entrada ao GND de sua placa.

Felipe...obrigado...como estou utilizando um sensor DTh11 + um divisor de tensão eu vou utilizar um capacitor pra corrigir o fator.....

obrigado pelo esclarecimento...abraços

Kleber, o sensor DTH11 tem saída DIGITAL. A ligação correta dele ao Arduino e um exemplo de programa para utilizá-lo podem ser encontrados aqui:

http://learn.adafruit.com/dht/connecting-to-a-dhtxx-sensor

Sim.,,,saida digital..obrigada Felipe

Fabiano, tb nao vi no seu desenho o uso de capacitores, creio que esse seja o problema.

Isso tem cara de tempo de amostragem baixo.. Verifique a impedância de saída dos seus sensores e calcule o tempo minimo para um canal do AD não interferir no outro, use ao menos umas 6 constante de tempos RC para a entrada no pior caso.

Good luck!!

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço