xorg1990
New member
Hallo Freunde, ich bin ja kaum noch hier im Forum unterwegs aber ab und zu mal muss ich eben doch vorbei schauen.
Ich bin ja zur Zeit gesundheitlich etwas angeschlagen. Nee, keine Corinna/Carola oder wie auch immer. Habe mir den Bizeps abgerissen.
Der Bizeps an sich ist mir egal. Ich bekomme aber Psychisch eine auf die Fresse, da seit einem Jahr Leistungsport jeden Tag 3 Stunden und jetzt -APRUPTER STOP. Der Schultermuskel abriss damals hat mich 2 Jahre beschäftigt.
Nun gut kommen wir zum Thema.
Ich bin auf einem Mikrocontroller zu Gange und lese in der loop die Minuten Zeiten aus einem DS3231 RTC Chip.
Ich benötige aber für die Pumpe eine 3 Minütige Einschaltverzögerung.
Der Code schaut erst mal so aus
Ja alles schön und gut aber wenn m 59 ist und ich 3 aufradier bin ich bei 62. Dann wird aber die m == timeWhenPumpStart Bedingung nie true.
Ich könnte jetzt einen if Baum einbasteln.
if m==57 {
timeWhenPumpStart = 0;
}else if(m==58){
imeWhenPumpStart = 1;
}..usw.
Das funktioniert aber spätesten dann nicht mehr wenn ich den User die Einschaltverzögerung einstellen lassen möchte.
Gibt es da eine Mathematik, das ich wenn die Addition großer ist als 59 wider bei 0 raus komme. Wie bei einem Überlauf?
Ich bin ja zur Zeit gesundheitlich etwas angeschlagen. Nee, keine Corinna/Carola oder wie auch immer. Habe mir den Bizeps abgerissen.
Der Bizeps an sich ist mir egal. Ich bekomme aber Psychisch eine auf die Fresse, da seit einem Jahr Leistungsport jeden Tag 3 Stunden und jetzt -APRUPTER STOP. Der Schultermuskel abriss damals hat mich 2 Jahre beschäftigt.
Nun gut kommen wir zum Thema.
Ich bin auf einem Mikrocontroller zu Gange und lese in der loop die Minuten Zeiten aus einem DS3231 RTC Chip.
Ich benötige aber für die Pumpe eine 3 Minütige Einschaltverzögerung.
Der Code schaut erst mal so aus
Code:
timeWhenPumpStart = 100;
loop{
DateTime now = RTC.now();
uint8_t m = now.minute();
if(digitalRead(schwimmerPin) && timeWhenPumpStart == 100){
timeWhenPumpStart = m+3
}
if(m == timeWhenPumpStart ){//pumpe ein
timeWhenPumpStart = 100;
}
}
Ja alles schön und gut aber wenn m 59 ist und ich 3 aufradier bin ich bei 62. Dann wird aber die m == timeWhenPumpStart Bedingung nie true.
Ich könnte jetzt einen if Baum einbasteln.
if m==57 {
timeWhenPumpStart = 0;
}else if(m==58){
imeWhenPumpStart = 1;
}..usw.
Das funktioniert aber spätesten dann nicht mehr wenn ich den User die Einschaltverzögerung einstellen lassen möchte.
Gibt es da eine Mathematik, das ich wenn die Addition großer ist als 59 wider bei 0 raus komme. Wie bei einem Überlauf?