Caros, boa tarde.

Fiz um controle de aquecimento solar da piscina com Arduino, para controlar a bomba, fluxo e temperatura da água. Basicamente, são dois sensores, um na piscina e outro nas placas solares. Quando a diferença ente elas atinge 6º, o sistema aciona a bomba que circula a água (água gelada da piscina vai para placa e a água quente da placa vai para piscina).

Criei uma página web no Arduino para parametrizar e controlar o sistema. Utilizei jQuery mobile, consegui um resultado muito interessante.

O sistema está funcionando bem, mas gostaria de implementar uma função e preciso muito da ajuda de vocês. As vezes, pela variação de temperatura, a bomba é acionada (ligada e desligada) várias vezes no mesmo minuto. O ideal seria configurar um tempo mínimo de funcionamento da bomba, exemplo: só pode desligar novamente depois de 5 minutos funcionando.

Como posso fazer esse controle do tempo de maneira satisfatória? Alguma sugestão?

Muito obrigado,
Marcelo

Exibições: 1867

Anexos

Responder esta

Respostas a este tópico

Um coisa que provova isso é falta de agua lá no sensor do telhado. Se vc colocar ele na parte mais alta pode a agua se "acomodar" de forma a deixar o sensor seco. Aih a temperatura dele sobe mais rápido que a da agua. Ele tb precisa ficar mais proximo da saída da agua, senao ele toma uma golada de agua fria e ja indica frio.

O ideal não é ter o motor ligado o tempo todo e sim fazer uma troca de agua. Quando a agua atinge uma boa temperatura lá nas placas o motor liga trocanto toda a agua, desliga quando toda a agua na placa estiver fria. Por isso o sensor fica perto da saída mas mergulhado na agua.

Por outro lado sua preocupação é importante, não se deve ligar e desligar o motor muito isso gera desgaste.

Para fazer uma rotina que resolva, recomendo ler:

http://labdegaragem.com/profiles/blogs/tutorial-executando-fun-es-e...

Sugiro fazer uma rotina que seja disparada 1x por segundo.

Dentro dela vc faria:

if (motortemp!=motor) {tempoligado=tempodesligado=0;} //zera tudo se o motor mudou de estado

motortemp=motor; //gera uma memoria de estado "anterior" do motor. Essa variavel precisa ser global;

if (motor==ligado) tempoligado++;

if (motor==desligado) tempodesligado++;

Assim vc ganha essas 2 variaveis que indicam o tempo de funcionamento do motor para incluir lá no seu programa principal e decidir melhor sobre o momento de comandar o motor.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço