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

Responder esta

Respostas a este tópico

Fotos da placa principal da Electrolux LTE12 :

Olá,

  Sofro bastante com isso, segue um resumo do que vc deve observar:

  1) Os sinais devem ter baixa impedância, digo: Fios "abertos" "pegam" mais interferência. Por ex: Se vc vai usar um contato a GND para indicar que um sensor atuou, quando ele está aberto é preciso que o pullup seja baixo, deixando ele certamente em 5V. 10K bastam, mas o "INPUT_PULLUP" não basta. Na duvida 4K7. 

  2) O GND precisa ser grosso e partir da fonte para cargas que gerem ruidos. Por ex se vc tem etapas de sensoreamento, microcontrolador e motor vc precisa que cada um venha da fonte (se unem só no conector da placa por onde vem a fonte). Caso negativo a trilha do GND com corrente maior pode gerar ruidos nos seus sensores.

  3) Coloque capacitores. É meio que uma regra. 100nF espalhados. Antigamente as placas usavam 1 por integrado. Hj em dia podem ser menos mas precisamos ao menos para as regiões da placa.

  4) Use fios curtos. enrolar fios é bastante ruim. 10 voltas de fio são 10x mais suscetíveis a ruídos indutivos que 1 volta de fio. 

  5) Nunca permita que seu circuito gere fagulhas (nos contatos). Elas geram um ruido terrível. Um radinho AM é perfeito para procurar esse tipo de ruido, mas vc não precisa dele. Só de imaginar já elimina. Sempre que tiver carga indutiva sendo acionada em DC é preciso um diodo e se for em AC um snubber. Eu gosto de comprar o snubber montado, vende em loja de componentes para refrigeração. Sempre que ponho a mão em um painel que tenha contatores saio colocando, melhor coisa. Já vão na mochila...

Alo Eduardo.

Obrigado pelas dicas. Serão MUITO úteis, e levarei em consideração, certamente.

Mas, como já respondi ao colega Murta, minha preocupação é com os fatores externos ao projeto e não diretamente vinculados a ele, tipo motores elétricos com escovas próximos, interruptores de luz, induções eletromagnéticas de lâmpadas fluorescentes e similares. Parece-me que o arduino tem uma certa sensibilidade para "captar" tais interferências.

Para eles o q vc pode fazer é diminuir as impedâncias (item 1). Nos pinos que vc usa com pullups relativamente baixos e nos que não usa com aterramento. É tudo que vc pode fazer. O microcontrolador não é assim tão sensível. Tanto que ele pode ser colocado dentro de liquidificadores, secadores de cabelo, painel de fogão com partida a faísca, basta ter as preocupações com aterramento, encurtamento (especialmente do cristal), etc. 

Os fatores externos serão minimizados (eles vão transmitir os sinais que podem interferir mas vc minimizará os efeitos) com esses cuidados.

Se vc está falando em modificar o ambiente para tornar ele mais adequado ao microcontrolador está falando da instalação de snubbers nas cargas indutivas. Um motor de escovas deveria vir com isso dentro de fábrica...

Blindar (colocar dentro de caixas metálicas) pode ser também uma saída, como se faz nos módulos automotivos. Mas para as situações normais seria um exagero.

Nada adianta ainda se os fios saem do módulo e captam interferência do lado de fora.

Usando fonte chaveada vc já fica imune a ruidos de rede. Use as que são de 90 a 240V.

Ok. Valeu pelas dicas, Eduardo. Estou anotando tudo.

Não tenho como eliminar os ruidos ambientes pois dependerá do ambiente de cada usuário que utilizar o projeto. Então, tenho que tentar reduzir a possibilidade de influências externas. O projeto em si será bem compacto , com um minimo de fios, e mesmo assim curtos, tipo 15/20cm. Só usarei um porta de entrada, , analógica, para um sensor NTC, uma porta digital como saída para controle PWM de um SSR, e 4 relés mecânicos, com proteção R/C nos contatos.
Muito obrigado pelo interesse e por partilhar seu conhecimento.

Bom dia,
Estou com o mesmo problema, fiz um coletor de dados de produção, onde conta peças que passam numa esteira, porem, quando a acionam qualquer maquinario dentro da fabrica o ESP8266 que estou utilizando lê HIGH na porta de entrada mesmo com o sensor em LOW, ja ativei pulldown e nao resolveu. Estou utilizando uma fonte chaveada consideravelmente boa da schneider electric para alimentar o sensor e o esp. Creio que o cabo do sensor que estou utilizando seja muito comprido, em torno de 10 (dez) metros. Li em alguns foruns em encurtar o cabo utilizando um rele acoplador para o sensor e trabalhar com nivel de sinal de 24v no sensor. O sensor q utilizo é daqueles de infra vermelho 5v E18-d80nk.
Vou seguir sua recomendação de colocar o esp dentro de uma pequena caixa metalica para blindar e vou mudar o sensor para um industrial 24v e rele acoplador pra ver se resolve.

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