Irrigação automatizada com Arduino MEGA ADK (Resolvido)

Pessoal,

Boa noite...

Meu projeto estava rodando a um mês na estufa onde estava realizando os testes. Infelizmente na noite de ontem parou de funcionar, já testei com outro Arduino e continua sem funcionar. O código é o mesmo que utilizo a dias, o sistema trava após a parte de verificação do cartão de memória e não vai para os menus, o display fica sem informação e a serial que exibia as leituras dos sensores tb não exibe. A ultima mensagem na serial é a confirmação do envio de smsm. Quando testei um código de menus bem basico o menu funciona com os botões perfeitamente mas meu código simplesmente não funciona. Não dá erro na compliação, faz upload normalmente para o arduino. Segue anexo o código que estou usando. O mais estranho é que parou do nada.

Exibições: 279

As respostas para este tópico estão encerradas.

Respostas a este tópico

Belo codigo, todo organizado (na minha opinião).

O jeito é testar por partes.

O SD em "void configurar_cartao_sd()" retorna algo valido ? pode ser que ele de um erro não esperado e trave aih.

Teria que tirar essa chamada e ver se roda. Depois religar e ver se roda. Pode ter dado erro no cartão. Não necessariamente queimou.

Se vc fez um programa que fica escrevendo freneticamente no cartão pode ter queimado por excesso de escrita (atingiu o limite). 

Parece que vc escreve a cada 60 segundos. Escreveu 30*24*60= 43.200 vezes. Bastante coisa mas um cartão ruim já deveria aguentar muito mais.

Enfim, não sei, mas suspeito do cartão se vc ainda não tentou trocar.

O ideal seria gravar de forma mais intervalada no SD. Duas sugestões: Criar um flag que indica que algo mudou. Se não mudou não escreve. Acumular em RAM por um periodo (1 hora ?) e depois subir para o SD.

Enfim, suspeita. Vai ver é a fonte... Que agora pipoca quando entra a corrente adicional do modulo 3G e antes aguentava. Vai saber...

Muito obrigado... 

Desmontei todo o projeto e liguei apenas o display e os Vitor o testar mas mesmo assim não passa... O cartão é classe 10 da Kingston... Tô achando que vou ter q testar função por função em um novo projeto... O complicado eh que está um pouco grande o código .. Vou tentando fazer tudo comentado p ficar mais fácil... É meu projeto de mestrado, imagina o desespero que estou .. 

Vc pode adicionar umas saidas na serial para saber até onde está indo.

No setup vc já manda uns Ok pela serial.

Depois a cada entrada de função.

Melhor ainda se vc usar um define da vida no inicio que faça compilar no modo debug ou não. Assim o codigo do debug só é incluido conforme a definição.

Assim vc vai vendo onde para..

As vezes é uma bobagem, mas uma bobagem dificil de achar. 

Eduardo...

Sou um pouco leigo..

Como faço para adicionar essas saídas para testar?

Abraços...

Eduardo,

Descobri o que estava travando... Eh a função do DS3231 só não entendi o pq está travando.

Comentei essas linhas.:

// --- Configurações iniciais do RTC DS3231 (DATA E HORA) ---
// rtc.begin(); // Inicialização do RTC DS3231
// Informacoes iniciais de data e hora
// Apos setar as informacoes, comente a linha abaixo
//rtc.setDateTime(__DATE__, __TIME__); // Configurando valores iniciais do RTC DS3231

E retirei a data e hora do menu e funcionou... Agora estou tentando descobrir o que está errado na programação dessa função específica.

Ele esta usando as mesmas portas SDA20 e SCL21 do display LCD20x4... Tem algum problema? O estranho é que antes funcionava perfeitamente, não sei se houve alguma atualização a biblioteca...

Eduardo...

Acredito ter encontrado o problema... Era exatamente o módulo do DS3231, tinha um cabo fechando curto... Depois que substitui os cabos o sistema voltou...
Muito Obrigado pela ajuda...

Abraços...

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço