Olá. Montei um sistema de irrigação com Arduino. O sistema funciona bem, porém percebo que quando fica alguns dias sem acionar o sistema de irrigação (devido a umidade estar alta), o sistema “trava” e tenho que tirar da tomada para reiniciar o sistema. Se alguém souber como e onde inserir um código na programação abaixo para que o sistema reinicie automaticamente a cada 24 horas. 

Obs: estou usando Arduino Uno, fonte de alimentação output 12V, 2A, 24W, válvula solenóide para liberação da água conectada direto à torneira.

Esquema de ligação semelhante ao encontrado no vídeo https://www.youtube.com/watch?v=EFvbS6XzTVo&t=261s

Exibições: 239

Anexos

Responder esta

Respostas a este tópico

Bom dia,

para que possamos ajuda-lo melhor, remova o seu codigo postado na área de texto do tópico e 

anexe uma arquivo contendo o codigo.

(veja que a primeira e segunda  linhas estão incompletas).

Informe também qual arduino voce está usando.

E ainda para que possamos entender a causa deste travamento, (que não deveria acontecer)., poste um

esquemático do seu projeto. (Pode ser feito a mão livre).

Informe que tipo de fonte de alimentação voce está usando para alimentar seu projeto, e que tipo de válvula,

ou motor está usando para liberar agua.

RV mineirin

Olá, enviei novamente no grupo, veja se agora ficou claro. Obrigado.

Olá.

  Travar não é normal, como o mineirin RV já disse. Aqui tenho umas plaquinhas rodando a anos sem travar.

  Costuma acontecer por interferência, principalmente motores, solenoides ou lampadas fluorescentes, proximas ao microcontrolador.

  Também quando se usa fios muito longos, que funcionam como antenas para esses ruídos. Capacitores nos lugares certos podem diminuir esses ruídos.

  Vi um protoboard, mas parece que não tem praticamente nada nele... Ligaria esses componentes com solda, devidamente isolados, para evitar perder esse protoboard na montagem e os problemas de contato que ele pode gerar.

  Se sua caixa for bem fechada, inclusive na entrada dos fios (vi que colocou cola quente), não deveria dar problema, pelo menos a curto prazo.

  

   Mas...... Se vc quer dar um reset sempre que travar, existe o recurso do watchdog:

   https://www.arduino.cc/reference/en/libraries/watchdog/

   Quando ligado, se não alimentar o cachorro ele dá um reset...

   Ele é feito exatamente pra isso, inclusive com um oscilador independente, caso o oscilador também tenha parado.

   Pagina com exemplo: 

https://www.tutorialspoint.com/watchdog-timer-in-arduino

  

Obrigado pelos esclarecimentos. 

Eu já havia pensado em implementar esse tal watchdog, inclusive acabei de tentar aqui novamente, porem com meu conhecimento de amador não foi possível, o sistema retorna com erros.

Se alguém que domina o assunto conseguir contribuir, inserindo o código no arquivo da programação que está em anexo na msg anterior. Abraços.

Boa tarde,

esta semana está um pouco complicado pra mim ?

Mas na próxima se vc ainda estiver com problemas eu poderei ajudar a escrever um rotina de WTD.

Eu tenho aqui em casa um sistema de irrigação rodando a mais de 2 anos.

Ele é programável via WiFi.

Ele só para quando falta energia.

Tem uma válvula similar a esta que vc está usando. 

Não vi no seu projeto nada que evitasse ruídos elétricos indesejáveis causado pelo acionamento de 

cargas indutivas por reles.

Esta sua válvula é uma carga indutiva.

Estes ruídos elétricos originados na comutação de cargas indutivas, provocam uma bagunça em

micro controladores tal como os arduino.

E causam frequentemente o travamento do micro ou perda de imagem de LCD.

A melhor solução é o uso de um "Snubber" .

O Snubber pode ser próximo á válvula ou próximo ao rele.

Como no seu projeto o rele está próximo ao arduino sugiro que ele seja instalado próximo ao rele.

Vc encontra no mercado snubber prontos.

Veja sobre snubber aqui:

https://pt.wikipedia.org/wiki/Snubber

RV mineirin

Acho que vc matou a charada,  mineirin RV, ele não colocou o snubber na bobina.

Tente colocar e não travará mais, eu acho..

Veja esse tópico:

https://labdegaragem.com/forum/topics/interfer-ncia-eletromagn-tica...

Opa, tive um problema parecido com o seu em um dos meus projetos, no meu caso ocorria após uns 30 dias ligado direto, ele não travava, ele meio que pulava os horários programados vez ou outra, eu reiniciava ele e pronto mais uns 30 dias sem problemas.

Revirei o projeto de ponta cabeça e não achei nada que pudesse estar gerando a falha, então implementei um wacthdog, que no meu caso atua só das 00:00:00 as 00:00:10 apenas se a placa demorar mais de 15ms para responder o que invariavelmente demora, então o watchdog reseta o arduino, mantendo e por segurança recarregando os dados da IHM nele.

No seu caso como usa apenas a umidade como gatilho, coloquei o WTD para disparar apenas se a placa levar mais de 8 segundos para responder, penso que pode resolver seu problema, faz o teste e comenta ai.

NovoArduino1.ino

OBS 1: O que o Mineirin e o Eduardo comentaram faz muito sentido, independente de usar o WTD ou não seria bom eliminar ruídos, o arduino é muito sensível a isso. 

OBS 2: Os tempos que podem ser configurados no WTD são: WDTO_8S, WDTO_4S, WDTO_1S, WDTO_500MS, WDTO_250MS,WDTO_120MS, WDTO_60MS, WDTO_30MS e WDTO_15MS.

Obrigado João, coloquei o código implementado pra trabalhar, vamos acompanhar nos próximos dias.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço