Hi,
ich bin neu im Forum und hoffe auf eure Hilfe.
Ich habe zusammen mit einem Kumpel eine Cocktailmaschine gebaut, die von einem Arduino Mega2560 gesteuert wird.
Über Taster kann man den Cocktail auswählen, mit einen weiteren Bestätigungstaster den Zapfvorgang starten.
Dazu steuert der Arduino 5V Relais an, die wiederum kleine Pumpen ansteuern.
Die Pumpen wurden mit Freilaufdioden versehen und die Relais werden von einer separaten 5V Stromquelle versorgt, nicht vom Arduino.
Der Arduino wird mit 10V versorgt.
Das funktioniert meistens auch problemlos, doch manchmal kann es sein, dass die Pumpen nicht aufhören zu zapfen und oder die LED's der Cocktailauswahl nicht aufhört zu leuchten.
Das seltsame ist, mal funktioniert es nach dem Einschalten der Maschine 20 Mal, es kann aber auch vorkommen dass es beim 3. Mal nicht mehr funktioniert.
Zur Diagnose habe ich Logausgaben eingebaut.
Bei einem normalen Ablauf, wird die Zapffunktion aufgerufen, Pumpe 1 abgearbeitet, wenn fertig dann Pumpe 2 usw..
In dem Fall wo es nicht funktioniert, springt er z.B. von Pumpe 8 wieder zu Pumpe 7, was vom Code Ablauf garnicht sein kann oder gibt hieroglypische Zeichen im seriellen Monitor.
Mittlerweile haben wir die Pumpen mit Alufolie umwickelt und es scheint jetzt auch erst mal zu funktionieren, ich traue der Sache aber noch nicht, da ich schon mehrfach der Meinung war, dass das Problem gelöst ist.
Ich würde auch gerne einen Schaltplan hier einstellen wenn es hilft, weiß jedoch nicht mit welchem kostenlosen Tool ich das zeichnen soll, hat jemand Vorschläge?
Das Verhalten bzw. das eigentliche Problem besteht in der Funktion "void zapfen()" ab Zeile 598.
Hat Jemand eine Idee was dieses Verhalten verursachen könnte?
Gruß
rlpp0r
Screenshot 1 ohne Fehler, 2 und 3 mit Fehler.
/* Version 1.2.5: Änderung von gleichzeitigem Starten der Pumpen auf nacheinander geaendert */
/* Version 1.2.4: Funktionen zum Taster LED 1-10 auszuschalten angelegt, Funktion zum Nullen der Zapfzeiten angelegt */
/* Version 1.2.3: Mit Taster LED die nach 10 Sekunden ein Farbspiel ablaufen */
/* Version 1.2.2: Namen von Pumpen und Zapfzeit geandert */
/* Version 1.2.1: Mojito gegen Sweet Summertime ausgetauscht, Pumpe 10 -> Cola durch, Licoer 43 ersetzt */
/* Version 1.2: Schlaeuche fuellen solange Taster gedruckt */
/* Version 1.1: Schlaeuche fuellen ueber Zeit, Dauer 2 Sekunden */
// Cocktailmaschine mit Pumpen
// Variablendeklaration
unsigned long Zapfzeit_1 = 0; // Wodka
unsigned long Zapfzeit_2 = 0; // Brauner_Rum
unsigned long Zapfzeit_3 = 0; // Weisser_Rum
unsigned long Zapfzeit_4 = 0; // Tequila
unsigned long Zapfzeit_5 = 0; // Orangenlikoer
unsigned long Zapfzeit_6 = 0; // Pfirsichlikoer
unsigned long Zapfzeit_7 = 0; // Limettensaft
unsigned long Zapfzeit_8 = 0; // Ananassaft
unsigned long Zapfzeit_9 = 0; // Cranberrysaft
unsigned long Zapfzeit_10 = 0; // Licoer_43
int Merker_Zapfbits = 0; // Je Pumpe wird ein Bit gesetzt, wenn Pumpe fertig gezapft hat
unsigned long Verstrichene_Zapfzeit = 0; // Verstrichene Zapfzeit
unsigned long Verstrichene_LED_Gruen_An_Zeit = 0; // Verstrichene LED gruen an Zeit
unsigned long PreviousMillis = 0; // Zeitstempel
bool Cocktail_ausgewaehlt = 0; // Merker ob Cocktail ausgewaehlt
byte Sekundenzaehler = 0; // Sekundenzaehler fur LED blinken
byte Schlauch_fuellen_fertig = 0; // Merker ob Schlauch/Schläuche gefüllt
// Defines
#define FALSE 0
#define TRUE 1
#define OFF 1 // Pumpenrelais sind invertiert
#define ON 0
#define Gedrueckt LOW
#define _1cl 425 // Zapfzeit in ms, der Compiler ersetzt ueberall wo _1cl auftaucht, _1cl durch 425
#define _2cl 850 // Zapfzeit in ms, ""
#define _3cl 1275 // Zapfzeit in ms, ""
#define _4cl 1700 // Zapfzeit in ms, ""
#define _6cl 2550 // Zapfzeit in ms, ""
#define _8cl 3400 // Zapfzeit in ms, ""
#define _10cl 4250 // Zapfzeit in ms, ""
#define _12cl 5100 // Zapfzeit in ms, ""
#define _20cl 8500 // Zapfzeit in ms, ""
// Ein- & Ausgaenge
const int Taster1 = 22; // Pin Taster1 Long Island Icetea
const int LED_Taster1 = 24; // LED Taster1
const int Taster2 = 26; // Pin Taster2 Cuba Libre
const int LED_Taster2 = 28; // LED Taster2
const int Taster3 = 30; // Pin Taster3 Hurricane
const int LED_Taster3 = 32; // LED Taster3
const int Taster4 = 34; // Pin Taster4 Planters Punch
const int LED_Taster4 = 36; // LED Taster4
const int Taster5 = 38; // Pin Taster5 Sex on the Beach
const int LED_Taster5 = 40; // LED Taster5
const int Taster6 = 23; // Pin Taster6 Tequila Sunrise
const int LED_Taster6 = 25; // LED Taster6
const int Taster7 = 27; // Pin Taster7 Mai Tai
const int LED_Taster7 = 29; // LED Taster7
const int Taster8 = 31; // Pin Taster8 Mojito
const int LED_Taster8 = 33; // LED Taster8
const int Taster9 = 35; // Pin Taster9 Virgin Sunrise
const int LED_Taster9 = 37; // LED Taster9
const int Taster10 = 39; // Pin Taster10 Flamingo
const int LED_Taster10 = 41; // LED Taster10
const int Taster11_Auswahl_bestaetigen = 8; // Pin Taster11_Auswahl_bestaetigen
const int LED_Taster11_Auswahl_bestaetigen = 9; // Pin LED_Taster11_Auswahl_bestaetigen
const int Taster12_Fertig = 3; // Pin Taster12_Fertig
const int LED_Fertig = 4; // Pin LED_fertig
// Linke Reihe
const int Pumpe_1 = 44; // Ausgang Pumpe Wodka
const int Pumpe_2 = 46; // Ausgang Pumpe Weisser_Rum
const int Pumpe_3 = 48; // Ausgang Pumpe Orangenlikör
const int Pumpe_4 = 50; // Ausgang Pumpe Cranberrysaft
const int Pumpe_5 = 52; // Ausgang Pumpe Limettensaft
// Rechte Reihe
const int Pumpe_6 = 45; // Ausgang Pumpe Tequila
const int Pumpe_7 = 47; // Ausgang Pumpe Brauner_Rum
const int Pumpe_8 = 49; // Ausgang Pumpe Pfirsichlikoer
const int Pumpe_9 = 51; // Ausgang Pumpe Ananassaft
const int Pumpe_10 = 53; // Ausgang Pumpe Licoer 43
const int RGB_LED_GRUEN = 7; // LED Band ueber Zapfstelle
const int RGB_LED_BLAU = 6;
const int RGB_LED_ROT = 5;
// Initialisierung von Ein- und Ausgaengen
void setup()
{
// Funktionsprototypen
void Zapfen(); // Funktion zum Zapfen
void TasterLEDsAusschalten(); // Funktion um alle LEDs auszuschalten
void Zapfzeiten_nullen(); // Funktion um alle Zapfzeiten zu nullen
// Anmeldung Eingaenge
pinMode(Taster12_Fertig, INPUT);
digitalWrite(Taster12_Fertig, INPUT_PULLUP); // Internen Pull-Up Widerstand aktivieren
pinMode(Taster11_Auswahl_bestaetigen, INPUT);
digitalWrite(Taster11_Auswahl_bestaetigen, INPUT_PULLUP); // Internen Pull-Up Widerstand aktivieren
pinMode(Taster1, INPUT); // Long Island iced tea
digitalWrite(Taster1, INPUT_PULLUP); // Internen Pull-Up Widerstand aktivieren
pinMode(Taster2, INPUT); // Cuba Libre
digitalWrite(Taster2, INPUT_PULLUP); // Internen Pull-Up Widerstand aktivieren
pinMode(Taster3, INPUT); // Hurricane
digitalWrite(Taster3, INPUT_PULLUP); // Internen Pull-Up Widerstand aktivieren
pinMode(Taster4, INPUT); // Planters Punch
digitalWrite(Taster4, INPUT_PULLUP); // Internen Pull-Up Widerstand aktivieren
pinMode(Taster5, INPUT); // Sex on the Beach
digitalWrite(Taster5, INPUT_PULLUP); // Internen Pull-Up Widerstand aktivieren
pinMode(Taster6, INPUT); // Tquila Sunrise
digitalWrite(Taster6, INPUT_PULLUP); // Internen Pull-Up Widerstand aktivieren
pinMode(Taster7, INPUT); // Mai Tai
digitalWrite(Taster7, INPUT_PULLUP); // Internen Pull-Up Widerstand aktivieren
pinMode(Taster8, INPUT); // Mojito
digitalWrite(Taster8, INPUT_PULLUP); // Internen Pull-Up Widerstand aktivieren
pinMode(Taster9, INPUT); // Virgin Sunrise
digitalWrite(Taster9, INPUT_PULLUP); // Internen Pull-Up Widerstand aktivieren
pinMode(Taster10, INPUT); // Flamingo
digitalWrite(Taster10, INPUT_PULLUP); // Internen Pull-Up Widerstand aktivieren
// Anmeldung Ausgaenge Pumpen und LED's
pinMode(Pumpe_1, OUTPUT); // Pumpe Wodka
pinMode(Pumpe_2, OUTPUT); // Pumpe Weisser_Rum
pinMode(Pumpe_3, OUTPUT); // Pumpe Orangenlikoer
pinMode(Pumpe_4, OUTPUT); // Pumpe Cranberrysaft
pinMode(Pumpe_5, OUTPUT); // Pumpe Limettensaft
pinMode(Pumpe_6, OUTPUT); // Pumpe Tequila
pinMode(Pumpe_7, OUTPUT); // Pumpe Brauner_Rum
pinMode(Pumpe_8, OUTPUT); // Pumpe Pfirsichlikoer
pinMode(Pumpe_9, OUTPUT); // Pumpe Ananassaft
pinMode(Pumpe_10,OUTPUT); // Pumpe Licoer_43
digitalWrite(Pumpe_1, OFF); // Pumpe Wodka ausschalten
digitalWrite(Pumpe_2, OFF); // Pumpe Weisser_Rum ausschalten
digitalWrite(Pumpe_3, OFF); // Pumpe Orangenlikoer ausschalten
digitalWrite(Pumpe_4, OFF); // Pumpe_Cranberrysaft ausschalten
digitalWrite(Pumpe_5, OFF); // Pumpe Limettensaft ausschalten
digitalWrite(Pumpe_6, OFF); // Pumpe Tequila ausschalten
digitalWrite(Pumpe_7, OFF); // Pumpe Brauner_Rum ausschalten
digitalWrite(Pumpe_8, OFF); // Pumpe Pfirsichlikoer ausschalten
digitalWrite(Pumpe_9, OFF); // Pumpe_Ananassaft ausschalten
digitalWrite(Pumpe_10, OFF); // Pumpe Licoer_43 ausschalten
pinMode(LED_Taster1, OUTPUT); // Long Island iced tea
pinMode(LED_Taster2, OUTPUT); // Cuba Libre
pinMode(LED_Taster3, OUTPUT); // Hurricane
pinMode(LED_Taster4, OUTPUT); // Planters Punch
pinMode(LED_Taster5, OUTPUT); // Sex on the Beach
pinMode(LED_Taster6, OUTPUT); // Tequila Sunrise
pinMode(LED_Taster7, OUTPUT); // Mai Tai
pinMode(LED_Taster8, OUTPUT); // Sweet Summertime
pinMode(LED_Taster9, OUTPUT); // Virgin Sunrise
pinMode(LED_Taster10, OUTPUT);// Flamingo
pinMode(LED_Fertig, OUTPUT);
pinMode(LED_Taster11_Auswahl_bestaetigen, OUTPUT);
pinMode(RGB_LED_GRUEN, OUTPUT); // LED Band ueber Zapfstelle
pinMode(RGB_LED_BLAU, OUTPUT);
pinMode(RGB_LED_ROT, OUTPUT);
digitalWrite(RGB_LED_GRUEN, LOW); // Alle 3 Farben einschalten, um direkt weiss zu erzeugen
digitalWrite(RGB_LED_BLAU, LOW);
digitalWrite(RGB_LED_ROT, ON);
PreviousMillis = millis(); // Zeitpunkt von Pumpenstart in PreviousMillis speichern
Serial.begin(9600); // Oeffnet die serielle Schnittstelle
//Serial.PrintIn("Text") // Text oder Variable ausgeben, PrintIn mach automatisch "Enter" nach Ausgabe
}
void loop() // Ab hier beginnt der eigentliche Code
{
if(digitalRead(LED_Fertig) == HIGH && ((millis() - PreviousMillis) >= 3000) && (millis() - PreviousMillis) < 30000) // RGB LED 3 Sekunden nach Zapfvorgang fertig in weiss aendern
{
Serial.println("RGB aus\n"); // Text oder Variable ausgeben, PrintIn mach automatisch "Enter" nach Ausgabe
digitalWrite(LED_Fertig, LOW); // "LED Fertig" ausschalten
// RGB Gruen ist schon an, um weiss zu erzeugen zusaetzlich blau und rot einschalten
digitalWrite(RGB_LED_BLAU, LOW);
digitalWrite(RGB_LED_ROT,LOW);
}
if(digitalRead(Taster12_Fertig) == Gedrueckt && !Schlauch_fuellen_fertig && !Cocktail_ausgewaehlt) // Schlaeuche fuellen
{
Serial.println("Schlaueche fuellen"); // Text oder Variable ausgeben, PrintIn mach automatisch "Enter" nach Ausgabe
digitalWrite(LED_Taster11_Auswahl_bestaetigen, LOW); // "LED Fertig" ausschalten
digitalWrite(LED_Fertig, LOW); // "LED Fertig" ausschalten
Cocktail_ausgewaehlt = FALSE; // Merker, das Auswahl getroffen, zuruecksetzen
Zapfzeiten_nullen(); // Zapfzeiten nullen
delay(2000);
if(digitalRead(Taster12_Fertig) == Gedrueckt && digitalRead(Taster11_Auswahl_bestaetigen) == Gedrueckt) // Alle Schlaueche fuellen
{
Serial.println("Alle Schlauche fuellen"); // Text oder Variable ausgeben, PrintIn mach automatisch "Enter" nach Ausgabe
// Linke Reihe
Zapfzeit_1 = 2000; // Wodka
Zapfzeit_2 = 2000; // Weisser Rum
Zapfzeit_3 = 2000; // Orangenlikoer
Zapfzeit_4 = 2000; // Cranberrysaft
Zapfzeit_5 = 2000; // Limettensaft
digitalWrite(Pumpe_1, ON); // Pumpe Wodka einschalten
digitalWrite(Pumpe_2, ON); // Pumpe Weisser_Rum einschalten
digitalWrite(Pumpe_3, ON); // Pumpe Orangenlikoer einschalten
digitalWrite(Pumpe_4, ON); // Pumpe_Cranberrysaft einschalten
digitalWrite(Pumpe_5, ON); // Pumpe Limettensaft einschalten
PreviousMillis = millis(); // Zeitpunkt von Pumpenstart in PreviousMillis speichern
digitalWrite(LED_Taster1, HIGH);
digitalWrite(LED_Taster2, HIGH);
digitalWrite(LED_Taster3, HIGH);
digitalWrite(LED_Taster4, HIGH);
digitalWrite(LED_Taster5, HIGH);
Zapfen();
// Rechte Reihe
Zapfzeiten_nullen(); // Zapfzeiten nullen
Zapfzeit_6 = 2000; // Tequila
Zapfzeit_7 = 2000; // Brauner Rum
Zapfzeit_8 = 2000; // Pfirsischlikoer
Zapfzeit_9 = 2000; // Ananassaft
Zapfzeit_10 = 2000; // Licoer 43
digitalWrite(Pumpe_6, ON); // Pumpe Tequila einschalten
digitalWrite(Pumpe_7, ON); // Pumpe Brauner_Rum einschalten
digitalWrite(Pumpe_8, ON); // Pumpe Pfirsichlikoer einschalten
digitalWrite(Pumpe_9, ON); // Pumpe_Ananassaft einschalten
digitalWrite(Pumpe_10, ON); // Pumpe Licoer_43 einschalten
PreviousMillis = millis(); // Zeitpunkt von Pumpenstart in PreviousMillis speichern
digitalWrite(LED_Taster6, HIGH);
digitalWrite(LED_Taster7, HIGH);
digitalWrite(LED_Taster8, HIGH);
digitalWrite(LED_Taster9, HIGH);
digitalWrite(LED_Taster10, HIGH);
Zapfen();
}
PreviousMillis = millis(); // Zeitpunkt von Pumpenstart in PreviousMillis speichern
while(digitalRead(Taster1) == Gedrueckt) // Wodka
{
digitalWrite(Pumpe_1, ON); // Pumpe Wodka einschalten
delay(500);
}
while(digitalRead(Taster2) == Gedrueckt) // Weisser_Rum
{
digitalWrite(Pumpe_2, ON); // Pumpe Weisser Rum einschalten
delay(500);
}
while(digitalRead(Taster3) == Gedrueckt) // Orangenlikoer
{
digitalWrite(Pumpe_3, ON); // Pumpe Orangenlikoer einschalten
delay(500);
}
while(digitalRead(Taster4) == Gedrueckt) // Cranberrysaft
{
digitalWrite(Pumpe_4, ON); // Pumpe Cranberrysaft einschalten
delay(500);
}
while(digitalRead(Taster5) == Gedrueckt) // Limettensaft
{
digitalWrite(Pumpe_5, ON); // Pumpe Limettensaft einschalten
delay(500);
}
while(digitalRead(Taster6) == Gedrueckt) // Tequila
{
digitalWrite(Pumpe_6, ON); // Pumpe Tequuila einschalten
delay(500);
}
while(digitalRead(Taster7) == Gedrueckt) // Brauner Rum
{
digitalWrite(Pumpe_7, ON); // Pumpe Brauner Rum einschalten
delay(500);
}
while(digitalRead(Taster8) == Gedrueckt) // Pfirsichlikoer
{
digitalWrite(Pumpe_8, ON);// Pumpe Pfirsichlikoer einschalten
delay(500);
}
while(digitalRead(Taster9) == Gedrueckt) // Ananassaft
{
digitalWrite(Pumpe_9, ON); // Pumpe Ananassaft einschalten
delay(500);
}
while(digitalRead(Taster10) == Gedrueckt) // Licoer_43
{
digitalWrite(Pumpe_10, ON); // Pumpe Licoer_43 einschalten
delay(500);
}
digitalWrite(Pumpe_1, OFF); // Pumpe Wodka ausschalten
digitalWrite(Pumpe_2, OFF); // Pumpe Weisser_Rum ausschalten
digitalWrite(Pumpe_3, OFF); // Pumpe Orangenlikoer ausschalten
digitalWrite(Pumpe_4, OFF); // Pumpe_Cranberrysaft ausschalten
digitalWrite(Pumpe_5, OFF); // Pumpe Limettensaft ausschalten
digitalWrite(Pumpe_6, OFF); // Pumpe Tequila ausschalten
digitalWrite(Pumpe_7, OFF); // Pumpe Brauner_Rum ausschalten
digitalWrite(Pumpe_8, OFF); // Pumpe Pfirsichlikoer ausschalten
digitalWrite(Pumpe_9, OFF); // Pumpe_Ananassaft ausschalten
digitalWrite(Pumpe_10, OFF); // Pumpe Licoer_43 ausschalten
Schlauch_fuellen_fertig = TRUE;
delay(2000);
}
else if(digitalRead(Taster12_Fertig) != Gedrueckt) { Schlauch_fuellen_fertig = FALSE; }
if(digitalRead(Taster1) == Gedrueckt && digitalRead(Taster12_Fertig) != Gedrueckt) // Long island iced Tea
{
Serial.println("Long island"); // Text oder Variable ausgeben, PrintIn mach automatisch "Enter" nach Ausgabe
Zapfzeiten_nullen(); // Zapfzeiten nullen
Zapfzeit_1 = _2cl; // Wodka
Zapfzeit_2 = _3cl; // Weisser Rum
Zapfzeit_3 = _2cl; // Orangenlikoer
Zapfzeit_5 = _1cl; // Limettensaft
Zapfzeit_6 = _2cl; // Tequila
//Zapfzeit_Gin = _2cl;
//Zapfzeit_Orangensaft = _2cl; //
//Zapfzeit_Cola = _20cl; //
// Alle Taster LED's ausschalten
TasterLEDsAusschalten(); // Taster 1-10 LEDs ausschalten
digitalWrite(LED_Fertig, LOW); // "LED Fertig" ausschalten
digitalWrite(LED_Taster1, HIGH); // LED des gewaehlten Cocktails einschalten
digitalWrite(LED_Taster11_Auswahl_bestaetigen, HIGH); // "LED Auswahl bestaetigen" einschalten
digitalWrite(RGB_LED_GRUEN, OFF); // "RGB LED GRUEN" ausschalten
digitalWrite(RGB_LED_BLAU, OFF); // "RGB LED BLAU" ausschalten
digitalWrite(RGB_LED_ROT, ON); // "RGB LED ROT" einschalten
Sekundenzaehler = 0; // Blinkzeit fuer "LED Auswahl bestaetigen" zuruecksetzen
PreviousMillis = millis(); // Zeitpunkt merken
Cocktail_ausgewaehlt = TRUE; // Merker, das Auswahl getroffen, setzen
}
if(digitalRead(Taster2) == Gedrueckt && digitalRead(Taster12_Fertig) != Gedrueckt) // Cuba Libre
{
Serial.println("Cuba Libre"); // Text oder Variable ausgeben, PrintIn mach automatisch "Enter" nach Ausgabe
Zapfzeiten_nullen(); // Zapfzeiten nullen
Zapfzeit_2 = _8cl; // Weisser Rum
Zapfzeit_5 = _1cl; // Limettensaft
//Zapfzeit_Cola = _20cl;
// Alle Taster LED's ausschalten
TasterLEDsAusschalten(); // Taster 1-10 LEDs ausschalten
digitalWrite(LED_Fertig, LOW); // "LED Fertig" ausschalten
digitalWrite(LED_Taster2, HIGH); // LED des gewaehlten Cocktails einschalten
digitalWrite(LED_Taster11_Auswahl_bestaetigen, HIGH); // "LED Auswahl bestaetigen" einschalten
digitalWrite(RGB_LED_GRUEN, OFF); // "RGB LED GRUEN" ausschalten
digitalWrite(RGB_LED_BLAU, OFF); // "RGB LED BLAU" ausschalten
digitalWrite(RGB_LED_ROT, ON); // "RGB LED ROT" einschalten
Sekundenzaehler = 0; // Blinkzeit fuer "LED Auswahl bestaetigen" zuruecksetzen
PreviousMillis = millis(); // Zeitpunkt merken
Cocktail_ausgewaehlt = TRUE; // Merker, das Auswahl getroffen, setzen
}
if(digitalRead(Taster3) == Gedrueckt && digitalRead(Taster12_Fertig) != Gedrueckt) // Hurricane
{
Serial.println("Hurricane"); // Text oder Variable ausgeben, PrintIn mach automatisch "Enter" nach Ausgabe
Zapfzeiten_nullen(); // Zapfzeiten nullen
Zapfzeit_2 = _4cl; // Weisser Rum
Zapfzeit_5 = _8cl; // Limettensaft
Zapfzeit_7 = _4cl; // Brauner_Rum
Zapfzeit_9 = _6cl; // Ananassaft
// Alle Taster LED's ausschalten
TasterLEDsAusschalten(); // Taster 1-10 LEDs ausschalten
digitalWrite(LED_Fertig, LOW); // "LED Fertig" ausschalten
digitalWrite(LED_Taster3, HIGH); // LED des gewaehlten Cocktails einschalten
digitalWrite(LED_Taster11_Auswahl_bestaetigen, HIGH); // "LED Auswahl bestaetigen" einschalten
digitalWrite(RGB_LED_GRUEN, OFF); // "RGB LED GRUEN" ausschalten
digitalWrite(RGB_LED_BLAU, OFF); // "RGB LED BLAU" ausschalten
digitalWrite(RGB_LED_ROT, ON); // "RGB LED ROT" einschalten
Sekundenzaehler = 0; // Blinkzeit fuer "LED Auswahl bestaetigen" zuruecksetzen
PreviousMillis = millis(); // Zeitpunkt merken
Cocktail_ausgewaehlt = TRUE; // Merker, das Auswahl getroffen, setzen
}
if(digitalRead(Taster4) == Gedrueckt && digitalRead(Taster12_Fertig) != Gedrueckt) // Planters Punch
{
Serial.println("Planters Punch"); // Text oder Variable ausgeben, PrintIn mach automatisch "Enter" nach Ausgabe
Zapfzeiten_nullen(); // Zapfzeiten nullen
Zapfzeit_5 = _2cl; // Limettensaft
Zapfzeit_7 = _6cl; // Brauner_Rum
Zapfzeit_9 = _6cl; // Ananassaft
// Alle Taster LED's ausschalten
TasterLEDsAusschalten(); // Taster 1-10 LEDs ausschalten
digitalWrite(LED_Fertig, LOW); // "LED Fertig" ausschalten
digitalWrite(LED_Taster4, HIGH); // LED des gewaehlten Cocktails einschalten
digitalWrite(LED_Taster11_Auswahl_bestaetigen, HIGH); // "LED Auswahl bestaetigen" einschalten
digitalWrite(RGB_LED_GRUEN, OFF); // "RGB LED GRUEN" ausschalten
digitalWrite(RGB_LED_BLAU, OFF); // "RGB LED BLAU" ausschalten
digitalWrite(RGB_LED_ROT, ON); // "RGB LED ROT" einschalten
Sekundenzaehler = 0; // Blinkzeit fuer "LED Auswahl bestaetigen" zuruecksetzen
PreviousMillis = millis(); // Zeitpunkt merken
Cocktail_ausgewaehlt = TRUE; // Merker, das Auswahl getroffen, setzen
}
if(digitalRead(Taster5) == Gedrueckt && digitalRead(Taster12_Fertig) != Gedrueckt) // Sex on the Beach
{
Serial.println("Sex on the beach"); // Text oder Variable ausgeben, PrintIn mach automatisch "Enter" nach Ausgabe
Zapfzeiten_nullen(); // Zapfzeiten nullen
Zapfzeit_1 = _6cl; // Wodka
Zapfzeit_4 = _10cl; // Cranberrysaft
Zapfzeit_8 = _3cl; // Pfirsichlikoer
// Alle Taster LED's ausschalten
TasterLEDsAusschalten(); // Taster 1-10 LEDs ausschalten
digitalWrite(LED_Fertig, LOW); // "LED Fertig" ausschalten
digitalWrite(LED_Taster5, HIGH); // LED des gewaehlten Cocktails einschalten
digitalWrite(LED_Taster11_Auswahl_bestaetigen, HIGH); // "LED Auswahl bestaetigen" einschalten
digitalWrite(RGB_LED_GRUEN, OFF); // "RGB LED GRUEN" ausschalten
digitalWrite(RGB_LED_BLAU, OFF); // "RGB LED BLAU" ausschalten
digitalWrite(RGB_LED_ROT, ON); // "RGB LED ROT" einschalten
Sekundenzaehler = 0; // Blinkzeit fuer "LED Auswahl bestaetigen" zuruecksetzen
PreviousMillis = millis(); // Zeitpunkt merken
Cocktail_ausgewaehlt = TRUE; // Merker, das Auswahl getroffen, setzen
}
if(digitalRead(Taster6) == Gedrueckt && digitalRead(Taster12_Fertig) != Gedrueckt) // Tequila Sunrise
{
Serial.println("Tequila sunrise"); // Text oder Variable ausgeben, PrintIn mach automatisch "Enter" nach Ausgabe
Zapfzeiten_nullen(); // Zapfzeiten nullen
Zapfzeit_5 = _2cl; // Limettensaft
Zapfzeit_6 = _6cl; // Tequila
// Alle Taster LED's ausschalten
TasterLEDsAusschalten(); // Taster 1-10 LEDs ausschalten
digitalWrite(LED_Fertig, LOW); // "LED Fertig" ausschalten
digitalWrite(LED_Taster6, HIGH); // LED des gewaehlten Cocktails einschalten
digitalWrite(LED_Taster11_Auswahl_bestaetigen, HIGH); // "LED Auswahl bestaetigen" einschalten
digitalWrite(RGB_LED_GRUEN, OFF); // "RGB LED GRUEN" ausschalten
digitalWrite(RGB_LED_BLAU, OFF); // "RGB LED BLAU" ausschalten
digitalWrite(RGB_LED_ROT, ON); // "RGB LED ROT" einschalten
Sekundenzaehler = 0; // Blinkzeit fuer "LED Auswahl bestaetigen" zuruecksetzen
PreviousMillis = millis(); // Zeitpunkt merken
Cocktail_ausgewaehlt = TRUE; // Merker, das Auswahl getroffen, setzen
}
if(digitalRead(Taster7) == Gedrueckt && digitalRead(Taster12_Fertig) != Gedrueckt) // Mai Tai
{
Serial.println("Mai Tai"); // Text oder Variable ausgeben, PrintIn mach automatisch "Enter" nach Ausgabe
Zapfzeiten_nullen(); // Zapfzeiten nullen
Zapfzeit_2 = _3cl; // Weisser Rum
Zapfzeit_3 = _3cl; // Orangenlikoer
Zapfzeit_5 = _1cl; // Limettensaft
Zapfzeit_7 = _3cl; // Brauner_Rum
Zapfzeit_9 = _6cl; // Ananassaft
// Alle Taster LED's ausschalten
TasterLEDsAusschalten(); // Taster 1-10 LEDs ausschalten
digitalWrite(LED_Fertig, LOW); // "LED Fertig" ausschalten
digitalWrite(LED_Taster7, HIGH); // LED des gewaehlten Cocktails einschalten
digitalWrite(LED_Taster11_Auswahl_bestaetigen, HIGH); // "LED Auswahl bestaetigen" einschalten
digitalWrite(RGB_LED_GRUEN, OFF); // "RGB LED GRUEN" ausschalten
digitalWrite(RGB_LED_BLAU, OFF); // "RGB LED BLAU" ausschalten
digitalWrite(RGB_LED_ROT, ON); // "RGB LED ROT" einschalten
Sekundenzaehler = 0; // Blinkzeit fuer "LED Auswahl bestaetigen" zuruecksetzen
PreviousMillis = millis(); // Zeitpunkt merken
Cocktail_ausgewaehlt = TRUE; // Merker, das Auswahl getroffen, setzen
}
/*if(digitalRead(Taster8) == Gedrueckt && digitalRead(Taster12_Fertig) != Gedrueckt) // Mojito
{
Zapfzeiten_nullen(); // Zapfzeiten nullen
Zapfzeit_2 = _8cl; // Weisser Rum
Zapfzeit_5 = _1cl; // Limettensaft
Zapfzeit_Cola = _20cl;
// Alle Taster LED's ausschalten
TasterLEDsAusschalten(); // Taster 1-10 LEDs ausschalten
digitalWrite(LED_Fertig, LOW); // "LED Fertig" ausschalten
digitalWrite(LED_Taster8, HIGH); // LED des gewaehlten Cocktails einschalten
digitalWrite(LED_Taster11_Auswahl_bestaetigen, HIGH); // "LED Auswahl bestaetigen" einschalten
digitalWrite(RGB_LED_GRUEN, OFF); // "RGB LED GRUEN" ausschalten
digitalWrite(RGB_LED_BLAU, OFF); // "RGB LED BLAU" ausschalten
digitalWrite(RGB_LED_ROT, ON); // "RGB LED ROT" einschalten
Sekundenzaehler = 0; // Blinkzeit fuer "LED Auswahl bestaetigen" zuruecksetzen
PreviousMillis = millis(); // Zeitpunkt merken
Cocktail_ausgewaehlt = TRUE; // Merker, das Auswahl getroffen, setzen
}
*/
if(digitalRead(Taster8) == Gedrueckt && digitalRead(Taster12_Fertig) != Gedrueckt) // Sweet Summertime
{
Serial.println("sweet Summertime"); // Text oder Variable ausgeben, PrintIn mach automatisch "Enter" nach Ausgabe
Zapfzeiten_nullen(); // Zapfzeiten nullen
Zapfzeit_5 = _1cl; // Limettensaft
Zapfzeit_10 = _6cl; // Licoer_43
//Zapfzeit_Cola = 0;
// Alle Taster LED's ausschalten
TasterLEDsAusschalten(); // Taster 1-10 LEDs ausschalten
digitalWrite(LED_Fertig, LOW); // "LED Fertig" ausschalten
digitalWrite(LED_Taster8, HIGH); // LED des gewaehlten Cocktails einschalten
digitalWrite(LED_Taster11_Auswahl_bestaetigen, HIGH); // "LED Auswahl bestaetigen" einschalten
digitalWrite(RGB_LED_GRUEN, OFF); // "RGB LED GRUEN" ausschalten
digitalWrite(RGB_LED_BLAU, OFF); // "RGB LED BLAU" ausschalten
digitalWrite(RGB_LED_ROT, ON); // "RGB LED ROT" einschalten
Sekundenzaehler = 0; // Blinkzeit fuer "LED Auswahl bestaetigen" zuruecksetzen
PreviousMillis = millis(); // Zeitpunkt merken
Cocktail_ausgewaehlt = TRUE; // Merker, das Auswahl getroffen, setzen
}
if(digitalRead(Taster9) == Gedrueckt && digitalRead(Taster12_Fertig) != Gedrueckt) // Virgin Sunrise
{
Serial.println("Virgin Sunrise"); // Text oder Variable ausgeben, PrintIn mach automatisch "Enter" nach Ausgabe
Zapfzeiten_nullen(); // Zapfzeiten nullen
Zapfzeit_5 = _1cl; // Limettensaft
Zapfzeit_9 = _8cl; // Ananassaft
//Zapfzeit_Cola = 0;
// Alle Taster LED's ausschalten
TasterLEDsAusschalten(); // Taster 1-10 LEDs ausschalten
digitalWrite(LED_Fertig, LOW); // "LED Fertig" ausschalten
digitalWrite(LED_Taster9, HIGH); // LED des gewaehlten Cocktails einschalten
digitalWrite(LED_Taster11_Auswahl_bestaetigen, HIGH); // "LED Auswahl bestaetigen" einschalten
digitalWrite(RGB_LED_GRUEN, OFF); // "RGB LED GRUEN" ausschalten
digitalWrite(RGB_LED_BLAU, OFF); // "RGB LED BLAU" ausschalten
digitalWrite(RGB_LED_ROT, ON); // "RGB LED ROT" einschalten
Sekundenzaehler = 0; // Blinkzeit fuer "LED Auswahl bestaetigen" zuruecksetzen
PreviousMillis = millis(); // Zeitpunkt merken
Cocktail_ausgewaehlt = TRUE; // Merker, das Auswahl getroffen, setzen
}
if(digitalRead(Taster10)== Gedrueckt && digitalRead(Taster12_Fertig) != Gedrueckt) // Flamingo
{
Serial.println("Flamingo"); // Text oder Variable ausgeben, PrintIn mach automatisch "Enter" nach Ausgabe
Zapfzeiten_nullen(); // Zapfzeiten nullen
Zapfzeit_4 = _2cl; // Cranberrysaft
Zapfzeit_5 = _2cl; // Limettensaft
// Alle Taster LED's ausschalten
TasterLEDsAusschalten(); // Taster 1-10 LEDs ausschalten
digitalWrite(LED_Fertig, LOW); // "LED Fertig" ausschalten
digitalWrite(LED_Taster10, HIGH); // LED des gewaehlten Cocktails einschalten
digitalWrite(LED_Taster11_Auswahl_bestaetigen, HIGH); // "LED Auswahl bestaetigen" einschalten
digitalWrite(RGB_LED_GRUEN, OFF); // "RGB LED GRUEN" ausschalten
digitalWrite(RGB_LED_BLAU, OFF); // "RGB LED BLAU" ausschalten
digitalWrite(RGB_LED_ROT, ON); // "RGB LED ROT" einschalten
Sekundenzaehler = 0; // Blinkzeit fuer "LED Auswahl bestaetigen" zuruecksetzen
PreviousMillis = millis(); // Zeitpunkt merken
Cocktail_ausgewaehlt = TRUE; // Merker, das Auswahl getroffen, setzen
}
if(Cocktail_ausgewaehlt == TRUE && (millis() - PreviousMillis) >= 1000) // Cocktail ausgewaehlt, bestaetigen LED blinken lassen
{
PreviousMillis = millis(); // Zeitpunkt merken
Sekundenzaehler++; // Zaehlt die Sekunden wie lange "LED Auswahl bestaetigen" schon blinkt
if(Sekundenzaehler >= 10)
{
// LED's ausschalten
TasterLEDsAusschalten(); // Taster 1-10 LEDs ausschalten
digitalWrite(LED_Taster11_Auswahl_bestaetigen, LOW);
digitalWrite(RGB_LED_GRUEN, ON); // "RGB LED GRUEN" einschalten
digitalWrite(RGB_LED_BLAU, ON); // "RGB LED BLAU" einschalten
digitalWrite(RGB_LED_ROT, ON); // "RGB LED ROT" einschalten
Cocktail_ausgewaehlt = FALSE; // Merker Auswahl getroffen zuruecksetzen
}
else{
//if(LED_State == LOW) { LED_State = HIGH; }
// else LED_State = LOW;
digitalWrite(LED_Taster11_Auswahl_bestaetigen, !digitalRead(LED_Taster11_Auswahl_bestaetigen)); // "LED Auswahl bestaetigen" invertieren
digitalWrite(RGB_LED_ROT, !digitalRead(LED_Taster11_Auswahl_bestaetigen)); // "RGB LED ROT" invertieren
//digitalWrite(LED_Taster11_Auswahl_bestaetigen, HIGH); // "LED Auswahl bestaetigen" einschalten
}
}
if(Cocktail_ausgewaehlt == TRUE && digitalRead(Taster11_Auswahl_bestaetigen) == Gedrueckt) // Cocktail ausgewaehlt, Auswahl bestaetigen
{
Serial.println("Bestaetigt"); // Text oder Variable ausgeben, PrintIn mach automatisch "Enter" nach Ausgabe
// Pumpen einschalten
/*if(Zapfzeit_1) { digitalWrite(Pumpe_1, ON); } // Pumpe Wodka einschalten
if(Zapfzeit_2) { digitalWrite(Pumpe_2, ON); } // Pumpe Weisser_Rum einschalten
if(Zapfzeit_3) { digitalWrite(Pumpe_3, ON); } // Pumpe Orangenlikoer einschalten
if(Zapfzeit_4) { digitalWrite(Pumpe_4, ON); } // Pumpe_Cranberrysaft einschalten
if(Zapfzeit_5) { digitalWrite(Pumpe_5, ON); } // Pumpe Limettensaft einschalten
if(Zapfzeit_6) { digitalWrite(Pumpe_6, ON); } // Pumpe Tequila einschalten
if(Zapfzeit_7) { digitalWrite(Pumpe_7, ON); } // Pumpe Brauner_Rum einschalten
if(Zapfzeit_8) { digitalWrite(Pumpe_8, ON); } // Pumpe Pfirsichlikoer einschalten
if(Zapfzeit_9) { digitalWrite(Pumpe_9, ON); } // Pumpe_Ananassaft einschalten
if(Zapfzeit_10) { digitalWrite(Pumpe_10, ON);} // Pumpe Licoer_43 einschalten
//if(Zapfzeit_Cola) { digitalWrite(Pumpe_Cola, ON); } // Pumpe Cola einschalten
PreviousMillis = millis(); // Zeitpunkt von Pumpenstart in PreviousMillis speichern*/
digitalWrite(LED_Taster11_Auswahl_bestaetigen, LOW);
Cocktail_ausgewaehlt = FALSE; // Merker, das Auswahl getroffen, zuruecksetzen
Zapfen(); // Funktion zum Zapfen aufrufen
}
}
// Ende void loop
// Ausgelagerte Funktionen
void Zapfen()
{
Serial.println("Zapfen"); // Text oder Variable ausgeben, PrintIn mach automatisch "Enter" nach Ausgabe
// RGB_LED_ROT einschalten
digitalWrite(RGB_LED_GRUEN, OFF);
digitalWrite(RGB_LED_BLAU, OFF);
digitalWrite(RGB_LED_ROT, ON);
if(Zapfzeit_1)
{
Serial.println("Zapfen Pumpe 1"); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
digitalWrite(Pumpe_1, ON);
PreviousMillis = millis(); // Zeitpunkt von Pumpenstart in PreviousMillis speichern
Serial.print("Startzeitpunkt Pumpe 1 ");
Serial.println(PreviousMillis, DEC); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
while(Verstrichene_Zapfzeit <= Zapfzeit_1)
{
Verstrichene_Zapfzeit = (millis() - PreviousMillis); // Aktuelle Zeit - Zeipunkt seitdem die Pumpen eingeschaltet wurden
if(Verstrichene_Zapfzeit >= Zapfzeit_1) // Wodka
{
digitalWrite(Pumpe_1, OFF); // Pumpe Wodka ausschalten
}
}
Verstrichene_Zapfzeit = 0;
PreviousMillis = millis(); // Zeitpunkt von Pumpenstart in PreviousMillis speichern
Serial.print("Stoppzeitpunkt Pumpe 1 ");
Serial.println(PreviousMillis, DEC); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
}
if(Zapfzeit_2)
{
Serial.println("Zapfen Pumpe 2"); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
digitalWrite(Pumpe_2, ON);
PreviousMillis = millis(); // Zeitpunkt von Pumpenstart in PreviousMillis speichern
Serial.print("Startzeitpunkt Pumpe 2 ");
Serial.println(PreviousMillis, DEC); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
while(Verstrichene_Zapfzeit <= Zapfzeit_2)
{
Verstrichene_Zapfzeit = (millis() - PreviousMillis); // Aktuelle Zeit - Zeipunkt seitdem die Pumpen eingeschaltet wurden
if(Verstrichene_Zapfzeit >= Zapfzeit_2) // Wodka
{
digitalWrite(Pumpe_2, OFF); // Pumpe Wodka ausschalten
}
}
Verstrichene_Zapfzeit = 0;
PreviousMillis = millis(); // Zeitpunkt von Pumpenstart in PreviousMillis speichern
Serial.print("Stoppzeitpunkt Pumpe 2 ");
Serial.println(PreviousMillis, DEC); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
}
if(Zapfzeit_3)
{
Serial.println("Zapfen Pumpe 3"); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
digitalWrite(Pumpe_3, ON);
PreviousMillis = millis(); // Zeitpunkt von Pumpenstart in PreviousMillis speichern
Serial.print("Startzeitpunkt Pumpe 3 ");
Serial.println(PreviousMillis, DEC); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
while(Verstrichene_Zapfzeit <= Zapfzeit_3)
{
Verstrichene_Zapfzeit = (millis() - PreviousMillis); // Aktuelle Zeit - Zeipunkt seitdem die Pumpen eingeschaltet wurden
if(Verstrichene_Zapfzeit >= Zapfzeit_3) // Wodka
{
digitalWrite(Pumpe_3, OFF); // Pumpe Wodka ausschalten
}
}
Verstrichene_Zapfzeit = 0;
PreviousMillis = millis(); // Zeitpunkt von Pumpenstart in PreviousMillis speichern
Serial.print("Stoppzeitpunkt Pumpe 3 ");
Serial.println(PreviousMillis, DEC); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
}
if(Zapfzeit_4)
{
Serial.println("Zapfen Pumpe 4"); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
digitalWrite(Pumpe_4, ON);
PreviousMillis = millis(); // Zeitpunkt von Pumpenstart in PreviousMillis speichern
Serial.print("Startzeitpunkt Pumpe 4 ");
Serial.println(PreviousMillis, DEC); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
while(Verstrichene_Zapfzeit <= Zapfzeit_4)
{
Verstrichene_Zapfzeit = (millis() - PreviousMillis); // Aktuelle Zeit - Zeipunkt seitdem die Pumpen eingeschaltet wurden
if(Verstrichene_Zapfzeit >= Zapfzeit_4) // Wodka
{
digitalWrite(Pumpe_4, OFF); // Pumpe Wodka ausschalten
}
}
Verstrichene_Zapfzeit = 0;
PreviousMillis = millis(); // Zeitpunkt von Pumpenstart in PreviousMillis speichern
Serial.print("Stoppzeitpunkt Pumpe 4 ");
Serial.println(PreviousMillis, DEC); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
}
if(Zapfzeit_5)
{
Serial.println("Zapfen Pumpe 5"); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
digitalWrite(Pumpe_5, ON);
PreviousMillis = millis(); // Zeitpunkt von Pumpenstart in PreviousMillis speichern
Serial.print("Startzeitpunkt Pumpe 5 ");
Serial.println(PreviousMillis, DEC); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
while(Verstrichene_Zapfzeit <= Zapfzeit_5)
{
Verstrichene_Zapfzeit = (millis() - PreviousMillis); // Aktuelle Zeit - Zeipunkt seitdem die Pumpen eingeschaltet wurden
if(Verstrichene_Zapfzeit >= Zapfzeit_5) // Wodka
{
digitalWrite(Pumpe_5, OFF); // Pumpe Wodka ausschalten
}
}
Verstrichene_Zapfzeit = 0;
PreviousMillis = millis(); // Zeitpunkt von Pumpenstart in PreviousMillis speichern
Serial.print("Stoppzeitpunkt Pumpe 5 ");
Serial.println(PreviousMillis, DEC); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
}
if(Zapfzeit_6)
{
Serial.println("Zapfen Pumpe 6"); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
digitalWrite(Pumpe_6, ON);
PreviousMillis = millis(); // Zeitpunkt von Pumpenstart in PreviousMillis speichern
Serial.print("Startzeitpunkt Pumpe 6 ");
Serial.println(PreviousMillis, DEC); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
while(Verstrichene_Zapfzeit <= Zapfzeit_6)
{
Verstrichene_Zapfzeit = (millis() - PreviousMillis); // Aktuelle Zeit - Zeipunkt seitdem die Pumpen eingeschaltet wurden
if(Verstrichene_Zapfzeit >= Zapfzeit_6) // Wodka
{
digitalWrite(Pumpe_6, OFF); // Pumpe Wodka ausschalten
}
}
Verstrichene_Zapfzeit = 0;
PreviousMillis = millis(); // Zeitpunkt von Pumpenstart in PreviousMillis speichern
Serial.print("Stoppzeitpunkt Pumpe 6 ");
Serial.println(PreviousMillis, DEC); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
}
if(Zapfzeit_7)
{
Serial.println("Zapfen Pumpe 7"); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
digitalWrite(Pumpe_7, ON);
PreviousMillis = millis(); // Zeitpunkt von Pumpenstart in PreviousMillis speichern
Serial.print("Startzeitpunkt Pumpe 7 ");
Serial.println(PreviousMillis, DEC); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
while(Verstrichene_Zapfzeit <= Zapfzeit_7)
{
Verstrichene_Zapfzeit = (millis() - PreviousMillis); // Aktuelle Zeit - Zeipunkt seitdem die Pumpen eingeschaltet wurden
if(Verstrichene_Zapfzeit >= Zapfzeit_7) // Wodka
{
digitalWrite(Pumpe_7, OFF); // Pumpe Wodka ausschalten
}
}
Verstrichene_Zapfzeit = 0;
PreviousMillis = millis(); // Zeitpunkt von Pumpenstart in PreviousMillis speichern
Serial.print("Stoppzeitpunkt Pumpe 7 ");
Serial.println(PreviousMillis, DEC); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
}
if(Zapfzeit_8)
{
Serial.println("Zapfen Pumpe 8"); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
digitalWrite(Pumpe_8, ON);
PreviousMillis = millis(); // Zeitpunkt von Pumpenstart in PreviousMillis speichern
Serial.print("Startzeitpunkt Pumpe 8 ");
Serial.println(PreviousMillis, DEC); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
while(Verstrichene_Zapfzeit <= Zapfzeit_8)
{
Verstrichene_Zapfzeit = (millis() - PreviousMillis); // Aktuelle Zeit - Zeipunkt seitdem die Pumpen eingeschaltet wurden
if(Verstrichene_Zapfzeit >= Zapfzeit_8) // Wodka
{
digitalWrite(Pumpe_8, OFF); // Pumpe Wodka ausschalten
}
}
Verstrichene_Zapfzeit = 0;
PreviousMillis = millis(); // Zeitpunkt von Pumpenstart in PreviousMillis speichern
Serial.print("Stoppzeitpunkt Pumpe 8 ");
Serial.println(PreviousMillis, DEC); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
}
if(Zapfzeit_9)
{
Serial.println("Zapfen Pumpe 9"); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
digitalWrite(Pumpe_9, ON);
PreviousMillis = millis(); // Zeitpunkt von Pumpenstart in PreviousMillis speichern
Serial.print("Startzeitpunkt Pumpe 9 ");
Serial.println(PreviousMillis, DEC); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
while(Verstrichene_Zapfzeit <= Zapfzeit_9)
{
Verstrichene_Zapfzeit = (millis() - PreviousMillis); // Aktuelle Zeit - Zeipunkt seitdem die Pumpen eingeschaltet wurden
if(Verstrichene_Zapfzeit >= Zapfzeit_9) // Wodka
{
digitalWrite(Pumpe_9, OFF); // Pumpe Wodka ausschalten
}
}
Verstrichene_Zapfzeit = 0;
PreviousMillis = millis(); // Zeitpunkt von Pumpenstart in PreviousMillis speichern
Serial.print("Stoppzeitpunkt Pumpe 9 ");
Serial.println(PreviousMillis, DEC); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
}
if(Zapfzeit_10)
{
Serial.println("Zapfen Pumpe 10"); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
digitalWrite(Pumpe_10, ON);
PreviousMillis = millis(); // Zeitpunkt von Pumpenstart in PreviousMillis speichern
Serial.print("Startzeitpunkt Pumpe 10 ");
Serial.println(PreviousMillis, DEC); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
while(Verstrichene_Zapfzeit <= Zapfzeit_10)
{
Verstrichene_Zapfzeit = (millis() - PreviousMillis); // Aktuelle Zeit - Zeipunkt seitdem die Pumpen eingeschaltet wurden
if(Verstrichene_Zapfzeit >= Zapfzeit_10) // Wodka
{
digitalWrite(Pumpe_10, OFF); // Pumpe Wodka ausschalten
}
}
Verstrichene_Zapfzeit = 0;
PreviousMillis = millis(); // Zeitpunkt von Pumpenstart in PreviousMillis speichern
Serial.print("Stoppzeitpunkt Pumpe 10 ");
Serial.println(PreviousMillis, DEC); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
}
// Alle Taster LED's ausschalten
TasterLEDsAusschalten();
Merker_Zapfbits = 0; // Merker fuer Zapfbits zuruecksetzen
digitalWrite(RGB_LED_ROT, HIGH);
digitalWrite(RGB_LED_GRUEN, LOW);
digitalWrite(LED_Fertig, HIGH); // "LED Fertig" einschalten
PreviousMillis = millis(); // Zeitpunkt seit LED gruen an in PreviousMillis speichern
Serial.println("Zapfen Ende"); // Text oder Variable ausgeben, Println mach automatisch "Enter" nach Ausgabe
}
// Funktion um Taster 1-10 LEDs auszuschalten
void TasterLEDsAusschalten()
{
digitalWrite(LED_Taster1, LOW);
digitalWrite(LED_Taster2, LOW);
digitalWrite(LED_Taster3, LOW);
digitalWrite(LED_Taster4, LOW);
digitalWrite(LED_Taster5, LOW);
digitalWrite(LED_Taster6, LOW);
digitalWrite(LED_Taster7, LOW);
digitalWrite(LED_Taster8, LOW);
digitalWrite(LED_Taster9, LOW);
digitalWrite(LED_Taster10,LOW);
}
// Funktion um alle Zapfzeiten zu nullen
void Zapfzeiten_nullen()
{
Zapfzeit_1 = 0; // Wodka
Zapfzeit_2 = 0; // Weisser Rum
Zapfzeit_3 = 0; // Orangenlikoer
Zapfzeit_4 = 0; // Cranberrysaft
Zapfzeit_5 = 0; // Limettensaft
Zapfzeit_6 = 0; // Tequila
Zapfzeit_7 = 0; // Brauner_Rum
Zapfzeit_8 = 0; // Pfirsichlikoer
Zapfzeit_9 = 0; // Ananassaft
Zapfzeit_10 = 0; // Licoer_43
}