Olá!
Desde o começo do ano estou desenvolvendo um controlador para aquários marinhos mas, que pode ser adaptado para aquários de água doce.
Eu não entendo muito de programação e eletrônica, tudo que sei aprendi nos fóruns e pesquisando na internet.
Meu código precisa ser otimizado pois, ele está consumindo muita memória RAM do meu Arduino Mega 2560, no momento tenho cerca de 700 bytes livres e ainda nem terminei o programa.
Além disso, no momento estou tendo dificuldade para terminar o código das bombas dosadoras.
https://gist.github.com/4192004
Alguém pode sugerir uma melhor maneira de escrever este programa?
Também gostaria de saber se há alguém interessado em me ajudar a concluir este projeto.
Já ajudei algumas pessoas a montar controladores mas, a maioria só soube sugar o pouco conhecimento que tenho.
O código completo pode ser encontrado aqui:
https://github.com/FernandoGarcia/Ferduino
Aqui alguns vídeos com demonstrações:
https://www.youtube.com/watch?v=rmOhDVO8uTM
https://www.youtube.com/watch?v=CLHpJrJmUrs
https://www.youtube.com/watch?v=QucTAoKlFII
Desde já agradeço pela atenção.
Abraço.
Fernando Garcia
Tags:
Vivi isso na pele.
Então, vc tem que aprender sobe o exemplo blink without delay.
Dá uma olhada no exemplo.
Dai vamos arrumar este código pois também tenho interesse nisso.
Olá!
Não entendi qual o correlação entre o meu problema e um simples pisca-led.
Abraço.
blink without delay = pisca-pisca sem utilizar a funçao Delay.
se vc entender esse codigo, vai resolver seu problema....
blink without delay mostra como executar mais de uma função simultaneamente sem se perder com os tempos e consumir kilos de memoria
Deve ser operação com maquinas de estados que precisa. A ideia seria usar flags para sinalizar que a evento a ser executado e deixar tudo rodando num background. Só que ler cartões e escrever em display, é sempre um problema, deixa o programa lento.. O certo seria usar dois processadores, um para eventos rápidos e precisos e outro para a parte de display e cartao SD.
Olá!
Acho que expressei mal.
Meu problema é que da forma como o programa está escrito quando a condição 1 (ver imagem) é atendida ele fecha o arquivo das horas e abre o dos minutos.
Então quando ele encontra o minuto correspondente a mesma posição (contador) da hora ele executa a ação.
No exemplo que coloquei na imagem o programa só executa a dosagem das 19:01 pois, a condição 1 é atendida antes que chegue as 19:58.
Sendo assim o programa "pula" a dosagem das 19:58 e só executa a próxima dosagem que é as 20:55.
Melhorou?
Abraço.
Fernando,
seu trabalho é maravilhoso. Que beleza os videos do seu canal. Parabens.
Vamos resolver seu problema. Vou testar seu programa e buscar entender direitinho o princípio.
Até
Olá!
Sidney obrigado pelo elogio e participação.
Pessoal, já consegui resolver o problema.
Ao invés de gravar dois arquivos de texto (um com as horas e outro com os minutos) , optei por gravar somente um com o horário de dosagem transformado em minutos.
Exemplos:
Dosagem às 19:01
o valor gravado no TXT foi: (19 * 60) + 01 = 1141.
Dosagem às 20:55
o valor gravado no TXT foi: (20 * 60) + 55 = 1255.
Dessa forma nunca terei números repetidos.
E no momento da verificação
Fiz assim:
t = rtc.getTime();
int minutos_agora = (t.hour * 60) + t.min;
file.open(&root, "HDA1.TXT", O_READ);
while ((n = file.read(buf, sizeof(buf))) > 0)
{
minuto01 = atoi(buf);
if(minuto01 == minutos_agora)
{
Serial.println("Dosando 1:");
Serial.println(rtc.getTimeStr(FORMAT_LONG));
}
}
file.close();
Obrigado por todas as participações.
Caso alguém queira me ajudar a melhorar este projeto ou a lista de Hardware é só enviar uma mensagem.
Abraço.
Olá!
Estou passando para dizer que meu projeto continua crescendo e agora tem um espaço dedicado para ele aqui:
Além do código ter crescido e melhorado, agora desenvolvi uma placa que junta boa parte dos circuitos necessários para o controlador.
Aqui algumas imagens.
O projeto ainda precisa de colaboradores.
Abraço.
Eu fiquei orgulhoso de ver ele assim.
faz quase 2 anos que conversamos e o menino cresceu.
Parabens.
Fernando em 2012 você disse que não entendia muito de programação e eletrônica.
E agora apresenta essa placa Ferduino super sofisticada!
Parabéns cara, você é um autodidata perfeito!
Essa placa foi desenvolvida por você ?
Bom dia, Fernando!
Parabéns pelo resultado que você alcançou com os seus estudos!
Queria informar que meu anti-vírus acusa aqui que o seu site pode ser perigoso de se visitar. Será que é algum JavaScript ou alguma propaganda que dispara este alerta?
Abraços e continue o excelente trabalho!
Olá!
Obrigado pelos elogios.
José, eu aprendi tudo sozinho revirando a internet.
Todo o projeto foi desenvolvido por mim.
Marcos, você é o primeiro a comentar sobre isso.
Não acho que tenha algum problema com meu site.
Abraço.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por