LusoRobótica - Robótica em Português

Robótica => Projectos de robótica => Tópico iniciado por: dvdt em 13 de Janeiro de 2013, 13:21

Título: medidor de litros
Enviado por: dvdt em 13 de Janeiro de 2013, 13:21
Boas pessoal.
O meu pai vende vinho e agora comprou daquelas embalagens de cartão com uns sacos para ser mais pratico para os clientes, mas o problema é que os sacos se quiser meto 10 litros dentro de um de 5 mas depois não cabe na caixa. Por isso precisava de uma ajudinha a fazer um sistema mesmo só com três leds que permitissem ver quando é que tem pouco, muito ou esta bom e dois botões para seleccionar entre 5 e 10 litros mas assim em low budget.
Posso fazer o prototipo com o meu arduino e depois fazer uma placa especifica só com o chip, mas para isso preciso de ideias e ajuda .

P.S. Será que da para usar isto http://www.ptrobotics.com/product.php?id_product=1426 (http://www.ptrobotics.com/product.php?id_product=1426)
Título: Re: medidor de litros
Enviado por: LuísR.A. em 13 de Janeiro de 2013, 13:34
deixa ver se entendi. tu queres uma coisa tipo os coisos de bebidas nos restaurante de fast-food. 2 botões. 1 deita exatamente 5 Litros e outro deita exatamente 10 litros?
Título: Re: medidor de litros
Enviado por: PMMN em 13 de Janeiro de 2013, 13:38
Olá!
Se calhar não percebi bem o teu problema mas, se em vez de medires litros (volume) não podes medir pesos (massa)?
Para isso bastaria uma balança (se fosse água pura e sem contar com a embalagem (tara) 5 litros de água pesariam 5 kg...
Cumps
Título: Re: medidor de litros
Enviado por: dvdt em 13 de Janeiro de 2013, 13:39
Quase isso eu quero apenas um indicador visual de quando fechar a torneira. Por agora leds depois um lcd ou seja os botões só servem para quando usar os leds.

O uso da balança foi a minha primeira ideia mas estamos a falar de sacos que se deformam-se e os de 10 litros têm cerca de 50x60 vazios depois cheios por assim dizer crescem
Título: Re: medidor de litros
Enviado por: PMMN em 13 de Janeiro de 2013, 13:54
Parece-me que queres uma coisa destas versão DIY...

http://assets.inhabitat.com/wp-content/blogs.dir/1/files/2010/09/wine-dispensers-in-france.jpg (http://assets.inhabitat.com/wp-content/blogs.dir/1/files/2010/09/wine-dispensers-in-france.jpg)
Título: Re: medidor de litros
Enviado por: dvdt em 13 de Janeiro de 2013, 14:01
AHAH Quase isso ;D.
Mas sim era uma coisa do genero, tendo em conta que existe ma plataformas em inox com uma simples placa, m ecra e uma torneira desse denero da imagem proprias para encher mas custam mais de 700€ e para ganhar para isso é preciso vender muito, e isto é só mesmo para funcionar umas 2 vezes por ano para 1000 litros de cada vez.

P.S. É exactamente isto http://www.google.pt/imgres?um=1&hl=en&tbo=d&biw=1241&bih=584&tbm=isch&tbnid=-u1w797dU38GoM:&imgrefurl=http://www.core-equip.com/catalogue/category/1579&docid=mtlSV_8BellM1M&imgurl=http://www.core-equip.com/images//Technibag/Firsty%2525202010%252520Web.jpg&w=233&h=304&ei=rb7yUKS3H4uWhQekpIHoCw&zoom=1&iact=hc&vpx=803&vpy=232&dur=1737&hovh=243&hovw=187&tx=132&ty=118&sig=106675455944117432911&page=1&tbnh=152&tbnw=117&start=0&ndsp=22&ved=1t:429,r:12,s:0,i:114 (http://www.google.pt/imgres?um=1&hl=en&tbo=d&biw=1241&bih=584&tbm=isch&tbnid=-u1w797dU38GoM:&imgrefurl=http://www.core-equip.com/catalogue/category/1579&docid=mtlSV_8BellM1M&imgurl=http://www.core-equip.com/images//Technibag/Firsty%2525202010%252520Web.jpg&w=233&h=304&ei=rb7yUKS3H4uWhQekpIHoCw&zoom=1&iact=hc&vpx=803&vpy=232&dur=1737&hovh=243&hovw=187&tx=132&ty=118&sig=106675455944117432911&page=1&tbnh=152&tbnw=117&start=0&ndsp=22&ved=1t:429,r:12,s:0,i:114)
Título: Re: medidor de litros
Enviado por: senso em 13 de Janeiro de 2013, 14:33
Tens estas coisas:
http://www.ebay.com/itm/1pcx-G1-2-Water-Flow-Sensor-Switch-Flow-Meter-Waterproof-Type-RoHS-/261150689665?pt=LH_DefaultDomain_0&hash=item3ccdcb4981 (http://www.ebay.com/itm/1pcx-G1-2-Water-Flow-Sensor-Switch-Flow-Meter-Waterproof-Type-RoHS-/261150689665?pt=LH_DefaultDomain_0&hash=item3ccdcb4981)

Juntas uma eletro-valvula, um micro de 8 patas e está feito.
Título: Re: medidor de litros
Enviado por: dvdt em 13 de Janeiro de 2013, 14:38
Tens estas coisas:
http://www.ebay.com/itm/1pcx-G1-2-Water-Flow-Sensor-Switch-Flow-Meter-Waterproof-Type-RoHS-/261150689665?pt=LH_DefaultDomain_0&hash=item3ccdcb4981 (http://www.ebay.com/itm/1pcx-G1-2-Water-Flow-Sensor-Switch-Flow-Meter-Waterproof-Type-RoHS-/261150689665?pt=LH_DefaultDomain_0&hash=item3ccdcb4981)

Juntas uma eletro-valvula, um micro de 8 patas e está feito.

Eu ja tinha mencionado usar uma coisa dessa  :D  agora ao nível de electro-valvula fica caro penso eu, eu estive a pensar. Se comprar isso e usar o arduino com um 7 segment display duplo, quão difícil será o codigo para apenas dizer 1 litro, 2 litros, etc?
Título: Re: medidor de litros
Enviado por: senso em 13 de Janeiro de 2013, 14:55
Deve dar para ai 10 linhas de código, mas usar um arduino para isso é um bocado demasiado..
Uma eletro-valvula são mais meia duzia de € no ebay.
Título: Re: medidor de litros
Enviado por: dvdt em 13 de Janeiro de 2013, 15:14
Então que chip por exemplo e que género de código?

Para o arduino peguei em exemplos de códigos e criei este agora não sei é se funciona mas dêem a vossa opinião.
Código: [Seleccione]
byte resetButtonA = 11;
byte statusLed    = 13;

byte sensorInterrupt = 0;  // 0 = pin 2; 1 = pin 3
byte sensorPin       = 2;

// The hall-effect flow sensor outputs approximately 4.5 pulses per second per
// litre/minute of flow.
float calibrationFactor = 4.5;

volatile byte pulseCount; 

float flowRate;
unsigned int flowMilliLitres;
unsigned long totalMilliLitresA;

 

unsigned long oldTime;

void setup()
{
 
  // Initialize a serial connection for reporting values to the host
  Serial.begin(38400);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);     
  pinMode(5, OUTPUT);     
  pinMode(6, OUTPUT);     

  // Set up the status LED line as an output
  pinMode(statusLed, OUTPUT);
  digitalWrite(statusLed, HIGH);  // We have an active-low LED attached
 
  // Set up the pair of counter reset buttons and activate internal pull-up resistors
  pinMode(resetButtonA, INPUT);
  digitalWrite(resetButtonA, HIGH);
 
  pinMode(sensorPin, INPUT);
  digitalWrite(sensorPin, HIGH);

  pulseCount        = 0;
  flowRate          = 0.0;
  flowMilliLitres   = 0;
  totalMilliLitresA = 0;
  oldTime           = 0;
 

  // The Hall-effect sensor is connected to pin 2 which uses interrupt 0.
  // Configured to trigger on a FALLING state change (transition from HIGH
  // state to LOW state)
  attachInterrupt(sensorInterrupt, pulseCounter, FALLING);
}

/**
 * Main program loop
 */
void loop()
{
  if(digitalRead(resetButtonA) == LOW)
  {
    totalMilliLitresA = 0;

  }

  if( (digitalRead(resetButtonA) == LOW))
  {
    digitalWrite(statusLed, LOW);
  } else {
    digitalWrite(statusLed, HIGH);
  }
 
  if((millis() - oldTime) > 1000)    // Only process counters once per second
  {
    // Disable the interrupt while calculating flow rate and sending the value to
    // the host
    detachInterrupt(sensorInterrupt);
 
    flowRate = ((1000.0 / (millis() - oldTime)) * pulseCount) / calibrationFactor;
   

    oldTime = millis();

    flowMilliLitres = (flowRate / 60) * 1000;
   
    // Add the millilitres passed in this second to the cumulative total
    totalMilliLitresA += flowMilliLitres;

    unsigned int frac;
   
    // Print the flow rate for this second in litres / minute
    Serial.print(int(flowRate));  // Print the integer part of the variable
    Serial.print(".");             // Print the decimal point
    // Determine the fractional part. The 10 multiplier gives us 1 decimal place.
    frac = (flowRate - int(flowRate)) * 10;
    Serial.print(frac, DEC) ;      // Print the fractional part of the variable

    // Print the number of litres flowed in this second
    Serial.print(" ");             // Output separator
    Serial.print(flowMilliLitres);

    // Print the cumulative total of litres flowed since starting
    Serial.print(" ");             // Output separator
    Serial.print(totalMilliLitresA);

    if(int(totalMilliLitresA)<4999)
  {digitalWrite(3,LOW);
  digitalWrite(4,LOW);
  digitalWrite(5,LOW);
  digitalWrite(6,LOW);
  }
 
if(int(totalMilliLitresA)>=5000 && (totalMilliLitresA)<=5050)
  {digitalWrite(3,HIGH);
  digitalWrite(4,LOW);
  digitalWrite(5,LOW);
  digitalWrite(6,LOW);
  }
 
if(int(totalMilliLitresA)>=5051 && (totalMilliLitresA)<=9999)
  {digitalWrite(3,HIGH);
  digitalWrite(4,HIGH);
  digitalWrite(5,LOW);
  digitalWrite(6,LOW);
  }
 
if(int(totalMilliLitresA)>=10000 && (totalMilliLitresA)<=10050)
  {digitalWrite(3,HIGH);
  digitalWrite(4,HIGH);
  digitalWrite(5,HIGH);
  digitalWrite(6,LOW);
  }
 
if(int(totalMilliLitresA)>10050)
  {digitalWrite(3,HIGH);
  digitalWrite(4,HIGH);
  digitalWrite(5,HIGH);
  digitalWrite(6,HIGH);
  }
 
 
   
    // Enable the interrupt again now that we've finished sending output
    attachInterrupt(sensorInterrupt, pulseCounter, FALLING);
  }
}

/**
 * Invoked by interrupt0 once per rotation of the hall-effect sensor. Interrupt
 * handlers should be kept as small as possible so they return quickly.
 */
void pulseCounter()
{
  // Increment the pulse counter
  pulseCount++;
}
Título: Re: medidor de litros
Enviado por: dvdt em 13 de Janeiro de 2013, 20:14
Boas desculpem o multiposting mas é só para dizer que comprei o sensor agora esta-se para ver se consigo por isto a funcionar ::)
Título: Re: medidor de litros
Enviado por: dvdt em 05 de Fevereiro de 2013, 17:54
Recebi hoje o sensor ;D. 1º problema pus o codigo que ja postei mas quando abri o serial so recebi letras sem sentido :-[ alguem encontra algum problema no codigo que cause isto?
Título: Re: medidor de litros
Enviado por: senso em 05 de Fevereiro de 2013, 18:20
Baud rate do terminal diferente do baud que está no programa.
Título: Re: medidor de litros
Enviado por: dvdt em 05 de Fevereiro de 2013, 18:33
Vou ver :-[ :-[ Mas senso sera que me podias dar a ta opiniao em relaçao ao codigo que eu postei?
Título: Re: medidor de litros
Enviado por: senso em 05 de Fevereiro de 2013, 21:10
Tens de ter o terminal com este baud rate:
38400
Título: Re: medidor de litros
Enviado por: dvdt em 05 de Fevereiro de 2013, 21:21
sim ja vi e ja esta tudo calibrado e a funcionar. Teno m buzzer que apita aos 5 e dez litrosem vez de leds e por comprar um lcd para visualizar as quantidades. Obrigado pela ajuda