Arduino - Sensibilidade à ruídos de rede, transientes, etc..

Li alguns artigos em que projetos foram prejudicados nas leituras por ruídos de rede elétrica (transientes), e com isso levavam a falsas leituras prejudicando ou invalidando a programação.

Eu próprio tive problemas com um sketch que funcionava perfeitamente, mas as vezes "pulava" uma ou mais etapas que dependiam de leituras externas. A única explicação que achei foi a de leituras erráticas proporcionadas por interferência/indução elétrica em uma ou outra porta de entrada do tipo LOW/HIGH, causadas talvez por motores de escova tipo liquidificador ou aspirador de pó, ou mesmo interruptores de lâmpadas.

Alguém tem alguma sugestão de como eliminar ou minimizar estes sérios inconvenientes, especialmente em sensores localizados distantes do Arduino onde os fios acabam agindo como antenas e captando estas interferências elétricas?

Exibições: 263

Responder esta

Respostas a este tópico

Bom dia, 

Você não deve usar fios compridos conectados em portas do Arduino. Qual o comprimento dos fios que esta usando?

Dependendo da distância, use cabos blindados (como o de áudio - aterre a malha).

Bom dia josé,

Ia mesmo tentar contato com você, pois vi alguns comentários seus sobre o assunto aqui no Lab.

Num comentário de outro garagista ele utilizava algumas dezenas de metros até o sensor, o que explicaria, pois nessa grande distância o fio agia como uma excelente antena, captando muito ruído.

Mas no meu caso a fiação era bem curta, 20cm ou menos.

Como meu sketch funcionava perfeitamente bem na maioria das vezes, falhando apenas nos momentos de alguma leitura de sensor, não me restou outra conclusão que não a de indução de ruído elétrico, ocasionado um falso HIGH na leitura do sensor.

Não pude comprovar, mas acredito que o uso de aspirador de pó, liquidificador, ou mesmo um interruptor de lãmpadas poderiam estar causando este ruído na rede, especialmente os motores com escovas, que produzem farto ruido na rede.

Já faz  uns dois anos que não ativo este projeto, mas acredito que tenha inclusive feito um algoritmo para fazer umas 10 leituras do sensor para ver se na média era de fato um HIGH, e não funcionou, o erro ocorria aleatoriamente.

Agradeço se tiver alguma orientação ou sugestão, pois estou desenvolvendo um projeto onde falsas leituras não são admissíveis.

Um abraço,

Lauro Becker - bybecker@gmail.com

Boa tarde, 

Use cabos blindados com malha. E o problema poderá ser resolvido. 

Uma outra forma de reduzir ruídos é acrescentar um capacitor em paralelo com a chave (switch).

Você não nos deu detalhes da sua montagem. 

Boa tarde Murta.

A montagem foi a automatização de um tanquinho de lavar roupas.
Básicamente tratava-se de um sensor de nível dágua, e quatro relés, que ligariam 2 válvulas de água (solenoides), o motor de lavagem, e uma bomba de drenagem.
O primeiro sensor de nivel que usei utilizava a condutividade elétrica da água para verificar se o nivel tinha sido atingido, onde o estado de leitura passaria para HIGH, fechando a entrada dágua. Funcionava, as vezes.

Mas a leitura era, as vezes, errática, mesmo usando um pressostato normal de lavadora, que é um simples interruptor.

Como mudei de estado, o projeto está parado a uns 2 anos, e não lembro de algumas coisas, mas o que posso dizer é que o sketch funcionava muito bem, em boa parte das vezes. Mas de vez em quando enlouquecia....kkkk
Mas gostei muito das dicas do garagista Mineirim RV que fazem sentido, e pelo menos eliminariam outras portas do arduino como responsáveis por eventualmente "captarem" alguns ruídos de rede.
Mas continuo aberto a sugestões e idéias que possam, quem sabe, eliminar tal hipótese de influências externas indesejadas.
Obrigado.

Oi LEBJ,

com estas novas informações (uso de valvular e reles no  projeto), com certeza

de 99,99%, o problema são estas cargas indutivas gerando "spikes".

Use snubbers para "amenizar" estes "spikes".

RV

Já tenho por hábito usar filtros R/C em qualquer relé.
Mas os problemas que tive me levam a crer que os erros apresentados na execução do sketch não foram gerados pelos componentes do projeto e sim por leituras erráticas de sensores e/ou portas não utilizadas pelo Arduino. E realmente acredito que leituras falsas foram induzidas por fatores externos, tipo gerados por motores elétricos com escovas, nas proximidades sem vinculo com o projeto. Também acho que interruptores de luz ou até emissões eletromagnéticas de lâmpadas fluorescentes possam ter alguma influência.

Bom dia LEBJ,

além da recomendação do amigo  José Gustavo Abreu Murta , também recomendo:

Corrigir possíveis  GND Loops;

Definir como saída todos os ports digitais que não estiverem sendo usados;

Ligar para GND todos os ports analógicos que não estiverem sendo usados;

Se estiver usando fontes externas, colocar um capacitor de pequeno

valor ~.01uf, logo na entrada do arduino.

RV

Obrigado. 
Boas e úteis dicas, amigo. Fazem sentido. Vou adotar em meu novo projeto.

Muito obrigado. Um abraço.

Lauro Becker

Lauro, veja o diagrama esquemático da minha lavadora Electrolux LTE12 :

Os cabos devem ter mais de 20 cm e não são blindados e o Microcontrolador funciona perfeitamente. 

Devem existir circuitos na placa, que filtram esses ruídos. 

Caro Murta,

Minha preocupação não é com as placas do projeto, e sim com ruídos induzidos pelo ambiente próximo, tipo motores de escovas, interruptores de luz, indução eletromagnéticas de lâmpadas fluorescentes, e similares.
Acredito que o arduino tem uma sensibilidade de "captar" tais interferências externas ao projeto caso trabalhe em um ambiente "poluído" com estas fontes, entende? Por isso achei interessante a sugestão de "aterrar" as entradas analógicas não usadas, e setar com OUT as portas digitais também não usadas.

Lauro, eu enviei as fotos, para você ter uma ideia de como é uma placa de controle de máquina de lavar. 

Um detalhe muito importante, que talvez não tenha percebido :

 - essa placa tem uma fonte chaveada interna. 

Recomendo que faça a alimentação do seu Arduino com uma fonte chaveada. Acredito que dessa forma, já vai limitar bastante os ruídos captados através da rede elétrica. Veja o indutor L1 na placa, que é o responsável por essa proteção.

Além disso, veja os varistores que cuidam da proteção na entrada da tensão da rede. 

Interessante.

Talvez seja um preciosismo meu, mas preciso realmente minimizar a ocorrência de possíveis erros, até por questões que possam envolver raríssimos, mas possíveis processos judiciais, em caso de falha de projeto.

A idéia de usar fonte chaveada é interessante. Anotado.

Obrigado.

RSS

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2020   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço