Controlador de iluminação aquário 3 canais com RTC + Display 16x2 + ATMEGA328p

Olá,

Sou iniciante em arduino, mas recentemente consegui desenvolver um programa em um nível intermediário, mas como só sei algumas funções do arduino acabei deixando o programa muito grande ultrapassando 350 linhas, queria saber se alguém pode me ajudar a simplificar o programa sem alterar seu funcionamento.

Meu programa tem o seguinte funcionamento:

1- Mostrar hora no LCD;

2- Mostra quais circuitos estão ativados no LCD;

3- Ativar Circuitos em determinados horários;

4- Ativar circuitos por botões que os mantem ligados por alguns minutos mostrando no LCD mas sempre em paralelo com a programação de horários;

5- Ser possivel desativar um circuito, apos ter ativado por botão.

No anexo abaixo deixei um terço do programa comentado para demonstração com o nome exemplo.

O segundo arquivo é o projeto original, mas não está comentado e é muito grande.

Exibições: 493

Anexos

Responder esta

Respostas a este tópico

Oi DMLA, boa tarde.

Algumas recomendações:

Ao postar seu code na área de texto, seu tópico ficou tão longo, que viajei 3 dias pra chegar no final. kkkk

Por isto recomendo aos amigos, anexar arquivos ao invés de colar na área de texto.

2a. recomendação:  Comente as linhas do seu code. Por varias razões.

Uma : você pode querer revisa-lo daqui alguns anos, e não lembra pra que serviam as linhas

Duas: alguém vai te ajudar e não tem a menor ideia pra que serve a linha.

Até tentei modificar seu code, mas não tenho uma ideia do que ele realmente faz.

Rui

Atualizei o post, modifiquei o programa e peguei apenas uma parte dele, o objetivo é controlar 3 relés com horário e com botões mas nesse arquivo deixei como anexo está apenas o programa para 1 relé. Alem disso comentei o projeto inteiro parte por parte, a unica coisa que não comentei foi os comandos do display como lcd.print....

Oi DMLA, boa noite.

Teste este code, e caso de certo, acrescente os outros 2 circuitos.

Basta uma unica função relogio para os 3 circuitos.

Rui

Anexos

Muito obrigado Rui, seu code está de uma forma que eu nunca pensei em fazer, isso vai me ajudar muito principalmente para projetos futuros. Assim que eu terminar aqui, venho com os resultados.

Rui ficou muito bom esse exemplo, extremamente sucinto este código.

A unica coisa que estraga é o DS1307, oh danadinho que atrasa, tenho um alimentador do aquário com ele, a cada 15 dias tem atualizar a hora, pq ele avança ou retrocede umas 6 horas de acordo com o clima rsrs.

Minha meta é comprar uns DS3231 para rasberry pi pra substituir ds1307 dos meus projetos.

Atrasa? Estranho pois nos meus testes deixei 3 meses ligado, não atrasou nem adiantou nem 1 minuto. O meu é o Tiny Rtc ds1307.

Olá Derik,

Acho que seu caso é coincidência com sorte, porque é fartamente conhecido o problema com a falta de precisão do DS1307, e isso se deve ao que tudo indica, devido ao cristal que os modulos DS1307 usam, por conta disso foi lançado o DS3231 que nada mais é que um modulo com um cristal de melhor qualidade e por tanto maior precisão, outra modificação desconheço.

Em todo caso, se para você funciona....Isso é o que importa.

Abs.

Oi TA  e SL CK, bom dia,

Realmente o DS1307 é instável. Ele é muito sensível à mudanças de temperatura e alimentação.

Parece que a Maxim incluiu um controle térmico e de alimentação,

no DS3231 para melhorar, e bem, a precisão do RTC.

"A precision temperature-compensated voltage reference and comparator circuit monitors the status of VCC....."

Rui

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço