I’m new to coding and made a code that works fine but I wanted to add an option to interupt the process with the start button. I figured out that I nned to use millis() but seems not to work.
I would be very thankfull if someone could help me with my newbi stupid question
I spend hours searching the web but only found stupid blinking LED samples with millis() and I might missunderstood something
Tried to do the first If (Jack Daniels pure) with millis() and that it would stop if the start button is pressed:
#include <LiquidCrystal.h>
#include "Arduino.h"
LiquidCrystal lcd(7,6,5,4,3,2);
const int pumpe1Pin=8;
const int pumpe2Pin=9;
const int ventilPin=10;
const int smallButtonSensor=11;
const int bigButtonSensor=12;
const int liquorSwitchSensor=13;
unsigned long lastTime = 0;
unsigned long currentTime;
unsigned long period = 5000;
void setup() {
currentTime = millis();
lastTime = currentTime;
lcd.begin(16,2);
lcd.print("GetsYouDrunk PRO");
delay(20);
lcd.setCursor(0,1);
lcd.print("Reading...");
delay(40);
lcd.begin(16,2);
lcd.print("Select liquor:");
}
void loop() {
currentTime = millis();
pinMode(pumpe1Pin,OUTPUT);
pinMode(pumpe2Pin,OUTPUT);
pinMode(ventilPin,OUTPUT);
int liquorSensorVal=digitalRead(liquorSwitchSensor);
int smallButtonVal=digitalRead(smallButtonSensor);
int bigButtonVal=digitalRead(bigButtonSensor);
digitalWrite(pumpe1Pin, LOW);
digitalWrite(pumpe2Pin, LOW);
digitalWrite(ventilPin, LOW);
if(liquorSensorVal==HIGH){
Serial.println("Liquor 1 selected");
lcd.setCursor(0,0);
lcd.print("Select liquor:");
lcd.setCursor(0,1);
lcd.print("Jack Daniel's ");
}
if((smallButtonVal==HIGH)&&(liquorSensorVal==HIGH)){ //Jack Daniels Pure
digitalWrite(pumpe1Pin, HIGH);
lcd.begin(16,2);
lcd.print("Processing");
lcd.setCursor(0,1);
lcd.print("Jack pure...");
delay(5);
if(currentTime - lastTime >= period){
digitalWrite(pumpe1Pin, LOW);
}
if(smallButtonVal==HIGH){
digitalWrite(pumpe1Pin, LOW);
}
}
if((bigButtonVal==HIGH)&&(liquorSensorVal==HIGH)){ //Jack Daniels Coke
digitalWrite(pumpe1Pin, HIGH);
digitalWrite(ventilPin, HIGH);
lcd.begin(16,2);
lcd.print("Processing");
lcd.setCursor(0,1);
lcd.print("Jack & Coke...");
delay(8500);
digitalWrite(pumpe1Pin, LOW);
delay(10000);
digitalWrite(ventilPin, LOW);
}
delay(1);
if(liquorSensorVal==LOW){
Serial.println("Liquor 2 selected");
lcd.setCursor(0,0);
lcd.print("Select liquor:");
lcd.setCursor(0,1);
lcd.print("Captain Morgan ");
}
if((smallButtonVal==HIGH)&&(liquorSensorVal==LOW)){ // Captain Morgan Pure
digitalWrite(pumpe2Pin, HIGH);
lcd.begin(16,2);
lcd.print("Processing");
lcd.setCursor(0,1);
lcd.print("Captain pure...");
delay(6500);
digitalWrite(pumpe2Pin, LOW);
}
if((bigButtonVal==HIGH)&&(liquorSensorVal==LOW)){ //Captain Morgan Coke
digitalWrite(pumpe2Pin, HIGH);
digitalWrite(ventilPin, HIGH);
lcd.begin(16,2);
lcd.print("Processing");
lcd.setCursor(0,1);
lcd.print("Captain & Coke...");
delay(6500);
digitalWrite(pumpe2Pin, LOW);
delay(10000);
digitalWrite(ventilPin, LOW);
}
delay(1);
}