Problema com rele

Olá makers,

Então estou montando um projeto de um controlador de temperatura com arduino standalone e reles para acionamento de uma geladeira e de uma lampada, o que acontece no meu projeto é que certa vez ao ligar o motor da geladeira o arduino resseta, já tentei até usar relês de estado solido e o mesmo acontece.
Conforme o que já estudei e vi esquemas pela internet não estou consseguindo identificar qual é o meu problema.
Alguem saberia me dar alguma luz do que eu possa verificar no meu circuito ou como testar esse para identificar onde estou falhando ?

Olá,

Pode ser que ao ligar o motor, o arduino esteja recebendo picos de corrente na placa forçando o microcontrolador a reiniciar. Ou o terra do relê esteja conectado ao terra do arduino. Se você poder fornecer mais detalhes do circuito ou como a ligação foi feita, fica mais fácil para ajudar.

Att,
Diego

Olá Diego,

Então segue o desenho da protoboard e da pcb que estou fazendo.

Só para falar um pouco do projeto o J3 é o conector para um sensor de temperatura DS18B20 (A prova da água) o J2 é um conector para um teclado com 5 pushbuttons e o J4 é um conector para um display lcd 16x2

Olá,

Ao que vejo o GND dos dois está conectado, só que estou usando uma fonte de alimentação 12v 1amp no J1, teria que ter duas fontes de alimentamentação ou tem como fazer isso corrigindo o circuito ?

Então…o relé tem duas partes, a bobina e os contatos, e existe uma isolação natural entre elas, pelo próprio jeito que o relé é construído. Dessa forma, não há problema em se conectar o terra do microcontrolador ao terra do relé, desde que a conexão seja feita apenas do lado da bobina, o que parece ser o seu caso. O que seria um problema é compartilhar o terra do microcontrolador (ou qualquer outro sinal) a um outro circuito ruidoso que seja acionado pelos contatos do relé, mas como você está acionando diretamente a rede AC, isso nem seria possível.

Aliás, como aparentemente o seu relé é acionado diretamente pela tensão de 12V da fonte, não é necessário utilizar os optoacopladores, você pode acionar os transistores direto pelos pinos do microcontrolador (com um resistor em série), já que o relé já faz o papel de isolar os dois lados.

Você tem o esquemático deste circuito? Olhado só o protoboard e a placa fica difícil de analisar mais a fundo.

Os possíveis problemas que eu consigo imaginar olhando as imagens são:

  1. Qual é a função do LED 3 e LED4? Eles são um indicador de quando os relés estão acionados? A ligação me parece um pouco estranha…se for isso, acho que você deveria ligá-los diretamente em paralelo com o optoacoplador, e conectar o polo negativo do opto direto ao GND. Se você for tirar o opto, ligue o LED em paralelo com a bobina do relé.

  2. Coloque um capacitor grande (uns 10uF), em paralelo com outro pequeno (100nF), bem próximos dos pinos de alimentação do microcontrolador.

  3. Veja se a sua fonte de alimentação tem corrente suficiente para acionar os dois relés ao mesmo tempo (acho que uns 500mA já deve ser suficiente).

  4. Desligue todos os cabos da saída do relé e faça o acionamento dos mesmos sem carga, o microcontrolador ainda reseta? Se ele parar de resetar é porque provavelmente a geladeira gera um ruído, que se propaga pelos cabos AC da sua casa, passa pela sua fonte e chega até o processador. Nesse caso, os capacitores do item 2 podem ajudar. Se continuar resetando, é porque tem alguma coisa errada com o seu circuito (mande o esquemático de possível).

Att.

Desculpa a demora mas tive que fazer o schematico, pois ainda:
não sei fazer muito bem isso.

Olá gustavo,
Como o seu circuito é alimentado externamente, o pino reset é ligado(nível baixo) quando a tensão é 0v, e desligado quando é 5V(nível alto), portanto ele deve manter uma tensão de 5V para não reiniciar, se a tensão cair um pouco nele, ele considera como nível baixo e reinicia, o nível baixo não é exatamente 0, ele tem uma tolerância de valor. Como o seu pino de reset está ligado diretamente na alimentação, qualquer queda de tensão na alimentação irá influenciar também no pino reset. O que deve estar acontecento é que o colega @furlan furlan citou, siga as dicas dele, para resolver o seu problema.

Olá @furlan

Obrigado pela ajuda, então:

  1. Sim o led3 e led4 são indicadores de que está ativo os reles;
  2. Coloquei os capacitores um 10uF 16V eletrolítico e um 100nF 50V disco cerâmico conforme imagem anexa, e o problema persistiu;
  3. A maior fonte que disponho é uma de 12v 1 Amp que é a utilizada, pelos meus cálculos deveria dar, vou ver se consigo uma maior;
  4. Ao acionar sem os reles estarem conectados está funcionando, o problema é com os equipamentos ligados, fiz um teste com um ventilador e assim, ao diminuir a temperatura do ventilador o arduino não reseta, mas ao que aumento a potência esse reseta;

Estou repensando se realmente reseta o arduino pois os reles continuam atracados mas o display se apaga, coloquei um capacitor (10uF 16V eletrolítico) na alimentação do display e mesmo assim o problema persiste.

Conforme o @diego citou acabei por dessoldar o push button e o resistor do reset e o problema persiste

li por alto seu problema, mas acredito que esteja com a fonte… a fonte poderia ser de 10000A, mas se for de baixa qualidade ou possuir muitos filtros internos não servirá pra sua aplicação. Teste com uma fonte chaveada.

Você pode usar o LED ligado ao pino D13 como indicativo para ver se o arduino está resetando mesmo. Por exemplo…logo no início do software (ainda na parte de setup do Arduino por exemplo) você pode programar esse pino para fazer o led piscar em um padrão facil de identificar. Aí, toda vez que o led piscar nesse padrão (a não ser logo depois de ligar a placa), quer dizer que o arduino resetou.

Mantenha o resistor R2 soldado, não o retire, pois o microcontrolador precisa dele pra funcionar. Você pode inserir um capacitor pequeno entre o pino de reset e o GND, um valor por volta de 4,7nF está bom, isso pode ajudar. Não pode ser um valor muito grande porque senão isso atrapalha depois na hora de gravar o software. Acho que o push-button tb não deve atrapalhar, já que ele fica em aberto.

Vendo o esquemático, eu ainda fiquei com algumas dúvidas:

  • Os leds LED3 e LED4 parecem estar invertidos. Apesar de que olhando as trilhas da placa, eles parecem estar certos. Independente disso, eu tentaria retirá-los, colocando um fio no lugar deles para ligar o terminal negativo do LED interno do opto direto no GND. Acho que seria o jeito mais correto, já que a queda de tensao no led pode atrapalhar o acionamento do opto.

  • Os transistores Q1 e Q2 não estão invertidos também? Acredito que o mais correto seria ligar o emissor ao GND e o coletor na bobina. Porém parece que na sua placa está certo.

Em relação à fonte, 1A está muito bom mesmo, e o Thomaz tem razão, se a qualidade for ruim, seria um problema grande. Porém esse projeto não deveria precisar de nenhuma super fonte pra funcionar.

Bom…sei lá, o que eu consegui pensar até agora foi isso. Tente fazer o teste do led piscando na inicialização, se ele estiver resetando mesmo, tenta bater uma foto do conjunto todo ligado, com ventilador e tudo…quem sabe isso não pode ajudar.

Abraco.

Olá @furlan e @Thomaz_Barros,

Bom fui fazer mais testes, troquei a fonte por uma de 3A (A antiga era chaveada essa nova também) removi os leds revisei os transistores e nada de resolver, mas assim com o led do pino 13 consegui ver que o arduino não está ressetando.
Problema agora é que de tanto soldar e dessoldar componentes algumas trilhas da minha placa está soltando assim vou voltar para a protoboard e testar melhor o problema para ver se acontece também.

Outra duvida que tenho é quanto ao pino do AREF, devo conectar ele a meu +5V ou não, pois em projetos arduino standalone que vejo ele deve ser conectado ao +5V só que na própria placa do arduino esse pino não é conectado a alimentação e sim um há um capacitor de 100nf entre ele e o corpo da placa que deve estar aterrado?

Obrigado a todos que estão ajudando.

Gustavo,

Esse pino AREF é a referência de tensão utilizada pelo conversor AD do processador. Em alguns casos, é necessário providenciar uma tensão de referência externa para ser utilizada na conversão AD, e esse pino é utilizado para isso. Se você não estiver utilizando o conversor AD, não faz muita diferença ligar esse pino ou não, inclusive o processador tem uma chave interna que pode ligar o AREF diretamente à tensão de 5V, assim não é necessário fazer essa ligação externamente. O capacitor ajuda a estabilizar a tensão no pino e pode melhorar a precisão da conversão em alguns casos, mas ele não é obrigatório, principalmente se você não estiver usando o AD.

Mas agora eu fiquei sem entender…você disse no primeiro post que o problema era o Arduino resetando, e agora viu que não é isso o que ocorre. Qual seria o problema então? É o LCD que apaga? Não sei…mas dê uma olhada legal no software também, muitas vezes problemas que parecem ser de hardware, na verdade são originados no software.

Abraco.

Boa noite diego. Quero acionar 8 reles pelo bluetooth. Montei 2 shild com 4 reles um arduino standalone e um HC-5 Bluetooth e o app Arduino Bluetooth control device. O código é esse: http://pastebin.com/dLt8ncMk. Até aí esta tudo certo, mas quando passa 20 segundos do esquema ligado os reles disparam sem para até que eu desligue da tomada. Pode me dizer se é fonte fraca para 8 reles.

Obs:. A fonte é 12v 1000ma

Aguardo.

telesushilaguna@gmail.com

Oi,
Juliano,

Não entendo muito bem o que está acontecendo, mas posso te dar duas dicas: a primeira é esperar a porta serial estar preparada
while(Serial.available() > 0) {}
A segunda pelo que sei realmente parece que é problema de alimentação, parece que o shield bluetooth consome um pouco de energia. Se estiver alimentando os reles diretamente pela alimentação do Arduino, tente utilizar uma fonte separada para alimentar eles, verifique se resolve o problema. Tem umas fontes que fornecem 5v e 3,3V e encaixam direto na protoboard. Mas a maioria das fontes atuais são 5v, que dá pra ligar direto no rele, que tambem são 5v. Tome muito cuidado na hora de fazer a ligação, alimentar com sinal errado ou tensão maior pode danificar os reles. Não entendo muito bem mas pelo que sei o Arduino irá fornecer apenas 500 mA, independente se sua fonte seja 1 A, ou 2 A.

Att,
Diego.

Eu estava com um problema similar. Descobri que o relé ao ser acionado/desacionado acaba agindo como um transformador indutor de voltagem (incluindo o rebote do campo magnético gerado ao redor dele pela bonina), com picos de até 60vdc inversos ao fluxo de corrente projetado do circuito. Isso acaba por gerar ruído (ou até danificar o circuito). Isso acontece em relés de alta amperagem. Fora que a carga do motor da geladeira é indutiva e esse campo magnético gerado nos contatores do relé (mesmo sendo “apartado”) também acaba ampliando esse efeito. Tenta essas coisas:

a) coloca um relé INVERTIDO em paralelo com o relé. (tipo se fosse um led ele não acenderia). Isso irá cortar a tensão reversa (menos 0.6v no diodo de silício e 0.2v no diodo de germânio). Isso não impedirá o ruído do rebote da bobina do relé.

b) Cria um “rc snubber” (não sei como fala em português, mas tem ótimos artigos em inglês) simples, com um capacitor despolarizado (tenta de 4.7nf pra cima) e um resistor (tipo 220ohm, 1/2 watt de preferência, com tolerância de 5% tá bom), sendo o capacitor e o resistor em série, e esta série ligada em paralelo com o relé. Isso irá “atenuar” o sinal.

c) Desenha você mesmo um circuito do tipo “trigger-schmidt” com nand gates. Tem vários esquemas e é super barato em termos de componentes

d) Compra isso: http://www.ti.com/lit/ds/symlink/sn74lvc2g132.pdf

e) Não mate as aulas de magnetismo :slight_smile:

Espero que ajude! Um abraço!

Ricardo