Alguém me ajuda nessa empreitada aí. Comprei esse sensor, mas o que consegui fazer é o que tem no exemplo de verificar o fluxo de água por minuto.

O que quero fazer é tipo assim, quando ligar a água ele conta quantos litros passou por ele.

Com isso, quero ligar uma solenoide e usar como valvula para cortar o fluxo.

Exemplo: quero enxer uma panela com 20 litros, a solenoide abre a agua, e o sensor conta os 20 litros, após fecha a solenoide.

Alguém pode me ajudar? Estou usando um raspberry pi A+ 256MB

Desde já obrigado pela ajuda.

Exibições: 4848

Responder esta

Respostas a este tópico

Diógenes,

    É uma pura questão de matemática.

    Esse sensor conta pulsos,  ele funciona assim,  ele tem um pequeno imã em uma das pás da helice, quando a água passa faz girar a hélice, e toda vez que o sensor passa em determinada posição ele conta 1,  fora da posição fica em 0, ou seja, cada giro corresponde a uma quantidade fixa de água

   Dai o truque é bem simples,  ligue o pino de saída de dados do sensor em um pino digital do arduino e configure-o como input.  ( o sensor tem 3 fios, Geralmente Vermelho(Vcc), Preto(GND) e Verde(dados)) .

   Pra esse teste eu aconselho que coloque um botão(pushbutton) em um segundo pino digital pra zerar leituras anteriores.

    Nesse exemplo vou usar os pinos 6 e 7 como entradas e o resultado será mostrado no monitor serial.

/*
Exemplo criado por Weider Duarte para teste do sensor de fluxo YF-S201
LIGAÇÃO:
   a) Sensor: fio vermelho -> no 5V do arduino
              fio preto   -> no GND do arduino
              fio verde   -> no pino 6 do arduino
             
   b) Botão: Ligue um dos lados do Pushbutton no 5V do arduino
             Ligue a outra extremidade no pino 7 do arduino
                   Coloque um resistor de de 10k dessa ligação no pino 7 até o GND do arduino ( resistor de pulldown);
               
COMO FUNCIONA:  carregue o sketch e ligue sensor, ligue o serial monitor do arduino, sopre o sensor e veja o resultado sair no
                serial monitor.
               
MEDINDO QUANTIDADE:  ligue uma mangueira de água em uma das extremidades da entrada do sensor, veja o sentido correto.
                     Na outra extremidade coloque uma garraga de 1 litro.
                     Ligue a mangueira e deixe encher o litro.
                     Veja quantos pulsos foi dado.
                     Repira a operação algumas vezes pra ter certeza.
                    
                     Pronto você já sabe quantos pulsos equivale a um litro,  o resto agora é matematica.
                    
ZERANDO:    Ao final de cada teste aperte o botão pra o contador voltar a zero.
             
 */

// pinos usados
int sensor = 6;         
int pushButton = 7;
int contador=0;


void setup() {
  Serial.begin(9600);
  // indica os pinos como entradas
  pinMode(sensor, INPUT); 
  pinMode(pushButton, INPUT);
}


void loop() {
  // se o sensor for acionado, a cada giro conta mais um
  if(digitalRead(sensor)==1){
     contador++;
     Serial.println(contador);
    }

//  zera as leituras
    if(digitalRead(pushButton)==1){
     contador=0;
     Serial.println("contador zerado");
    }

}

Testa ai e posta o resultado se ficou legal !

  

Obrigado pela explicação Weider, vou fazer a adaptação, pois utilizo raspberry pi, e é um pouco diferente.

Assim que conseguir terminar eu posto o resultado sim.

Obrigado.

Diogenes,

    A depender do projeto que voce esteja trabalhando,  utilizar um rapberry para algo assim,  é como matar mosquito com uma bazuca.

   Mas espero que tenha me feito entender a lógica.

Observação importante:

Essa medição somente será precisa se a pressão da água for constante. 

Se for água fornecida pela rede de abastecimento, a pressão pode variar e a medição poderá ser  incorreta. 

Recomendo testes variando a pressão (usando um registro, por exemplo).

Exato ze gustavo,

   O que nos leva ao racicinio que a compranhia hidraulica nos leza,  pois eles utilizam um sistema semelhante, que as vezes conta água,  mas quando falta água conta o ar da tubulação.

    Mas de certa forma é o mais proximo que teremos,  o melhor que poderiamos fazer é colocar na mesma linha um sensor de pressão de fluxo,  e ai criar um calculo matematico um bocado mais complexo que entrasse vazão x pressão.

   

Boa tarde Weider, veja se possa me dar uma luz, sou desenvolvedor mas, eletrônica ainda não é meu forte: conectei um sensor de fluxo de água em um arduino uno li vários comentários sketchs, revi e revisei tudo, conexões e software, estou utilizando a IDE 1.0.6, LCD e potenciometro para regular o LCD, estes estão funcionando normalmente. Estou tendo o seguinte problema, quando ligo o sensor, os contadores já começam a subirem sem ter rotação no sensor e se forçar a rotação com sopro há um aumento do volume, aí não entendi. Como aparentemente não há muita complexidade, já que é uma solução conhecida, o correto seria somente quando houver giros no sensor é que deveria começar a contagem. O que pode gerar essa contagem de forma indiscriminada? O que eu deveria fazer pra corrigir esse problema? Desde de já agradeço pela atenção.

Marcos,  boa noite,   esses sensores de fluxo trabalham através com um pequeno imã em algumas pás e um sensor de efeito hall captando cada passagem,  ou seja, ele capta o campo magnetico,   isso funciona assim para que a elice fique completamente vedada e isolada evitando o vazamento dos fluidos.

Bem,  você não colocou seu sketch para poder vermos se a falha esta no sketch ou não,  mas de antemão te dou 2 dicas:

1- Afaste o sensor de campos magneficos,  tipo bobinas,  autofalantes ou mesmo cabos eletricos.

2- Com o sensor desconectado da tubulação, com um lapis gire devagar a elice e veja o comportamento.

  um teste bem simples é upar um sketch que lé uma porta digital tipo...

  if (digitalRead(2) == 0;) {

Serial.Println("0");

}

else{ Serial.Println("1");}

Dai girando ligando o monitor serial, você podera ver quando girar a helice de vagar o serial monitor ficar tipo

0

0

0

1

1

0

0

1

1

ou algo parecido.

Boa noite Weider, obrigado pelas dicas. No entanto, depois de muito pensar, após lhe escrever, já estava pra comprar outra placa original, importada, pensando que ela seria a solução, me veio uma "luz", como havia dito, eu tinha colocado um LCD e um potenciômetro. Na ponta da protoboard eu energizei depois liguei o LCD e potenciômetro, só depois eu coloquei o sensor, a solução, só mudei o GND e 5+ do sensor para o início, antes das ligações do LCD, problema resolvido. Como não ainda não tenho equipamentos adequados pra medição, imagino que deve ter tido uma queda de tensão após as ligações do LCD, afetando o funcionamento do sensor, o melhor é que resolvi outro problema que era a leitura de uma balança FS-400 que estava tentando também e não estava funcionando, bastou eu colocar o GND e 5+ como fiz com o sensor de fluxo de água e passou a ler normalmente. Show de bola. Como havia dito, eletrônica não é o meu forte, no mínimo isso foi erro de principiante, mas quero aprofundar nesse área porque é incrível ver esses equipamentos sendo controlados e trabalhando a nosso favor. Fica a dica aí pra algum necessitado como eu, rsrsrs. Mais uma vez obrigado Weider.

Buenas pessoal, concluí o procedimento, e gravei um vídeo, de como ficou, inclusive já utilizei o app e o sensor no meu projeto. (Automatização de processo cervejeiro).

Assim que conseguir passo o código, o vídeo e ontem fiz os circuito numa placa padrão, não ficou aquela maravilha, mas o objetivo é deixar menos protoboard possível.

Obrigado pelas dicas e logo eu envio o material que fiz.

Att,

Diógenes V. Bittencourt

Diogenes,

   Vou aguardar com ansiedade você passar as coisas,  fico sempre curioso pra ver a coisa na real.

Ola pessoal, segue uma imagem do controlador de fluxo instalado e medindo a quantidade de água que utilizarei em duas panelas. Inicialmente estou usando 2 registros separados para cada panela, pois ainda não bolei o controle com solenoides, mas logo será automático isso também. Ainda não deixei o código bonito para ser visto o quanto gostaria, mas funcionou como eu imaginei inicialmente.

Link do vídeo onde eu estou medindo 5 litros para calibrar com o cálculo do código. Vídeo

Código que usei:

#!/usr/bin/python
#flowsensor.py
import RPi.GPIO as GPIO
import time, sys

FLOW_SENSOR = 17

GPIO.setmode(GPIO.BCM)
GPIO.setup(FLOW_SENSOR, GPIO.IN, pull_up_down = GPIO.PUD_UP)

global count
count = 0

def countPulse(channel):
global count
if start_counter == 1:
count = count+1
# print count
flow = (count * 2.69541779) / 1000
print(flow)

GPIO.add_event_detect(FLOW_SENSOR, GPIO.FALLING, callback=countPulse)

while True:
try:
start_counter = 1
time.sleep(0)
# start_counter = 0
# flow = (count * 2.5 / 1000)
# print "Entrando Agua: %.3f Litros" % (flow)
# count = 0
# time.sleep(1)
except KeyboardInterrupt:
print '\ncaught keyboard interrupt!, bye'
GPIO.cleanup()
sys.exit()

Anexos

Opa Helder, já ouvi falar sim, e já pesquisei sobre, mas o que quero fazer é algo mais objetivo e barato, que possibilite o cervejeiro caseiro utilizar suas próprias penelas com pequenas modificações.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço