This is the program where I say the time until the start is okay, I left out the libraries at the top because there are still private things there, the HX711 and Blynk.
int pumpe1 = 9; //Rot (Orangensaft, Kokosmilch, Kokoswasser, Apfelsaft, Maracujasaft)
int pumpe2 = 8; //Blau (Cola, Bitter Lemon, Sprite, Fanta, Sprudel, Mineralwasser, Tonic)
int pumpe3 = 7; //Dunlelgrün (Limettensaft, Ananassaft, Cranberrysaft, Wassermelonensaft, Mangosaft, Traubensaft)
int pumpe4 = 6; //Rosa (Pfirsichlikör, Triple Sec, Kirschsaft, Grenadine)
int pumpe5 = 5; //Braun (Wodka, Malibu, Weißer Rum, Ficken)
int pumpe6 = 4; //Grün (Gin, Schokomilch, Rum)
int pumpe7 = 3; //Pink (Jack Daniels, Zitronensaft)
int pumpe8 = 2; // Lila (Tequila)
// Pin-Konfiguration für die Wägezelle
int LOADCELL_DOUT_PIN = 13;
int LOADCELL_SCK_PIN = 12;
bool pumpenGestartet = false;
bool pumpe1Gestartet = false;
bool pumpe2Gestartet = false;
bool pumpe3Gestartet = false;
bool pumpe4Gestartet = false;
bool pumpe5Gestartet = false;
bool pumpe6Gestartet = false;
bool pumpe7Gestartet = false;
bool pumpe8Gestartet = false;
bool ManuelleSteuerung = false;
bool ReinigungAusgewaehlt = false;
bool CubaLibreAusgewaehlt = false;
bool WodkaLemonAusgewaehlt = false;
bool WodkaSpriteAusgewaehlt = false;
bool MalibuOrangeAusgewaehlt = false;
bool RumPunchAusgewaehlt = false;
bool JackyColaAusgewaehlt = false;
bool GinTonicAusgewaehlt = false;
bool SexontheBeachAusgewaehlt = false;
bool PinaColadaAusgewaehlt = false;
bool TequilaSunriseAusgewaehlt = false;
bool WodkaCranberryAusgewaehlt = false;
bool MojitoAusgewaehlt = false;
bool LongIslandIcedTeaAusgewaehlt = false;
bool ScrewdriverAusgewaehlt = false;
bool JakababyYannickandSoerenAusgewaehlt = false;
bool LoversSunsetAusgewaehlt = false;
bool CocktailNojitoAusgewaehlt = false;
bool TropicalParadiseAusgewaehlt = false;
bool CocoLocoAusgewaehlt = false;
bool ColaSplashAusgewaehlt = false;
bool SparklingCitrusAusgewaehlt = false;
bool RefreshingWatermelonAusgewaehlt = false;
bool CoconutWaterRefresherAusgewaehlt = false;
bool CitrusMintCoolerAusgewaehlt = false;
bool VirginPinaColadaAusgewaehlt = false;
bool OrangeDreamMocktailAusgewaehlt = false;
BlynkTimer timer;
HX711 scale;
BLYNK_WRITE(V10) {
int state = param.asInt();
if (state == HIGH) {
pumpenGestartet = false;
} else {
pumpenGestartet = true;
}
}
BLYNK_WRITE(V13) {
int state = param.asInt();
if (state == HIGH && !pumpe1Gestartet) { // Starte die Pumpe nur, wenn sie nicht bereits läuft
pumpe1Gestartet = true;
digitalWrite(pumpe1, LOW);
} else if (state == LOW && pumpe1Gestartet) { // Stoppe die Pumpe nur, wenn sie bereits läuft
pumpe1Gestartet = false;
digitalWrite(pumpe1, HIGH);
}
}
BLYNK_WRITE(V14) {
int state = param.asInt();
if (state == HIGH && !pumpe2Gestartet) {
pumpe2Gestartet = true;
digitalWrite(pumpe2, LOW);
} else if (state == LOW && pumpe2Gestartet) {
pumpe2Gestartet = false;
digitalWrite(pumpe2, HIGH);
}
}
BLYNK_WRITE(V15) {
int state = param.asInt();
if (state == HIGH && !pumpe3Gestartet) {
pumpe3Gestartet = true;
digitalWrite(pumpe3, LOW);
} else if (state == LOW && pumpe3Gestartet) {
pumpe3Gestartet = false;
digitalWrite(pumpe3, HIGH);
}
}
BLYNK_WRITE(V16) {
int state = param.asInt();
if (state == HIGH && !pumpe4Gestartet) {
pumpe4Gestartet = true;
digitalWrite(pumpe4, LOW);
} else if (state == LOW && pumpe4Gestartet) {
pumpe4Gestartet = false;
digitalWrite(pumpe4, HIGH);
}
}
BLYNK_WRITE(V17) {
int state = param.asInt();
if (state == HIGH && !pumpe5Gestartet) {
pumpe5Gestartet = true;
digitalWrite(pumpe5, LOW);
} else if (state == LOW && pumpe5Gestartet) {
pumpe5Gestartet = false;
digitalWrite(pumpe5, HIGH);
}
}
BLYNK_WRITE(V18) {
int state = param.asInt();
if (state == HIGH && !pumpe6Gestartet) {
pumpe6Gestartet = true;
digitalWrite(pumpe6, LOW);
} else if (state == LOW && pumpe6Gestartet) {
pumpe6Gestartet = false;
digitalWrite(pumpe6, HIGH);
}
}
BLYNK_WRITE(V19) {
int state = param.asInt();
if (state == HIGH && !pumpe7Gestartet) {
pumpe7Gestartet = true;
digitalWrite(pumpe7, LOW);
} else if (state == LOW && pumpe7Gestartet) {
pumpe7Gestartet = false;
digitalWrite(pumpe7, HIGH);
}
}
BLYNK_WRITE(V20) {
int state = param.asInt();
if (state == HIGH && !pumpe8Gestartet) {
pumpe8Gestartet = true;
digitalWrite(pumpe8, LOW);
} else if (state == LOW && pumpe8Gestartet) {
pumpe8Gestartet = false;
digitalWrite(pumpe8, HIGH);
}
}
BLYNK_WRITE(V11) {
int selectedMenuItem = param.asInt();
if (selectedMenuItem == 0) {
ManuelleSteuerung = true;
} else if (selectedMenuItem == 1) {
ReinigungAusgewaehlt = true;
} else if (selectedMenuItem == 2) {
CubaLibreAusgewaehlt = true;
} else if (selectedMenuItem == 3) {
WodkaLemonAusgewaehlt = true;
} else if (selectedMenuItem == 4) {
WodkaSpriteAusgewaehlt = true;
} else if (selectedMenuItem == 5) {
MalibuOrangeAusgewaehlt = true;
} else if (selectedMenuItem == 6) {
RumPunchAusgewaehlt = true;
} else if (selectedMenuItem == 7) {
JackyColaAusgewaehlt = true;
} else if (selectedMenuItem == 8) {
GinTonicAusgewaehlt = true;
} else if (selectedMenuItem == 9) {
SexontheBeachAusgewaehlt = true;
} else if (selectedMenuItem == 10) {
PinaColadaAusgewaehlt = true;
} else if (selectedMenuItem == 11) {
TequilaSunriseAusgewaehlt = true;
} else if (selectedMenuItem == 12) {
WodkaCranberryAusgewaehlt = true;
} else if (selectedMenuItem == 13) {
MojitoAusgewaehlt = true;
} else if (selectedMenuItem == 14) {
LongIslandIcedTeaAusgewaehlt = true;
} else if (selectedMenuItem == 15) {
ScrewdriverAusgewaehlt = true;
} else if (selectedMenuItem == 16) {
JakababyYannickandSoerenAusgewaehlt = true;
} else if (selectedMenuItem == 17) {
LoversSunsetAusgewaehlt = true;
} else if (selectedMenuItem == 18) {
CocktailNojitoAusgewaehlt = true;
} else if (selectedMenuItem == 19) {
TropicalParadiseAusgewaehlt = true;
} else if (selectedMenuItem == 20) {
CocoLocoAusgewaehlt = true;
} else if (selectedMenuItem == 21) {
ColaSplashAusgewaehlt = true;
} else if (selectedMenuItem == 22) {
SparklingCitrusAusgewaehlt = true;
} else if (selectedMenuItem == 23) {
RefreshingWatermelonAusgewaehlt = true;
} else if (selectedMenuItem == 24) {
CoconutWaterRefresherAusgewaehlt = true;
} else if (selectedMenuItem == 25) {
CitrusMintCoolerAusgewaehlt = true;
} else if (selectedMenuItem == 26) {
VirginPinaColadaAusgewaehlt = true;
} else if (selectedMenuItem == 27) {
OrangeDreamMocktailAusgewaehlt = true;
} else {
ManuelleSteuerung = false;
ReinigungAusgewaehlt = false;
CubaLibreAusgewaehlt = false;
WodkaLemonAusgewaehlt = false;
WodkaSpriteAusgewaehlt = false;
MalibuOrangeAusgewaehlt = false;
RumPunchAusgewaehlt = false;
JackyColaAusgewaehlt = false;
GinTonicAusgewaehlt = false;
SexontheBeachAusgewaehlt = false;
PinaColadaAusgewaehlt = false;
TequilaSunriseAusgewaehlt = false;
WodkaCranberryAusgewaehlt = false;
MojitoAusgewaehlt = false;
LongIslandIcedTeaAusgewaehlt = false;
ScrewdriverAusgewaehlt = false;
JakababyYannickandSoerenAusgewaehlt = false;
LoversSunsetAusgewaehlt = false;
CocktailNojitoAusgewaehlt = false;
TropicalParadiseAusgewaehlt = false;
CocoLocoAusgewaehlt = false;
ColaSplashAusgewaehlt = false;
SparklingCitrusAusgewaehlt = false;
RefreshingWatermelonAusgewaehlt = false;
CoconutWaterRefresherAusgewaehlt = false;
CitrusMintCoolerAusgewaehlt = false;
VirginPinaColadaAusgewaehlt = false;
OrangeDreamMocktailAusgewaehlt = false;
}
}
void setup() {
Serial.begin(57600);
scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
pinMode(pumpe1, OUTPUT);
pinMode(pumpe2, OUTPUT);
pinMode(pumpe3, OUTPUT);
pinMode(pumpe4, OUTPUT);
pinMode(pumpe5, OUTPUT);
pinMode(pumpe6, OUTPUT);
pinMode(pumpe7, OUTPUT);
pinMode(pumpe8, OUTPUT);
digitalWrite(pumpe1, HIGH);
digitalWrite(pumpe2, HIGH);
digitalWrite(pumpe3, HIGH);
digitalWrite(pumpe4, HIGH);
digitalWrite(pumpe5, HIGH);
digitalWrite(pumpe6, HIGH);
digitalWrite(pumpe7, HIGH);
digitalWrite(pumpe8, HIGH);
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
}
void loop() {
Blynk.run();
// Case 0: Manuelle Steuerung
case0_ManuelleSteuerung();
// Case 1: Reinigung
case1_Reinigungsprogramm();
// Case 2: Cuba Libre
case2_CubaLibre();
// Case 3: Wodka Lemon
case3_WodkaLemon();
// Case 4: Wodka Sprite
case4_WodkaSprite();
// Case 5: Malibu Orange
case5_MalibuOrange();
// Case 6: Rum Punch
case6_RumPunch();
// Case 7: Jacky Cola
case7_JackyCola();
}
// Untere und obere Grenze für die Toleranz
long LOWER_TOLERANCE = 1195 - 842; // Unterer Toleranzwert unter Berücksichtigung der Kalibrierung //355
long UPPER_TOLERANCE = 1205 - 842; // Oberer Toleranzwert unter Berücksichtigung der Kalibrierung // 365
//------------------------------------------------------------------------------------------------------------------------------------
// Case 0: Manuelle Steuerung
//------------------------------------------------------------------------------------------------------------------------------------
void case0_ManuelleSteuerung() {
if (pumpe1Gestartet && ManuelleSteuerung ){
Serial.println("Pumpe 1 läuft");
digitalWrite(pumpe1,LOW);
}
if (pumpe2Gestartet && ManuelleSteuerung ){
Serial.println("Pumpe 2 läuft");
digitalWrite(pumpe2,LOW);
}
if (pumpe3Gestartet && ManuelleSteuerung ){
Serial.println("Pumpe 3 läuft");
digitalWrite(pumpe3,LOW);
}
if (pumpe4Gestartet && ManuelleSteuerung ){
Serial.println("Pumpe 4 läuft");
digitalWrite(pumpe4,LOW);
}
if (pumpe5Gestartet && ManuelleSteuerung ){
Serial.println("Pumpe 5 läuft");
digitalWrite(pumpe5,LOW);
}
if (pumpe6Gestartet && ManuelleSteuerung ){
Serial.println("Pumpe 6 läuft");
digitalWrite(pumpe6,LOW);
}
if (pumpe7Gestartet && ManuelleSteuerung ){
Serial.println("Pumpe 7 läuft");
digitalWrite(pumpe7,LOW);
}
if (pumpe8Gestartet && ManuelleSteuerung ){
Serial.println("Pumpe 8 läuft");
digitalWrite(pumpe8,LOW);
}
}
//------------------------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------------------------
// Case 1: Reinigungsprogramm
//------------------------------------------------------------------------------------------------------------------------------------
void case1_Reinigungsprogramm() {
//Benutzte Pumpen für Reinigungsprogramm
//Pumpe 1-8: Wasser
// Setze das Zielgewicht für das Reinigungsprogramm
long TARGET_WEIGHT_ALL_PUMPS = 645;
// Überprüfe, ob die Waage betriebsbereit ist
if (scale.is_ready()) {
long reading = (scale.read() * 0.01) - 842;
Serial.print("HX711 reading: ");
Serial.println(reading);
if (reading >= LOWER_TOLERANCE && reading <= UPPER_TOLERANCE && pumpenGestartet && ReinigungAusgewaehlt) {
Serial.println("Correct weight range reached");
// Schleife, die die Pumpen steuert, bis das Zielgewicht erreicht ist
while (reading < TARGET_WEIGHT_ALL_PUMPS && pumpenGestartet && ReinigungAusgewaehlt) {
// Aktiviere alle Pumpen gleichzeitig
digitalWrite(pumpe1, LOW);
digitalWrite(pumpe2, LOW);
digitalWrite(pumpe3, LOW);
digitalWrite(pumpe4, LOW);
digitalWrite(pumpe5, LOW);
digitalWrite(pumpe6, LOW);
digitalWrite(pumpe7, LOW);
digitalWrite(pumpe8, LOW);
// Füge hier eine kurze Verzögerung ein, bevor das Gewicht erneut überprüft wird
delay(1000);
reading = (scale.read() * 0.01) - 842; // Beispiel: 1 Sekunde
}
// Deaktiviere alle Pumpen, wenn das Zielgewicht erreicht ist
digitalWrite(pumpe1, HIGH);
digitalWrite(pumpe2, HIGH);
digitalWrite(pumpe3, HIGH);
digitalWrite(pumpe4, HIGH);
digitalWrite(pumpe5, HIGH);
digitalWrite(pumpe6, HIGH);
digitalWrite(pumpe7, HIGH);
digitalWrite(pumpe8, HIGH);
}
else {
Serial.println("Weight outside correct range. Pump stopped.");
digitalWrite(pumpe1, HIGH);
digitalWrite(pumpe2, HIGH);
digitalWrite(pumpe3, HIGH);
digitalWrite(pumpe4, HIGH);
digitalWrite(pumpe5, HIGH);
digitalWrite(pumpe6, HIGH);
digitalWrite(pumpe7, HIGH);
digitalWrite(pumpe8, HIGH);
delay(1000);
}
} else {
Serial.println("HX711 not found.");
digitalWrite(pumpe1, HIGH);
digitalWrite(pumpe2, HIGH);
digitalWrite(pumpe3, HIGH);
digitalWrite(pumpe4, HIGH);
digitalWrite(pumpe5, HIGH);
digitalWrite(pumpe6, HIGH);
digitalWrite(pumpe7, HIGH);
digitalWrite(pumpe8, HIGH);
delay(1000);
}
}
//------------------------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------------------------
// Case 2: Cuba Libre
//------------------------------------------------------------------------------------------------------------------------------------
void case2_CubaLibre() {
//Benutzte Pumpen für Cuba Libre
//Pumpe 6: Rum
//Pumpe 2: Cola
//Pumpe 3: Limettensaft
//Ausgangsgewicht 355-365, 1ml = 1g (Nicht Alkolisch), 1ml = 0,789 (0,8) (Alkolisch)
long TARGET_WEIGHT_PUMPE6 = 395; // 50ml Rum= 40g
long TARGET_WEIGHT_PUMPE2 = 620; // 225ml Cola = 225g
long TARGET_WEIGHT_PUMPE3 = 635; // 15ml Limettensaft = 15g
if (scale.is_ready()) {
long reading = (scale.read() * 0.01) - 842;
Serial.print("HX711 reading: ");
Serial.println(reading);
// Wenn das Gewicht innerhalb der Toleranz liegt
if (reading >= LOWER_TOLERANCE && reading <= UPPER_TOLERANCE && pumpenGestartet && CubaLibreAusgewaehlt) {
Serial.println("Correct weight range reached");
// Pumpe 6
while (reading < TARGET_WEIGHT_PUMPE6 && pumpenGestartet && CubaLibreAusgewaehlt) {
digitalWrite(pumpe6, LOW);
delay(1000);
reading = (scale.read() * 0.01) - 842;
}
digitalWrite(pumpe6, HIGH);
Serial.println("Target weight for pump 6 reached. Pump 6 stopped.");
delay(2000);
// Pumpe 2
while (reading < TARGET_WEIGHT_PUMPE2 && pumpenGestartet && CubaLibreAusgewaehlt) {
digitalWrite(pumpe2, LOW);
delay(1000);
reading = (scale.read() * 0.01) - 842;
}
digitalWrite(pumpe2, HIGH);
Serial.println("Target weight for pump 2 reached. Pump 2 stopped.");
delay(2000);
// Pumpe 3
while (reading < TARGET_WEIGHT_PUMPE3 && pumpenGestartet && CubaLibreAusgewaehlt) {
digitalWrite(pumpe3, LOW);
delay(1000);
reading = (scale.read() * 0.01) - 842;
}
digitalWrite(pumpe3, HIGH);
Serial.println("Target weight for pump 3 reached. Pump 3 stopped.");
} else {
Serial.println("Weight outside correct range. Pump stopped.");
digitalWrite(pumpe6, HIGH);
digitalWrite(pumpe2, HIGH);
digitalWrite(pumpe3, HIGH);
delay(1000);
}
} else {
Serial.println("HX711 not found.");
digitalWrite(pumpe6, HIGH);
digitalWrite(pumpe2, HIGH);
digitalWrite(pumpe3, HIGH);
delay(1000);
}
}
//------------------------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------------------------
// Case 3: Wodka Lemon
//------------------------------------------------------------------------------------------------------------------------------------
void case3_WodkaLemon() {
//Benutzte Pumpen für Wodka Lemon
//Pumpe 5: Wodka
//Pumpe 2: Bitter Lemon
//Ausgangsgewicht 355-365, 1ml = 1g (Nicht Alkolisch), 1ml = 0,789 (0,8) (Alkolisch)
long TARGET_WEIGHT_PUMPE5 = 395; // 50ml Wodka = 40g
long TARGET_WEIGHT_PUMPE2 = 645; // 250ml Bitter Lemon = 250g
if (scale.is_ready()) {
long reading = (scale.read() * 0.01) - 842;
Serial.print("HX711 reading: ");
Serial.println(reading);
// Wenn das Gewicht innerhalb der Toleranz liegt
if (reading >= LOWER_TOLERANCE && reading <= UPPER_TOLERANCE && pumpenGestartet && WodkaLemonAusgewaehlt) {
Serial.println("Correct weight range reached");
// Pumpe 5
while (reading < TARGET_WEIGHT_PUMPE5 && pumpenGestartet && WodkaLemonAusgewaehlt) {
digitalWrite(pumpe5, LOW);
delay(1000);
reading = (scale.read() * 0.01) - 842;
}
digitalWrite(pumpe5, HIGH);
Serial.println("Target weight for pump 5 reached. Pump 5 stopped.");
delay(2000);
// Pumpe 2
while (reading < TARGET_WEIGHT_PUMPE2 && pumpenGestartet && WodkaLemonAusgewaehlt) {
digitalWrite(pumpe2, LOW);
delay(1000);
reading = (scale.read() * 0.01) - 842;
}
digitalWrite(pumpe2, HIGH);
Serial.println("Target weight for pump 2 reached. Pump 2 stopped.");
} else {
Serial.println("Weight outside correct range. Pump stopped.");
digitalWrite(pumpe5, HIGH);
digitalWrite(pumpe2, HIGH);
delay(1000);
}
} else {
Serial.println("HX711 not found.");
digitalWrite(pumpe5, HIGH);
digitalWrite(pumpe2, HIGH);
delay(1000);
}
}
//------------------------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------------------------
// Case 4: Wodka Sprite
//------------------------------------------------------------------------------------------------------------------------------------
void case4_WodkaSprite() {
//Benutzte Pumpen für Wodka Sprite
//Pumpe 5: Wodka
//Pumpe 2: Sprite
//Ausgangsgewicht 355-365, 1ml = 1g (Nicht Alkolisch), 1ml = 0,789 (0,8) (Alkolisch)
long TARGET_WEIGHT_PUMPE5 = 395; // 50ml Wodka = 40g
long TARGET_WEIGHT_PUMPE2 = 645; // 250ml Sprite = 250g
if (scale.is_ready()) {
long reading = (scale.read() * 0.01) - 842;
Serial.print("HX711 reading: ");
Serial.println(reading);
// Wenn das Gewicht innerhalb der Toleranz liegt
if (reading >= LOWER_TOLERANCE && reading <= UPPER_TOLERANCE && pumpenGestartet && WodkaSpriteAusgewaehlt) {
Serial.println("Correct weight range reached");
// Pumpe 5
while (reading < TARGET_WEIGHT_PUMPE5 && pumpenGestartet && WodkaSpriteAusgewaehlt) {
digitalWrite(pumpe5, LOW);
delay(1000);
reading = (scale.read() * 0.01) - 842;
}
digitalWrite(pumpe5, HIGH);
Serial.println("Target weight for pump 5 reached. Pump 5 stopped.");
delay(2000);
// Pumpe 2
while (reading < TARGET_WEIGHT_PUMPE2 && pumpenGestartet && WodkaSpriteAusgewaehlt) {
digitalWrite(pumpe2, LOW);
delay(1000);
reading = (scale.read() * 0.01) - 842;
}
digitalWrite(pumpe2, HIGH);
Serial.println("Target weight for pump 2 reached. Pump 2 stopped.");
} else {
Serial.println("Weight outside correct range. Pump stopped.");
digitalWrite(pumpe5, HIGH);
digitalWrite(pumpe2, HIGH);
delay(1000);
}
} else {
Serial.println("HX711 not found.");
digitalWrite(pumpe5, HIGH);
digitalWrite(pumpe2, HIGH);
delay(1000);
}
}
//------------------------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------------------------
// Case 5: Malibu Orange
//------------------------------------------------------------------------------------------------------------------------------------
void case5_MalibuOrange() {
//Benutzte Pumpen für Malibu Orange
//Pumpe 5: Malibu
//Pumpe 1: Orangensaft
//Ausgangsgewicht 355-365, 1ml = 1g (Nicht Alkolisch), 1ml = 0,789 (0,8) (Alkolisch)
long TARGET_WEIGHT_PUMPE5 = 395; // 50ml Malibu = 40g
long TARGET_WEIGHT_PUMPE1 = 645; // 250ml Orangensaft = 250g
if (scale.is_ready()) {
long reading = (scale.read() * 0.01) - 842;
Serial.print("HX711 reading: ");
Serial.println(reading);
// Wenn das Gewicht innerhalb der Toleranz liegt
if (reading >= LOWER_TOLERANCE && reading <= UPPER_TOLERANCE && pumpenGestartet && MalibuOrangeAusgewaehlt) {
Serial.println("Correct weight range reached");
// Pumpe 5
while (reading < TARGET_WEIGHT_PUMPE5 && pumpenGestartet && MalibuOrangeAusgewaehlt) {
digitalWrite(pumpe5, LOW);
delay(1000);
reading = (scale.read() * 0.01) - 842;
}
digitalWrite(pumpe5, HIGH);
Serial.println("Target weight for pump 5 reached. Pump 5 stopped.");
delay(2000);
// Pumpe 2
while (reading < TARGET_WEIGHT_PUMPE1 && pumpenGestartet && MalibuOrangeAusgewaehlt) {
digitalWrite(pumpe1, LOW);
delay(1000);
reading = (scale.read() * 0.01) - 842;
}
digitalWrite(pumpe1, HIGH);
Serial.println("Target weight for pump 2 reached. Pump 2 stopped.");
} else {
Serial.println("Weight outside correct range. Pump stopped.");
digitalWrite(pumpe5, HIGH);
digitalWrite(pumpe1, HIGH);
delay(1000);
}
} else {
Serial.println("HX711 not found.");
digitalWrite(pumpe5, HIGH);
digitalWrite(pumpe1, HIGH);
delay(1000);
}
}
//------------------------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------------------------
// Case 6: Rum Punch
//------------------------------------------------------------------------------------------------------------------------------------
void case6_RumPunch() {
//Benutzte Pumpen Rum Punch
//Pumpe 6: Rum
//Pumpe 3: Ananassaft
//Pumpe 1: Orangensaft
//Pumpe 7: Zitronensaft
//Ausgangsgewicht 355-365, 1ml = 1g (Nicht Alkolisch), 1ml = 0,789 (0,8) (Alkolisch)
long TARGET_WEIGHT_PUMPE6 = 399; // 55ml Rum = 44g
long TARGET_WEIGHT_PUMPE3 = 509; // 110ml Ananassaft = 110g
long TARGET_WEIGHT_PUMPE1 = 619; // 110ml Orangensaft = 110g
long TARGET_WEIGHT_PUMPE7 = 644; // 25ml Zitronensaft = 25g
if (scale.is_ready()) {
long reading = (scale.read() * 0.01) - 842;
Serial.print("HX711 reading: ");
Serial.println(reading);
// Wenn das Gewicht innerhalb der Toleranz liegt
if (reading >= LOWER_TOLERANCE && reading <= UPPER_TOLERANCE && pumpenGestartet && RumPunchAusgewaehlt) {
Serial.println("Correct weight range reached");
// Pumpe 6
while (reading < TARGET_WEIGHT_PUMPE6 && pumpenGestartet && RumPunchAusgewaehlt) {
digitalWrite(pumpe6, LOW);
delay(1000);
reading = (scale.read() * 0.01) - 842;
}
digitalWrite(pumpe6, HIGH);
Serial.println("Target weight for pump 6 reached. Pump 6 stopped.");
delay(2000);
// Pumpe 3
while (reading < TARGET_WEIGHT_PUMPE3 && pumpenGestartet && RumPunchAusgewaehlt) {
digitalWrite(pumpe3, LOW);
delay(1000);
reading = (scale.read() * 0.01) - 842;
}
digitalWrite(pumpe3, HIGH);
Serial.println("Target weight for pump 3 reached. Pump 3 stopped.");
delay(2000);
// Pumpe 1
while (reading < TARGET_WEIGHT_PUMPE1 && pumpenGestartet && RumPunchAusgewaehlt) {
digitalWrite(pumpe1, LOW);
delay(1000);
reading = (scale.read() * 0.01) - 842;
}
digitalWrite(pumpe1, HIGH);
Serial.println("Target weight for pump 1 reached. Pump 1 stopped.");
// Pumpe 7
while (reading < TARGET_WEIGHT_PUMPE7 && pumpenGestartet && RumPunchAusgewaehlt) {
digitalWrite(pumpe7, LOW);
delay(1000);
reading = (scale.read() * 0.01) - 842;
}
digitalWrite(pumpe7, HIGH);
Serial.println("Target weight for pump 7 reached. Pump 7 stopped.");
} else {
Serial.println("Weight outside correct range. Pump stopped.");
digitalWrite(pumpe6, HIGH);
digitalWrite(pumpe3, HIGH);
digitalWrite(pumpe1, HIGH);
digitalWrite(pumpe7, HIGH);
delay(1000);
}
} else {
Serial.println("HX711 not found.");
digitalWrite(pumpe6, HIGH);
digitalWrite(pumpe3, HIGH);
digitalWrite(pumpe1, HIGH);
digitalWrite(pumpe7, HIGH);
delay(1000);
}
}
//------------------------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------------------------
// Case 7: JackyCola
//------------------------------------------------------------------------------------------------------------------------------------
void case7_JackyCola() {
//Benutzte Pumpen für JackyCola
//Pumpe 7: Jack Daniels
//Pumpe 2: Cola
//Ausgangsgewicht 355-365, 1ml = 1g (Nicht Alkolisch), 1ml = 0,789 (0,8) (Alkolisch)
long TARGET_WEIGHT_PUMPE7 = 395; // 50ml Jack Daniels = 40g
long TARGET_WEIGHT_PUMPE2 = 645; // 250ml Cola = 250g
if (scale.is_ready()) {
long reading = (scale.read() * 0.01) - 842;
Serial.print("HX711 reading: ");
Serial.println(reading);
// Wenn das Gewicht innerhalb der Toleranz liegt
if (reading >= LOWER_TOLERANCE && reading <= UPPER_TOLERANCE && pumpenGestartet && JackyColaAusgewaehlt) {
Serial.println("Correct weight range reached");
// Pumpe 7
while (reading < TARGET_WEIGHT_PUMPE7 && pumpenGestartet && JackyColaAusgewaehlt) {
digitalWrite(pumpe7, LOW);
delay(1000);
reading = (scale.read() * 0.01) - 842;
}
digitalWrite(pumpe7, HIGH);
Serial.println("Target weight for pump 7 reached. Pump 7 stopped.");
delay(2000);
// Pumpe 2
while (reading < TARGET_WEIGHT_PUMPE2 && pumpenGestartet && JackyColaAusgewaehlt) {
digitalWrite(pumpe2, LOW);
delay(1000);
reading = (scale.read() * 0.01) - 842;
}
digitalWrite(pumpe2, HIGH);
Serial.println("Target weight for pump 2 reached. Pump 2 stopped.");
} else {
Serial.println("Weight outside correct range. Pump stopped.");
digitalWrite(pumpe7, HIGH);
digitalWrite(pumpe2, HIGH);
delay(1000);
}
} else {
Serial.println("HX711 not found.");
digitalWrite(pumpe7, HIGH);
digitalWrite(pumpe2, HIGH);
delay(1000);
}
}