Nível de um tanque de água com um microcontrolador

24

Como medir o nível de um tanque de água com um microcontrolador?

mad_z
fonte
11
Isso não é digno de resposta, mas um amigo meu fez isso para um projeto de arte há alguns anos. Qualquer pessoa interessada, eu ficaria feliz em apresentá-lo e tenho certeza que ele ficaria feliz em explicar como ele fez isso. Seu projeto é aqui: unixarts.com/sealevel.html isso combinado ambas as bombas e os sensores e necessário precisão suficiente para loop de cima e para baixo sem muita inclinação
cyphunk
7
Quando o microcontrolador para de funcionar - está embaixo d'água.
você

Respostas:

23

Bem, supondo que você esteja operando aqui na Terra (ao contrário de em órbita), você pode usar um sensor de flutuação que mede usando o micro. A pergunta é: você precisa saber o nível exato ou precisa de algum tipo de viagem quando estiver alto / baixo?

No tema 'viagem em nível específico', você pode obter interruptores como este - geralmente o flutuador contém algum tipo de sensor de atitude. Quando o nível da água é mais baixo, a bóia termina do seu lado e o interruptor é 'desligado', enquanto o aumento do nível força a bóia na vertical e, portanto, 'on'. Estes são frequentemente utilizados para bombas de depósito. Eles são bastante confiáveis ​​e muito fáceis de lidar, embora você precise ter cuidado para ancorá-los corretamente e tenha certeza de que nada atrapalha a flutuação.

Se você precisa conhecer o nível atual, tem muitas opções, mas é menos simples. Você pode usar algo como um sensor ultrassônico (o feixe de ultrassom disparando da parte superior do tanque para refletir o nível da água).

Esses caras parecem fazer indicadores de nível para tanques BIG, que consistem em um flutuador e um peso externo cabeados juntos. À medida que a bóia sobe e desce sobre o fluido, o indicador externo se move adequadamente. Você pode criar algo semelhante, com nada mais complicado do que células fotoelétricas para ler o nível (se for um tanque grande ou se você quiser muita granularidade, você precisará de muitas células fotoelétricas).

Como alternativa, adotando a idéia de flutuação com cabos, você pode colocar uma roda intermediária que se move sempre que o cabo se move e depois conectar um codificador a isso. Isso permitiria acompanhar o nível com uma precisão bastante alta.

Michael Kohne
fonte
15

Eu sei que o livro a ser lançado em breve, o Arduino Prático, inclui um projeto de sensor de profundidade do tanque de água , que usa um transdutor de pressão diferencial para medir a pressão da água na parte inferior do tanque e a partir daí para calcular o quão cheio o tanque está.

Esquemas estão no link acima, junto com um link para o código fonte no github.

(Divulgação completa: não tenho associação com o livro, mas encontrei um dos autores algumas vezes nos espaços de hackers locais.)

Evan
fonte
11

Um método que eu gosto, mas ainda não tentei, é colocar duas placas isoladas no líquido. Sem condução, eletrólise, contanimação ....... Eles formam as placas de uma tampa. e são usados ​​em algum tipo de oscilador (a escolha é sua) Como a água é uma boa dialétrica, a frequência depende fortemente da quantidade de água entre as placas. Medir a frequência para obter a profundidade.

Você pode obter um resultado semelhante aplicando um sinal CA e medindo a corrente através do limite.

russ_hensel
fonte
Mente, isso depende muito da constante dialétrica do fluido. A menos que eu esteja enganado, a detecção capacitiva é usada mais para detectar presença / ausência do que nível. Parece que praticamente todos os métodos que eu deparei dependem de gravidade específica. Tanques com líquidos de composição variável são difíceis de regular.
Wackyvorlon 30/11/2009
Os sensores de nível de líquido baseados em capacitância funcionam melhor na detecção de presença ou ausência de fluido. Para ler o nível da água, carregue / descarregue as placas usando um resistor fixo e meça o tempo. Como mencionado acima, adicionar contaminantes à água (como sal) pode causar uma mudança drástica na capacitância e, portanto, sua leitura para um nível fixo de líquido. Se o líquido que você está medindo é homogêneo, isso é muito menos problemático.
mjh2007
Fiz um oscilador dynatron com uma bobina SMD simples que ressoava com placas isoladas, como postulado por russ. A onda senoidal estava elevada e mais alguém contava os pulsos no firmware, ou seja, o que russ dizia FUNCIONA.
autístico
10

Mais detalhes ajudariam, mas acho que o método ultrassônico é provavelmente o mais simples, conceitualmente, de qualquer maneira (daí a necessidade de mais detalhes: -]). Juntei um sensor de nível para o tanque de óleo combustível no meu porão usando um transdutor ultrassônico MaxSonar. Estou mudando para um sensor Parallax Ping, assim que puder colocar minhas mãos em um. A unidade MaxSonar provou ser um pouco dolorosa; Acontece que ele tem apenas uma resolução de 2,54 cm (uma polegada), o que equivale a quase 7 galões no meu aquário. Coloquei a unidade MaxSonar em uma tampa de PVC na parte superior do tanque, apontando para baixo (fora do alcance do líquido).

blalor
fonte
7

Uma maneira de fazer isso é colocar um led na parte inferior do tanque apontando para o topo e um fotodiodo na parte superior do tanque, voltado para o LED. O LED será atenuado pela água no tanque, você precisará experimentar para determinar quanto. Além disso, é melhor fazer uma série de medições rápidas e calculá-las como média ao usar esse método.

Um cara
fonte
11
parece muito propenso a erro, luz ambiente, sloshing etc.
Jason S
7

Eu uso um sensor de pinos barato da loja de ferragens local com um transistor fotográfico para detectar o led indicador. Com isso colado ao lado do tanque, ele percebe quando o nível ultrapassa o sensor e nos alerta para uma condição de alta água.

John D
fonte
6

Há um número surpreendente de maneiras de verificar o nível. Existem sensores que usam RF, enviando um pulso por um guia de ondas e detectando o reflexo na superfície do líquido no tanque. Existem ultrassons, carros alegóricos, tubos borbulhantes, torneiras de pressão ... O método utilizado depende do tamanho do tanque, do conteúdo, do ambiente e de outros fatores.

wackyvorlon
fonte
4

Estou surpreso com todas as soluções eletrônicas complicadas aqui, eu usaria um potenciômetro simples. A maioria dos microcontroladores possui um i / p analógico básico.

 +V
-----
  |
  |
  /
  \
  /<----------> to analog i/p
  \
  |
  |
-----
 GND

Use uma bóia padrão da válvula do tanque de água (talvez já exista uma). O problema restante é acoplar o float ao pote para obter o máximo de swing (você também pode usar um pote deslizante).

                  |-|
                  | |
                  |o| <--------Slider pot.
                  |||
                  |||
                   |
                   |  <--------Coupling.
                   |
   ____            |
  (float)----------o-----o  <--Anchor point of float.
   ----
ttt
fonte
Como você garante que o pote volte à sua posição original?
O peso do flutuador irá puxá-lo para baixo quando o nível de água cai ...
ttt
Não tenho tanta certeza disso. Encontrar o peso correto da bóia de modo que flutue na presença de água e deixe cair o pote na ausência de água não é tão fácil. A maioria dos vasos tem um atrito estático bastante alto. Eu acho que é possível, no entanto, dada a configuração mecânica correta.
Muitos dos potenciômetros deslizantes mais longos têm um atrito muito baixo (usado em misturadores com ponta dos dedos e decks de DJ). Eu usei um controle deslizante de 4 "da minha caixa de bits e testei-o com um flutuador de tanque de água normal. Ele até funcionou em um flutuador de cisterna menor! Aliás, eu usaria um resistor fixo em série com o pote para que, mesmo que ele curtas num ambiente molhado isso não vai ultrapassar a saída de uma porta do controlador (ou desenhar demasiada corrente a partir de uma fixa Vref) I utilizado um resistente 10k com um pote 10k na minha configuração de teste..
ttt
Nos testes, usei apenas um pedaço de fio dobrado para prender o braço da bóia. Na cisterna, o braço é de plástico de seção quadrada, portanto seria muito fácil fazer um pequeno furo para fazer o acessório.
ttt
4

Abordagem mais simples

Coloque um pequeno tubo em um canto do tanque com um diâmetro ligeiramente maior que uma bola de pingue-pongue.

Coloque um LED infravermelho em um lado do tubo e um fotorresistor oposto ao LED (perfurando um orifício no tubo opaco ou colocando do lado de fora se transparente). Cola quente nas peças elétricas para impermeabilizá-las e solte a bola de pingue-pongue no tubo.

Quando o nível da água aumenta ou diminui a ponto de a bola de pingue-pongue quebrar o raio infravermelho, você saberá que atingiu o nível desejado. Isso funciona se você precisar apenas de um indicador de nível discreto (ativado / desativado).

Esse sistema também é usado em pistolas de paintball projetadas para impedir que você corte bolas, garantindo que toda a bola esteja na câmara de tiro antes de permitir que o gatilho eletrônico arme o solenóide de tiro.

É simples, eficaz e requer pouca ou nenhuma calibração.

Evan Plaice
fonte
1

Mais uma abordagem inteligente: use a maior condutividade térmica da água (fluido). A idéia é ter um sensor de temperatura e medir a diferença de seu auto-aquecimento quando submerso e ao ar livre.

mazurnificação
fonte
Isso realmente foi feito no CHCH da Nova Zelândia, onde eu estou, mas eu não fiz isso, acho que tem cerca de 20 anos. Havia uma série de muitas termististas do lado de fora do tanque.
autístico
1

Outra solução (sem trocadilhos);

Use um potenciômetro como sugerido acima. A faixa de rotação normal é de 270 graus. Anexe uma bóia ao potenciômetro usando um braço da lança. (comprimento = 1 unidade)

Entre cheio e vazio, o braço da lança se moverá 90 graus.

O ADC em um PIC é 256 ou 1024 etapas (sim, zero é uma etapa).

Vou usar 256 etapas para maior clareza.

270 graus = 256 etapas ADC. 270/90 = 3 (um terço da faixa do potenciômetro)
255/3 = 85 etapas ADC

Programe algum código para marcar o ponto de 0 grau (tanque vazio) quando um botão for pressionado.

Isso armazena um ponto de deslocamento no eeprom PIC. Agora, o potenciômetro não precisa estar exatamente em zero, porque esse ponto de calibração pode ser definido.

Usando a trigometria, calcule uma tabela de pesquisa (dica: script php) para corresponder a cada etapa do ADC.

Dica: cada etapa do ADC corresponde a 90/85 = 1,0588 graus.

Sim, você deveria ter prestado mais atenção na aula de matemática. perda de tempo idiota naquela época, indespensável agora. envolver cérebro. aprender trigonometria. ensinar aos outros.

Sigla: O árabe antigo carregava um saco pesado de feno.

A hipontenusa é o comprimento do braço da lança. Faça 1 unidade de comprimento. A tabela de pesquisa fornece a porcentagem de profundidade do tanque. (multiplique por 100, é claro)

Rikkitikki
fonte