black-avenger
Member
Besten Dank, Sven. Hast mir sehr geholfen :smile:
Grüße
Thomas
Grüße
Thomas
Dann vier Sätze später:Wenn Ihr diese habt machen wir mit den 1K Widerständen weiter die an R4,R7,R10,R11,R12,R13 kommen.
R13 ist ein Widerstand von 10K der den TLC5940 bei Reset abschalten soll. Ich habe allerdings schlechte erfahrungen damit gemacht und lasse diesen deswegen weg!
int duengerMax = 0;
int currentDay[5] = {0};
boolean start[5] = {0};
for(int i = 0; i < 5; i++){ //Maximale Düngerzugabe ermitteln
if(duenger[i].active == 1){
if(duenger[i].amount > duengerMax)
duengerMax = duenger[i].amount;
}
}
unsigned long currentMillis = millis();
unsigned long startMillis;
for(int i = 0; i < 5; i++){
if(duenger[i].active == 1){
if(daystamp >= duenger[i].time && currentMillis >= 4294967295 - int(duengerMax*1000)){ //nahenden Overflow währrend möglicher Düngung ermitteln
duenger[i].time += float(int(duengerMax+0.5)); //sofern es zum Overflow kommen würde, Zeitpunkt zum düngen bis nach dem Overflow erhöhen
}
}
if(daystamp >= duenger[i].time && start[i] == false){ //beim Düngestart Zeit in Millisekunden merken
start[i] = true;
currentDay[i] = RTC.day;
startMillis = currentMillis;
}
if(start[i] == true && int(duenger[i].amount*1000) >= (currentMillis - startMillis) && digitalRead(TIP[i])==LOW){
digitalWrite(TIP[i],HIGH);
duengung = i;
}else if(start[i] == true && int(duenger[i].amount*1000) < (currentMillis - startMillis) && digitalRead(TIP[i])==HIGH){
digitalWrite(TIP[i],LOW);
duengung = -1;
}
if(start[i] == true && currentDay[i] != RTC.day)
start[i] = false;
}
RobertS":2ialpbfm schrieb:Wie schaut es eigentlich mit den Gehäusseaussparungen fürs Keypad aus? Einige hatten hier angekündigt, dass sie eventuell an eine günstige Lösung kämen @Florian @Moritz
Gruß
-Robert
Skibbie":2ialpbfm schrieb:Was ich schon ändern wollte: Die Düngung wird mittels daystamp gesteuert, dadurch kann man leider nur sekundengenau düngen. Ich weiß zwar nicht, wie genau man Bruchteile von ml mit den Pumpen fördern kann, aber ich denke, dass es zumindest möglich ist einen halben ml zu düngen. Deshalb wollte ich die Funktion mit millis() umbauen. Der Code funktioniert aber noch nicht. Außerdem haben die millis() nach ca. 49 Tagen einen overflow, sodass man dort aufpassen muss oder einmal pro Monat einen Software - Reset erwägen !?
MajorMadness":3ib9denf schrieb:Heute ist ein Schöner Tag!!!
Endlich sind die Platinen gekommen. Leider aber auch nen Brief vom Zoll, was erklärt wo meine Displays sind. Dennoch werden am WE packete gepackt, KSQ gelötet und zukünftige Prototypen gebastelt. :gdance:
Wir verwenden essentielle Cookies, damit diese Website funktioniert, und optionale Cookies, um den Komfort bei der Nutzung zu verbessern.
Siehe weitere Informationen und konfiguriere deine Einstellungen