terça-feira, 21 de fevereiro de 2012

Criando um sensor de nível para Caixa D'água (Parte 2)

Na primeira parte do artigo sobre o medidor de nível para Caixa D'água me preocupei mais em fazer o mínimo para ver o código funcionado, agora vamos a alguns aspectos práticos acerca do funcionamento do disco encoder e da resolução de medição, a final, o que deseja-se saber é o volume de água variável.

A cisterna possui as dimensões de 3,00x4,00x2,00 (Largura x Profundida x Altura), um total de 24.000 Litros e envia água a uma caixa d'água de 1.000 Litros no topo da casa. Naturalmente um sistema automático realiza o bombeamento quando a caixa d'água fica vazia. Meu objetivo com isso é determinar o menor deslocamento linear que é feito quando a bomba envia água para a caixa d'água e com isso encontrar uma resolução boa para efetuar a leitura do volume.

Desprezando um pouco os volumes fixos dos dois tipos de reservatórios para os cálculos tem-se uma variação de 12,5cm cada vez que a bomba carrega a caixa d'água superior, como existem volumes fixos em ambos reservatórios e nunca agitem o limite bem como não se esvaziam por completo pode-se considerar a matade do valor como efetivo e mais ainda, como não se tem controle sob a entrada de água da rua é razoável uma resolução na altura de 0,5cm o que fornece uma precisão de 40 Litros o que é muito bom, no meu caso é claro.

O encoder que construí possui 6 furos simétricos o que dá uma resolução de 60º, para um deslocamento linear de 0,5cm a polia onde será fixado o nível terá, aproximadamente, 0,48 cm de raio, muito pequeno sendo necessária um conjunto de redução. Utilizando um conjunto de redução 1:10 que dá uma polia de 4,7cm de raio (diâmetro de 10,00cm).  O problema da redução é encontrar um jogo desse tamanho, aqui em casa pronto por isso, vou partir para soluções alternativas... Contar com os dois encoder dá uma resolução de 30º que aumenta o diâmetro para 1,9cm (já está quase bom porque tenho uma polia ótima de náilon)

Adaptações aparte alcancei um formato mecânico bom com uma resolução de 15º utilizando os dois encoder's e 12 furos ao invés de 6 e com uma polia de náilon de 4,5cm de diâmetro fornece uma precisão linear de 0,59 cm quase a meta de 0,5. Em fim ficou que nem ta na foto.




O próximo passo é realizar o teste de resolução, para contatar se as contas estão corretas e distância percorrida é válida. Fiz isso da maneira mais simples que encontrei, coloquei uma marca no disco e girei uma volta completa que dá 14,72 cm como resultado.


Com o processo de medição pronto o próximo é estabelecer um modo de apresentar os dados. Apresentar através de um display fica complicado por dois motivos: Em primeiro ligar não tenho um display aqui disponível e em segundo lugar desejo colocar as informações de medição numa planilha para acompanhar graficamente a evolução ao longo do ano.

Por utilizar o Netduino normal (não o plus) só tenho a conectividade USB direta com o PC e já vi que para utiliza-la vai dar um certo trabalho então vou voltar para boa e velha serial. Isso me traz três vantagens claras na hora de implementar:

  1. Como a distância entre o computador e a placa é grande (acima de 10 metros) a serial permite que eu faça a instalação com um cabo trançado;
  2. Já tenho um conversor montado TTL-RS232 que fará o interfaceamento entre a UART do Netduino e o Computador;
  3. O código é bem simples e os exemplos estão disponíveis no blog do Jeroen Swart
Sendo assim o melhor é usar mesmo a serial, em outro post vou me ater ao código da comunicação, mas por agora vou apenas apresenta-lo como uma parte integrante do meu projeto assim  como o hadware de interface que literalmente é uma caixa preta. Meu amigo Gean colocou a placa numa caixa preta com conectores o que facilita muito.


A última parte é a instalação do aparato na cisterna, isso vou deixar para o próximo post.

4 comentários:

  1. Projeto muito interessante, parabéns!
    Estou aguardando a última parte.

    ResponderExcluir
  2. Pretendia terminar esse sinal de semana, mas não deu... Falta fazer uma caixa para alojar o conjunto e fixá-lo na caixa d'água e levantar um pouco de dados de consumo para apresentar.

    Vou tentar fazer isso no próximo final de semana. Obrigado pelo comentário.

    ResponderExcluir
  3. Olá Victor,

    uma duvida, liguei um botão na entrada do meu netduino e configurei como entrada (pino, false, resistor.desable). Fiz uma pequena lógica para testar, quando "entrada.read()==true", executa uma logica de contagem, porém, o comportamento está ao contrário do que esperava, pois ao ligar o botão, ele não entra nesta condição, e desligando ele entra na condição, pelo que percebi sua comparação tb é direta, dá para inverter? O botão liguei um lado no GND e outro no pino de entrada.

    ResponderExcluir
  4. Olá Ezequiel,
    Primeiramente desculpe-me a demora em responder. Os pinos do Netduino estão em pull-up mesmo, a um tempo atrás vi alguém comentando algo sobre isso e o prórpio Chris Walker falou que os outros modos não estão implementados.
    Agora, dá para inverter a lógica utilizando um resistor diretamente conectado ao GND - uns 10k é o suficiente.

    ResponderExcluir