desculpe pelo comprimento.
Esta é uma continuação da minha pergunta recente . Eu tenho uma placa de 8 relés acoplada que estou tentando conectar ao meu microcontrolador. Coloquei um registrador de deslocamento 74HC595 em linha para consolidar as portas de entrada. Entretanto, ao fazer isso, o conselho exibiu algum comportamento estranho.
Se eu não conectar nada, ou apenas uma pequena carga nos relés, tudo funcionará bem usando o registrador de mudança. Eles ligam e desligam sem problemas. Assim que eu conecto uma bomba de mais de 1 amp no relé, você pode ouvir o disparo do relé e ele dispara rapidamente. O LED IN1 (diagrama acima) também acende por uma fração de segundo. Às vezes, porém (1 em 5), o relé e a bomba realmente permanecem ligados. Agora é aqui que fica estranho; se eu remover o registro de mudança e conectar os pinos diretamente ao microcontrolador, ele funcionará bem ao ligar a bomba.
Então, a interferência no registro de mudança foi levantada, mas até onde eu entendo o design da placa de relé, o registro de mudança está apenas alimentando o LED no acoplador óptico (U1) e não está de forma alguma conectado a nenhuma outra parte do circuito (registro de mudança e o controlador foram alimentados por bateria). A placa também é Active Low, pelo que entendi, o registro de deslocamento está afundando a corrente do acoplador óptico. Será que o acoplador óptico está exigindo mais corrente para mudar a carga mais alta do que o registrador de deslocamento pode afundar? Eu posso estar muito longe, pois isso me deixa perplexo. Além disso, existe alguma maneira de a interferência aparecer, mesmo estando isolada e com a bateria?
Todos os testes foram realizados com uma bateria alimentando o microcontrolador \ shift register, e um esboço muito simples que visava apenas um único registro de deslocamento, pin por byte.
O 8-relé ( Info ): Atualmente está configurado com uma verruga de parede de 5V separada, alimentando os relés. O microcontrolador fornece 5V para alimentar apenas o acoplador óptico.
Agradeço qualquer ajuda que você pode me dar.
Atualização 13 de agosto:
Ainda não foi possível, mas fiz muitos outros testes: movi o registrador de turnos e o Arduino a 3 pés de distância dos relés e da rede elétrica. Ambos foram alimentados por uma bateria de 9V. A única coisa conectada à placa de relé era um trilho de 5V do Arduino e os 8 fios do registro de turno para as entradas da placa de relé. Mesmos resultados, a luz de 100W funciona muito bem, a bomba faz com que ela desapareça. Se eu remover o registro de mudança e conectar os pinos de saída diretamente ao Arduino, a bomba será ligada sem problemas.
Só para verificar se não estava acontecendo nada com a verruga de parede de 5V dedicada que alimenta os relés, desconectei e substituí o jumper no JD-VCC e VCC e conectei o Arduino GND. Mesmo resultado, a luz de 100W funciona, a bomba faz com que ela desarme.
Tem que ser registro de turno.
Também coloquei um capacitor de desacoplamento de 47uf nos trilhos de potência, assim como o registrador de turnos tem um 104 ao lado dele.
Hoje à noite vou tentar alinhar um multímetro com um dos pinos de saída. Quero ver quanta corrente o acoplador óptico está puxando.
Acabei de adquirir um osciloscópio também, então ainda estou aprendendo a usá-lo, mas talvez eu possa descobrir como medir qualquer interferência no trilho de 5V ou nas linhas de saída.
Atualização 14 de agosto:
Consegui capturá-lo falhando com o meu osciloscópio. Arquivos Rigol wfm abaixo. O canal um está conectado a um pino de saída no registrador de deslocamento. O canal dois está conectado ao trilho de 5V.
Acabei de fazer alguns testes e consegui reproduzir um pico de 500mv-1V (às vezes era uma queda) no trilho de 5V e em um dos pinos de saída do registro de mudança. Esse é o problema certo? Esse tipo de pico faria o registro de turnos disparar e agir de maneira estranha?
15 de agosto:
Abaixo está uma captura quando eu ligo manualmente a bomba. Não usando o registrador de turnos para fazer isso. A linha azul é o pino de saída 1 do Shift Register, a linha amarela é de 5V.
Também tirei algumas fotos da instalação:
Também tenho uma postagem no fórum para a qual tenho atualizado os resultados: Fórum do Arduino
16 de agosto:
Consegui capturar uma imagem muito melhor hoje. Eu não percebi que o osciloscópio só captura tantos pontos quando rodava em intervalos de 1 segundo (totalmente faz sentido agora). Aqui está o emi mal sobre o Pin 1 do registro de turnos:
Vou pegar todos os componentes recomendados neste fim de semana e tentar adicioná-los um a um.
18 de agosto:
Problema confirmado. A bomba estava causando tanto ruído que nada que eu pudesse fazer nas linhas de baixa potência poderia conter as ondulações. Essas ondulações estão chegando ao registrador de turnos \ trava \ pinos de dados e causando corrupção \ redefinem.
Então fui ao extremo extremo e rasguei um circuito protetor de surto de alta potência da APC Rack e o coloquei na frente da bomba.
Agora, mal há um pontinho em qualquer uma das linhas em qualquer lugar. Viva!
Agora, o objetivo principal era manter isso contido na área ocupada do gabinete, para ver se consigo fazer uma versão mais compacta, pois acho que essa placa é um exagero e preciso de uma para cada uma das 5 bombas que tenho. Vou começar com apenas um único MOV e ver quanto ele reduz o ruído.
Problema resolvido: Decidi comprar um filtro de linha para ver se conseguia filtrar o ruído da bomba diretamente na fonte. Eu comprei este: Delta High Performance Filter . Agora eu nem percebo um pontinho no osciloscópio.
Obrigado por toda a ajuda a todos, gostaria de poder marcar todos vocês como solucionadores, mas não posso, então dei a quem ofereceu mais dicas.
fonte
Respostas:
Como é conectado o registro de turno? Você tem um capacitor de desvio de 0,1 uF nos fios de energia próximos ao pacote de IC?
Parece-me um problema de ruído, principalmente porque é acionado apenas quando você tem uma carga nos relés. O fato de resultar na redefinição do estado do registro de turno sendo redefinido me faz pensar que é um problema de energia.
Além disso, como você está conectando o registro de turno.
Com um 74HC595, você precisa:
Por fim, você precisa de um capacitor de desvio de 0,1 uF entre o pino 16 (Vcc) e o pino 8 (Gnd).
fonte
Tente mover o Arduino o mais longe possível do módulo de relé e bombeie como for prático. Verifique também se algum cabo relacionado à energia da bomba não está próximo ao Arduino.
Em seguida, use um par trançado ou cabo CAT5 para enviar o sinal liga / desliga do Arduino.
Não consigo abrir o arquivo wfm (acho que são alguns valores hexadecimais, mas isso será difícil de visualizar se aberto de qualquer maneira), mas a partir da sua descrição parece que você capturou o evento.
Esse pico (que pode ser mais rápido / maior do que o mostrado no seu escopo, dependendo do BW e das configurações) provavelmente será o problema. Ainda não se sabe como esse pico está entrando em seus trilhos - acho que nesse momento uma ou duas fotos de sua configuração provavelmente ajudariam muito e, se possível, um diagrama detalhado de toda a sua fiação (bomba, módulo de relé, tudo fontes de alimentação, arduino, etc)
O adaptador de relé e o terra do arduino estão ligados?
EDIT - olhando para a foto, o layout não parece ótimo, é um pouco apertado. Parece que há cabos de alimentação passando por baixo do módulo de relé - eles podem estar acoplados ao lado isolado do Arduino. Tente afastá-los, se puder.
Além disso, você realmente deve usar o CAT5 ou similar para o sinal do registrador de mudança - execute-o junto com o 5V para diminuir a área do loop.
Neste ponto, eu também tentaria adicionar alguns diodos de polarização reversa a 5V e aterrar a partir da saída do registrador de mudança, para prender qualquer pico que aparecer (zener de 5V opcional, mas é uma boa ideia se você tiver um)
Você também pode colocar um capacitor pequeno da linha ao terra (por exemplo, 100nF), pois é apenas um sinal de chave.
Para ter certeza absoluta de que não há conexão entre algo que não deveria existir, provavelmente vale a pena testar a continuidade entre o terra do Arduino e o módulo do relé e o Arduino 5V e o relé 5V.
fonte
Isso certamente soa como um problema de interferência eletromagnética.
O terra da fonte de alimentação do Arduino deve ser conectado ao "terra verde" do seu sistema de energia local. Um plugue em branco com um único fio para o 'terra verde' pode ser usado.
Tente separar fisicamente a fiação da bomba do material do microcomputador.
Você também pode adicionar um MOV (varredor de óxido de metal) na bomba para absorver os picos que podem ocorrer quando a carga é trocada.
Quais são os níveis de tensão e corrente da bomba?
Sua fiação parece certa.
fonte