Op 25 december 2022 20:04:39 schreef Jd6130r:
[...]
currentButtonState_k = LOW;
currentButtonState_L = low;
op deze manier?
zo krijg je weer een fout dat die eerste niet gedeclareerd is. hoofdletter K gebruiken.
maar idd, zo kan je het doen.
eigenlijk zou ik de loop helemaal anders maken en je programma in sub programma runnen. het enige verschil is die ene tijd 120000 vs 360000. geef die als variabele mee
code:
void loop() {
lastButtonState_K = currentButtonState_K ; // save the last state
currentButtonState_K = digitalRead(BUTTON_PIN_K); // read new state
if(lastButtonState_K == HIGH && currentButtonState_K == LOW) {
Serial.println("The button KORT is pressed");
program(120000);
currentButtonState_K = LOW;
}
if(lastButtonState_L == HIGH && currentButtonState_L == LOW) {
Serial.println("The button LANG is pressed");
program(360000);
currentButtonState_L = LOW;
}
}
void program(int programtijd) {
digitalWrite(RELAY_PIN_4,HIGH);
delay(500);
digitalWrite(RELAY_PIN_4,LOW);
digitalWrite(RELAY_PIN_2,HIGH);
delay(programtijd);
digitalWrite(RELAY_PIN_2,LOW);
digitalWrite(RELAY_PIN_1,HIGH);
delay(15000);
digitalWrite(RELAY_PIN_1,LOW);
}
trouwens, werkt dat programma wel??? ik zie dat je nergens die BUTTON_PIN_L inleest in de loop, dus dat lang programma kan nooit draaien.
om uit de loop te geraken kan je ergens een variabele gebruiken.
bv in algedraaid = 0;
moment dat je 1 programma gestart hebt, zet je die op 1.
en in de loop maak je een grote if die enkel werkt als algedraaid op 0 staat.
heb je dus 1 vaat gedraaid, moet je resetten om nog eens te draaien.
daarna maak je een display met een menu, 4 drukknoppen (omhoog, omlaag, reset en start).
kan je in het display selectie maken:
eco program
normal program
lang program
eco is dan dat de watertemperatuur lager is dan beide.
kwa veiligheid zou je ook moeten ingrijpen als je computer vastloopt. dus een timer ernaast die de machine na pakweg 3uur spanningsloos zet als je arduino zijn programma niet heeft afgewerkt. je kan dan een foutcode genereren.
BV Error1: runtime to long
Error2: temperatuur not reached
....
en in no time heb je zelf een ingewikkelde vaatwas gebouwd met alle functies van een nieuwe
.
tip, zorg dat je de usb connector toegankelijk hebt, zodat je 'firmware updates' kan uitvoeren van alle nieuwigheden die je bijmaakt.
want je zal updates maken.
het volgende dat je wil, is een countdown timer op je display dat de tijd weergeeft voordat het programma gedaan is. je zal enorm bijleren met dit projectje en met wat kleine euros kan je opties toevoegen tot een met (een display van 2€, en draaiknopje voor in je menu te scrollen, opties om zelf je temperatuur in te stellen (koud-40°-60°...), nog eens extra naspoelen voor glazen...)