les adjunto una dosificadora de líquidos, la cual esta en proceso de construcción.
la finalidad es poder realizar o preparar un trago conocido "jote" (CHILE).
el cual consiste en mezclar vino con una popular bebida cola.
La receta es simple, puede ser 40% vino y 60% bebida o a la inversa, la verdad que las cantidades dependen del catador.
el tema es que actualmente solo dosifica un liquido, estoy trabajando en un HMI para dar las recetas.
en preliminar les dejo el código acá. si les interesa ayudar a desarrollar algo mas Pro, sean bienvenidos
scketch copetematic.ino
#include "HX711.h"
#define DOUT A1
#define CLK A0
HX711 balanza(DOUT, CLK);
int var = 0;
void setup() {
Serial.begin(9600);
pinMode(4, INPUT);
pinMode(3, OUTPUT);
pinMode(4, HIGH);
Serial.print("Lectura del valor del ADC: ");
Serial.println(balanza.read());
Serial.println("No ponga ningun objeto sobre la balanza");
Serial.println("Destarando...");
Serial.println("...");
balanza.set_scale(-18589.98); // Establecemos la escala
balanza.tare(20); //El peso actual es considerado Tara.
Serial.println("Listo para pesar");
}
void loop() {
casos();
Serial.print("Peso:");
Serial.print(balanza.get_units(20),3);
Serial.println("kg");
delay(100);
float peso = balanza.get_units(10);
if (peso >= -0.620 && peso <= -0.100) {
balanza.tare(20);
Serial.println("Tarando Copetematic");
delay(100);
}
if (peso >= -0.030 && peso <= 0.020) {
var = 0;
delay(100);
}
// Vaso Pequeño
if ((var == 0 ) && (peso >= 0.150 && peso <= 0.160)) {
var = 3;
delay(100);
}
// Vaso Pequeño lleno
if ((var == 3 ) && (peso >= 0.290)) {
var = 4;
delay(100);
}
// CAÑA
if ((var == 0 ) && (peso >= 0.229 && peso <= 0.260)) {
var = 1;
delay(100);
}
// Vaso lleno
if ((var == 1 ) && (peso >= 0.458)) {
var = 2;
delay(100);
}
if (digitalRead(4) == HIGH) {
var = 0;
balanza.tare(20);
}
}
adjuntar a este variables.ino
void casos()
{
switch(var){
case 1:
//si var = 1 se ejecuta esto
digitalWrite(3, LOW);
Serial.println("Caña");
break;
case 2:
//si var = 2 se ejecuta esto
digitalWrite(3, HIGH);
Serial.println("Baso lleno");
balanza.tare(20);
Serial.println("Retire el Copete");
break;
//pueden haber tantos case como se necesite.
case 3:
digitalWrite(3, LOW);
Serial.println("Vaso Pequeño");
break;
case 4:
digitalWrite(3, HIGH);
Serial.println("Basito lleno");
balanza.tare(20);
Serial.println("Retire el Copete");
break;
default:
digitalWrite(3, HIGH);
//si nada coincide se ejecuta esto
//es opcional
break;
}
}