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
-
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)
-
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?
-
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
-
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
-
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)
-
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)
-
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.
-
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?
-
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.
-
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.
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++;
}
-
Boas desculpem o multiposting mas é só para dizer que comprei o sensor agora esta-se para ver se consigo por isto a funcionar ::)
-
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?
-
Baud rate do terminal diferente do baud que está no programa.
-
Vou ver :-[ :-[ Mas senso sera que me podias dar a ta opiniao em relaçao ao codigo que eu postei?
-
Tens de ter o terminal com este baud rate:
38400
-
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