Hallo zusammen,
ich bin noch relativ neu im Bereich Arduino und habe vor kurzem mit meinem ersten "großen" Projekt angefangen.
Ich bin dabei einen Automat zu bauen, der Asbach und Cola automatisch mischt. ![]()
Dazu habe ich zwei Pumpen, die mit drei verschiedenen Tastern für unterschiedlich lange Zeit (unterschiedliche stärke der Mischung) eingeschaltet werden sollen.
Ich habe mal ein wenig rumprobiert, bekomme das Programm aber einfach nicht so hin wie ich es gerne hätte.
Mein aktueller Stand ist dashier:
int tasterGruen = 12;
int relaisSchlauch = 9;
int relaisLuft = 8;
int colaTimer;
int asbachTimer;
unsigned long lastMillis;
void setup()
{
pinMode(tasterGruen, INPUT_PULLUP);
pinMode(relaisSchlauch, OUTPUT);
pinMode(relaisLuft, OUTPUT);
}
void loop()
{
if (digitalRead(tasterGruen) == LOW)
{
asbachTimer = 2000;
colaTimer = 2000;
lastMillis = millis();
pumpenAnsteuerung();
}
}
void pumpenAnsteuerung()
{
if ((millis() - lastMillis) <= colaTimer)
{
digitalWrite(relaisLuft, HIGH);
}
else
{
digitalWrite(relaisLuft, LOW);
}
if ((millis() - lastMillis) <= asbachTimer)
{
digitalWrite(relaisSchlauch, HIGH);
}
else
{
digitalWrite(relaisSchlauch, LOW);
}
}
Was ich hier versucht habe ist folgendes:
- Taster Grün wird betätigt
- Variablen asbachTimer und colaTimer werden auf die entsprechende Zeit gesetzt.
3.Die aktuelle millis() Zeit wird in lastMillis gespeichert - Der Code springt in meine Funktion pumpenAnsteuerung
- relaisLuft und relaisSchlauch sollen so lange angesteuert werden wie millis() - lastMillis <= der Variable für die Zeit sind.
Der Code funktioniert in sofern, das die Pumpen beim betätigen des Tasters angehen, aber leider nicht mehr aus.
Könnt ihr mir bitte helfen? Ich weiß hier mit meinem kleinen wissen nicht mehr weiter.
Viele Grüße und danke im vorraus
Tobias