[RESOLVIDO] Arduino Resetando Aletoriamente - Trabalho de conclusão de curso

Olá amigos, gostaria de contar com a ajuda de vocês pois estou com um problema em meu trabalho de conclusão.

É o seguinte meu projeto consiste em controlar uma subestação de abastecimento para pequenos distritos (até 300 pessoas) através da utilização da plataforma Arduino juntamente com o software de supervisão ScadaBR, ou seja, a principal intenção do projeto e diminuir os custos finais para a empresa que cuida desse tipo de serviço, já que nesses tipos de locais o controle ocorre por comandos elétricos e sem nenhum tipo de monitoramento, já que muito das vezes os funcionários não se encontram no local.

Estou utilizando um Arduino UNO, Ethernet Shield W5100, Modulo Relé 5v de 8 canais que esta sendo alimentado por uma fonte externa de 5v (já foi testado outra fonte), um sensor ultrassônico HC-SR04, lâmpadas, botões e contatores para a parte de potência. A parte de comando está totalmente separada da parte de potência, sem risco de interferência

Bem, vamos ao que importa, meu projeto está funcionamento corretamente, apenas em momentos bem aleatórios o Arduino insiste em resetar, já realizei vários testes tais como:

- Tirei partes do código que não afetavam o funcionamento do sistema apenas para teste;

- Removi toda parte de comunicação;

- Alterei partes do código sem alterar a lógica para testar;

- Testei outro ethernet shield novo, e sem ethernet shield;

- Toda parte elétrica foi conferida e está tudo correto;

- Trocamos os contatores;

Ainda existem mais testes que foram realizados que não me recordo.

Estou postando o código e algumas fotos para vocês entenderem melhor o projeto. Desde já agradeço a ajuda.

Link do código: http://pastebin.com/hQvSy41r

Exibições: 3257

Responder esta

Respostas a este tópico

Já estou utilizando assim José, uma fonte 9v para o arduino, uma fonte 5v para o módulo e tensão 220v para os contatores, agradeço a atenção

Estava testando hoje a noite e realizei as seguintes alterações:

- Fiz um sistema de aterramento no GND da parte de comando;

- Alterei o modo de alimentação do módulo relé deixando igual a de uma imagem que postaram anteriormente neste tópico;

- Desliguei as cargas e deixei apenas os contatores acionando;

Com a primeira alteração o sistema aparentou ficar mais estável, porém continuou resetando, já na segunda alteração continuou a mesma coisa, porém na terceira alteração o sistema não resetou mais, pelo que entendi, é carga que está no contator que está gerando o problema. Agora que vem a dúvida, que tipo de interferência é essa?

Todo contator quando fecha seu contato, que esta relacionado com a carga, gera uma faísca, esta faísca é diretamente proporcional a carga que esta acoplada nos contatos, essa faísca segue como sabemos, segue o principio da lei de conservação da energia,  Wikipedia  que em seu enunciado diz:

A  energia não pode ser criada nem destruída: a energia pode apenas transformar-se, ora, se existe uma faísca, sabemos que ela não traz nenhum beneficio,( E gera um campo magnético, quase invisível ao olho humano, mas não invisível para um microcontrolador)  não é aproveitada, se dissipa em forma de luz calor etc.

Embora não seja beneficiosa, seu efeito é  negativo neste caso, ela existe, e afeta diretamente o Arduino que não tem nenhum tipo de proteção contra EMI, nem em sua entrada, nem em sua saída, apenas tem watchdogs que em caso de sobrecarga nos pinos resetam a placa para evitar danificar-la, e para mim é isso o que esta acontecendo.

Teste com semicondutores, neste caso a melhor solução é o SSR, alem de comutar cargas de alta potencia, não gera faísca, e sua entrada pode ser ligada diretamente na saida co Arduino porque o mesmo esta isolado através de um optoacoplador, e se ativa com os +5V (HIGH) do port sem necessidade de resistor limitador porque o modulo SSR já tem integrado o R limitador.

Minha experiencia com este tipo de comando de potencia não me deixa duvidas.

Boa sorte

Abs.

CK

Existem circuitos R/C para supressão de ruidos em contatos de relés.

Como a carga é gigante, procure um eletrotécnico. 

Microcontroladores e contatores não se dão bem, ou você retira o UNO do gabinete onde estão os contatores e qualquer outro tipo de influencia de campo magnético, ou faz uma caixa metálica para embutir o UNO e aterra a carcaça, como as carcaças de fontes chaveadas por exemplo, ou usa SSR.

Snubbers, rede RC são inviáveis nesta aplicação, seja pela própria topologia, seja pelo custo beneficio.

Aqui um link muito útil para quem queira conhecer um pouco acerca de redes RC e circuitos snubber.

Link AQUI NO FINAL DA PAGINA LINK PARA CALCULOS

Boa sorte.

Abs.

CK

Obrigado pelas respostas Carlos estão sendo de grande utilidade, peço se possível para que leia minha ultima postagem no tópico sobre os resultados parciais que obtive, e também peço que de sua opinião. Obrigado

Agradeço a todos pela atenção, meu tempo está um pouco corrido então está difícil de conseguir responder a todos.

Ontem realizei mais testes e consegui resolver o maior problema que era o reset do microcontrolador, para isso tive que remover o fio que saia do contator do botão de emergência e ia para o arduino, agora após resolver esse problema surgiu outro rsrs, vocês lembram que citei que o sistema funcionava normalmente sem carga? então, após a remoção do fio o sistema começou a travar o microcontrolador e perder a comunicação com o scadabr, até mesmo sem a carga, porém quando não estamos transmitindo dados pelo supervisório o sistema funciona perfeito sem travar, realizando alguns testes verificamos que conforme alguns dos contatores comuta (sem carga), a computador notifica que "O cabo de rede foi desconectado", ou seja agora a comutação dos contatores estão causando a interferência no ethernet shield. Agora creio que a utilização do filtro snubber RC em paralelo ao contator resolva totalmente o problema, em último caso iremos isolar os contatores do sistema de comando.

O snubber precisa ser colocado em 2 lugares:

1) Na bobina do contator. Ele salva o contato do relé de arcos.

2) No motor. Ele salva o contato do contator de arcos.

podem ser colocado no contato do rele e no contato do contator. Dá quase no mesmo, mas não exatamente no mesmo. A existencia dele no circuito faz o problema diminuir drasticamente, esteja onde estiver. No entanto estando no contato ele deixa a rede em série com o circuito ao desligar. Descarregando residuos que não tirou na rede.

Grandes especialistas em comutação de baixo custo de motores são os fabricantes de ar condicionado/refrigeraçao. Veja um esquema deles:

http://www.fullgauge.com.br/manual-de-produto-31

A tal peça (F) é o snubber.

Obs: Desculpem se já foi dito, li apenas o ultimo post, normalmente leio tudo para não gerar eco, mas dessa vez está corrido...

Agradeço a atenção Eduardo, vi o link postado e o snubber utilizado no manual é do mesmo tipo que irei comprar, vou comprar alguns a mais para sobrar, porém primeiramente irei conectar em paralelo a bobina.

Olá Matheus,

Sabe como são estas coisas, tentativa e erro, até que tudo fique redondinho, tente a colocação do filtro e post o resultado.

Já tive problemas com o Ethernet Shield, por falso contato nos pinos SPI por onde ele se comunica, as vezes mal encaixado outras tive que encharcar os contatos com WD40, é um pouco logica e uma pitada de empirismo, tente um passo por vez para ter certeza de cada problema.

É inegável que esta sendo uma TCC muito bom para aquisição de conhecimento.

Estarei acompanhando até a resolução, e sempre darei minha opinião.

Boa sorte!

Abs.

CK

Eu também já tive problemas com um ethernet shield mais antigo, onde por exemplo, as leituras pelas portas analógicas realizadas pelo shield eram totalmente sem sentido, para resolver tive que entortar o pino do shield que era conectado as portas analógicas do arduino para então conectar os jumper e normalizar a leitura.

Obrigado e agradeço a ajuda.

Tentativa e erro, por isso que falam que eletronica eh arte neh

Tem cada coisa que vejo que considero como arte de tao bem feito.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço