SUM

PRESENTACIÓN DEL PROYECTO

SUM son las siglas de “Sírvase usted mismo” desarrollado por Ivan Lopez Vazquez, Isaac Timón
de Santos y David Domínguez Martin.

El proyecto trata de la elaboración de un dispensador de bebida visto comúnmente en
restaurantes de comida rápida (Burger King, TGB, etc). Estas máquinas ofrecen al cliente bebida
previamente seleccionada mediante un botón. En nuestro caso hemos querido dar otro punto
de vista y otro aire sobre dicha máquina.

SUM es un dispensador de bebida implementada con Arduino, para darle una idea más
innovadora decidimos que el cliente se conecte a la máquina con su Smartphone mediante
bluetooth y elija la bebida que quiera consumir mediante una aplicación Android para así
ahorrarle el tener que estar presionando un botón hasta rellenar el vaso entero.

La aplicación Android ha sido creada por el equipo de SUM mediante el programa “App
Inventor”. Mediante una serie de bloques se configura el funcionamiento de la aplicación y la
interfaz se desarrolla visualmente manualmente.

Además hemos colocado un led rojo que se encuentra en todo momento encendido para dar
seguridad de que la máquina está encendida y otro led verde que se encenderá cuando la
bebida se esté sirviendo.

Materiales y Presupuesto

Desarrollo del proyecto / Construcción de la máquina

Una vez producidas las diferentes pruebas de funcionamiento de todos los elementos
necesarios para el desarrollo de SUM, procedimos a la implementación del sistema empotrado
en una caja de madera la cual va a sujetar todo el proyecto, para unir la madera de posavasos
se usaron clavos y para la sujeción de todos los elementos fueron necesarias bridas. Para las
botellas de plástico en las que reside la bebida se hizo un agujero en los tapones para
posteriormente introducir los tubos transparentes que transportan la bebida y pegarlos con
pegamento de pistola. La bomba de extracción de agua está sujeta mediante tornillos en la
parte posterior de la madera junto a las 2 válvulas de solenoide. Para el grifo se ha usado
únicamente un soporte de plástico para que éste no salga disparado a la hora de echar la
bebida.

El relé funciona como un interruptor, cuando se acciona un módulo de éste cierra el circuito y
hace tener contacto, mientras tanto el circuito lo deja abierto y no hay contacto.

La placa protoboard pequeña ha sido usada para las interconexiones con Arduino y la placa
protoboard grande ha sido usada para las interconexiones de la fuente de alimentación con la
bomba de extracción de agua.

Imágenes del proceso

Bomba de extracción de agua y cables.

Arduino con el módulo de bluetooth.

Problemas encontrados y soluciones

A la hora de realizar el proyecto nos dimos con diferentes problemas los cuales tuvimos que ir
solucionando.

· El primer problema encontrado fue que a la hora de configurar el módulo de bluetooth no
respondía el modulo correctamente, después de varios intentos configurándolo la solución fue
mandarlo a fábrica para que nos enviaran uno nuevo. Finalmente el problema se resolvió ya que
el módulo estaba defectuoso de fábrica.

· El segundo problema fue que por más que usábamos enchufes con alto voltaje y amperaje la
bomba de extracción de agua no terminaba funcionando, la solución fue conseguir una fuente
de alimentación de un ordenador antiguo y haciéndole un empalme para que no tuviese que
detectar que el “ordenador” se encendiese, sino que funcionase una vez conectado a la luz, lo
conseguimos conectar a la bomba y terminó funcionando con una gran potencia.

· El tercer problema que hubo fue que la bomba de extracción de agua no absorbía el agua
suficiente a una velocidad rápida, tardaba mucho en llegar la bebida hasta el grifo, la solución
fue acortar la distancia entre las botellas con la bebida y los demás elementos, sin tener que
hacer un recorrido laborioso hasta llegar al grifo.

· El cuarto problema que hubo estaba relacionado con el sensor de presión, después de
configurarlo correctamente con Arduino, el sensor detectaba presiones incorrectas y no hacia
su función correctamente, la solución que llevamos a cabo fue prescindir de éste y no usarlo,
siendo una implementación futura a éste proyecto por mejorar.

· Por último tuvimos un contratiempo con una de las válvulas ya que a la hora de unir
correctamente los adaptadores para poder conectar el tubo transparente una de ellas se
rompió por accidente por lo que finalmente hicimos uso de dos válvulas.

Código Arduino

int pinRojo = 2; //Para cada led, válvula y bomba inicializamos un pin de Arduino
int pinVerde = 8;
int pinElectrovalvula1=4;
int pinElectrovalvula2=7;
int pinBomba = 12;
int estado = 0; //Este estado será el que la aplicación cambie cuando se pulse una de las dos
//bebidas.
unsigned long tiempoInicio = millis ();
unsigned long intervalo = 3000;
//Método para configurar que la primera válvula expulse bebida
void expulsar1(int pinElectrovalvula1){
digitalWrite(pinVerde, HIGH);
digitalWrite(pinRojo, LOW);
digitalWrite(pinElectrovalvula1, LOW); //La acción LOW tiene lógica inversa y significa abrir
//válvula, al igual que la bomba,
digitalWrite(pinBomba, LOW);
delay(6000); //Este delay es para que se mantenga expulsando bebida durante 6 segundos.g
digitalWrite(pinElectrovalvula1, HIGH);
digitalWrite(pinBomba, HIGH);
estado = 0; //Inicializamos el estado para que no esté continuamente expulsado bebida.
}
void expulsar2(int pinElectrovalvula2){
digitalWrite(pinVerde, HIGH);
digitalWrite(pinRojo, LOW);
digitalWrite(pinElectrovalvula2, LOW);
digitalWrite(pinBomba, LOW);
delay(6000);
digitalWrite(pinElectrovalvula2, HIGH);
digitalWrite(pinBomba, HIGH);
estado = 0;
}
void setup()
{
// Inicializamos el modulo de EVs
pinMode(pinRojo, OUTPUT);
pinMode(pinVerde, OUTPUT);
pinMode(pinElectrovalvula1,OUTPUT);
pinMode(pinElectrovalvula2,OUTPUT);
pinMode(pinBomba,OUTPUT);
Serial.begin(9600);
}
void loop()
{
digitalWrite(pinRojo, HIGH);
digitalWrite(pinVerde, LOW);
digitalWrite(pinElectrovalvula1,HIGH);
digitalWrite(pinElectrovalvula2,HIGH);
digitalWrite(pinBomba, HIGH);
if(Serial.available()>0){
estado = Serial.read();
}
if (estado == ‘1’){ //Si el cliente pulsa sobre la primera bebida, se acciona el método
//expulsar1.
expulsar1(pinElectrovalvula1);
}
if (estado == ‘2’){ //Si el cliente pulsa sobre la segunda bebida, se acciona el método
//expulsar2.
expulsar2(pinElectrovalvula2);
}
}

También te podría gustar...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *