Go Down

Topic: Pumpensteuerung - schalten erst nach zeitablauf (Read 3493 times) previous topic - next topic

petemanzel

Hallo qualidat!

Ich habe mir in den Referenzen "Arrays" angesehen und auch das "KnightRider" Tutorial.
Aber ich komme da nicht weiter.

Der Pete

slartibartfast

Ich beziehe mich mal auf Deinen Sketch in Post#18:

Code: [Select]

 // (...)

  if(sensorWert <= maxDruck - 100) state = 0; // Pumpe AN

  if(millis() - previousMillis >= interval && sensorWert >= maxDruck)
  {
    previousMillis = millis();   
    state = 1; // Pumpe AUS
  }
  if(lastState != state) {
  lastState = state;
   
      switch (state)
      {
      case 0:   // Pumpe Aus
        digitalWrite(pumpenRelais, LOW);
      break;
     
      case 1:   // Pumpe An
        digitalWrite(pumpenRelais, HIGH);
      break;
     
      default:
      problem();
      }
  }
}

Du setzt den Wert von "state" auf 0 und als Kommentar "Pumpe AN"
Nach dem Vergleich von Millis() mit previousMillis setzt Du "state" auf 1 und als Kommentar "Pumpe AUS"
Im anschließenden Switch schaltest Du aber genau entgegen gesetzt.
Und da wunderst Du Dich das die Pumpe nicht ausschaltet?

petemanzel

Ich habe im "switch / case" falsch kommentiert!

digitalWrite(pumpenRelais, LOW); Macht die Pumpe an!

Danke für den Hinweis!
Der Pete

ElEspanol

Nimm anstatt der Mittelwertbildung einen Running Median mit 31 Werten und schiebe alle 100 ms einen Wert rein.

Oder warte einfach nach dem einschalten der Pumpe 3 Sekunden mit dem Messen und mach dann erst den Median oder Average. Gibt ne schöne Lib für

petemanzel

Hallo!

"kontinuierliche Mittelwertbildung" hat "qualidat" mir ja auch schon vorgeschlagen. Aber das überfordert mich gerade ein wenig!

Der Pete

SkobyMobil

#35
Jul 05, 2016, 09:51 am Last Edit: Jul 05, 2016, 12:38 pm by SkobyMobil
Hallo,
was mir noch auffällt…
Mit was rechnest Du da eigentlich? So wie es aussieht mit einem Wert, der von
A2 geliefert wird.
Dein Sensor hat einen Arbeitsbereich von 0 bis 12bar bei 0,5 bis 4,5v

Dünnes Eis…

bei der Auflösung von 0 bis 1023 sind das dann bei einem AD-Wert von 922 gleich
12 bar und bei einem AD-Wert von 103 dann 0bar.

Bei einer Schalthysterese 520/550 sind das dann 6,11 bis 6,55bar.
Bei einer Schalthysterese 350/550 sind das dann 3,62 bis 6,55bar.

Dünnes Eis Ende...

Ich würde das ganze erst einmal in "bar" umrechnen und dann einmal schauen,
wie genau die Pumpe denn den Druck halten kann.

Die wird einen Druck von z.B. von 3bar ja nicht 100%tig halten können.
Aus dieser Druck-Differenz mußt Du ja erst einmal raus. Dann hat auch der Sensor
eine bestimmte Fehler-Toleranz. Diese mußt Du in Deiner Berechnung mit
einbeziehen.

Wenn Du das schon "samplen" willst, dann mußt Du das in Deinem Arbeitsbereich
machen, der z.B. bei 3 bis 4bar liegt.
Das wäre dann der AD-Wert 308 bis 376.
Das sind 64 AD-Werte die Du erst einmal stabil einfangen mußt. Wenn Du nicht
weißt, was geliefert wird- und auch nicht, was Du brauchst, dann kannst Du mit
Deinen millis() rumhampeln bis das Rohr platzt.
Gruß und Spaß
Andreas
P.S. mal sehen ob das Eis hält...
P.P.S. ein "TrockenLaufSensor" ist eine gute Idee. Schau mal nach, was für
eine ED Deine Pumpe für die Laufzeit hat, vielleicht mußt Du sie nach einer
bestimmten Zeit abschalten.
die zweite Maus bekommt den Speck...

ElEspanol

#36
Jul 05, 2016, 10:07 am Last Edit: Jul 05, 2016, 10:09 am by ElEspanol
Ich hatte das bereits im Einsatz, aber nach dem 4. Sensor stillgelegt, bis ich was besseres finde.

1. RunningMedian lib ist ideal dafür, weil beim Median Ausreißer eben nicht berücksichtigt werden. Bei Mittelwert schon. Wobei die Lib beides kann.
2. Per z.B. simpleTimer lib machst du alle 100 ms eine Messung und schreibst sie in den Median
3. Damit du überhaupt weisst, um welchen Wertebereich es geht (siehe ein Post vorher), lass dir per Testsketck alle 20ms die Messung seriell ausgeben und logge das mit. Schalte dann die Pumpe ein paarmal an und aus, damit du mehrere Messreihen bekommst.

4. Der Messbereich vom Sensor ist ungeeignet und erschwert das ganze nur.
5. Wenn du die Messreihen hast, ist egal, ob du in bar umrechnest oder die Rohwerte nimmst
6. Passende Hysterese nicht vergessen

Beim Hauswasserwerk bin ich auf einen Durchflusssensor umgestiegen, funktioniert so halbwegs. Dummerweise verengt er den Leitungsquerschnitt von 22 auf 13 mm. Sollte mal einen Bypass dran machen

SkobyMobil

Hallo,
"ist egal, ob du in bar umrechnest oder die Rohwerte nimmst"

Ich würde das schon in bar oder Wassersäule rechnen und anzeigen.
Wenn er ein Si-Ventil drinne hat das z.B. bei 4bar öffnet- aber knöcheltief
im Wasser steht, dann zeigt der Arduino ihm Max Druck 376 an.
Da kann er dann etwas mit anfangen??
Steht da aber 4 Bar, ist das Aussagekräftig.

Kann sein, das ich das alles überspitzt sehe, aber vor unbeaufsichtigtem
Wasser, Öl und Gas habe ich einen HöllenRespekt.
Gruß und Spaß
Andreas
die zweite Maus bekommt den Speck...

ElEspanol

klar , für die Ausgabe schon in Bar, aber intern würde ich der Einfachheit und schnelligkeit halber mit 16bit int arbeiten

agmue

Bekomme jetzt diese Fehlermeldung:

mioPressControlIntervall.ino: In function 'void setup()':
mioPressControlIntervall:33: error: call of overloaded 'print(long unsigned int (&)())' is ambiguous
Da fehlen Klammern:
Code: [Select]
Serial.print(millis()); Serial.print(" : "); Serial.println(maxDruck);
Die Pumpe geht jetzt aber nicht an bei maxDruck -(minus) 100.
Code: [Select]
sensorWert >= maxDruck
kann nicht erreicht werden, denn mehr als maxDruck geht ja nicht.
Code: [Select]
sensorWert >= (maxDruck - 50)
So funktioniert Dein Sketch.
Wahnsinn und Verstand trennt nur eine dünne Wand. (Daniel Düsentrieb)

SkobyMobil

#40
Jul 07, 2016, 02:33 am Last Edit: Jul 07, 2016, 10:37 am by SkobyMobil
Hallo,
was macht ihr da eigentlich mit eurem "Hauswasserwerk"- wenn es denn eines ist?

Im groben funktioniert das doch so:
Ihr bohrt unsere schöne Erde an, stopft ein Rohr in das Loch, an das Rohr eine
Pumpe, dann ein Rückschlagventil, dann zum Speicher oder zur Brauchwasserstelle?

Der Durchflusssensor gehört doch vor die Pumpe, damit sie nicht trocken läuft?
Nach der Pumpe ein Rückschlagventil damit ein Druck aufgebaut werden kann?
So erzeugt ihr doch einen Arbeitdruck von z.B. 2 bis 4 bar?
Wenn kein Wasser entnommen wird, dann ist der MaxDruck 4 bar in der Anlage.
Wenn jetzt Wasser entnommen wird, dann sinkt dieser Druck langsam auf
unter 2 bar.
Also, weniger als 2 bar Pumpe an- mehr als 4 bar Pumpe aus.
Wenn jetzt eure Pumpen sich "andauernt" ein- und ausschalten, dann stimmt doch
etwas nicht an der Montage oder den Dimensionen eurer Hauswasserwerke??

Es ist doch nicht so, Pumpe an- zack 4 bar. Wasserhahn auf- zack 2 bar?
Oder sehe ich da etwas nicht richtig?
Gruß und Spaß
Andreas
die zweite Maus bekommt den Speck...

agmue

#41
Jul 07, 2016, 07:54 am Last Edit: Jul 07, 2016, 08:02 am by agmue
Ich bohrt unsere schöne Erde an, ...
Nicht doch, ich nutze Regenwasser  :)  Da wurde nur ein Loch für den Tank gegraben.

Es ist doch nicht so, Pumpe an- zack 4 bar. Wasserhahn auf- zack 2 bar?
Da Wasser nicht komprimierbar ist, verhält sich das bei meiner Tauchdruckpumpe in etwa so. Ein Hauswasserwerk sollte die Zackigkeit durch komprimierbare Luft etwas abmildern. Auch der Hausanschluß fällt von 6 auf ca. 2 bar, wenn ein Wasserhahn geöffnet wird.

Ich habe auf die ursprüngliche Frage, warum der Sketch nicht funktioniert, geantwortet. Hier ist das Forum für Arduino und nicht für Gartenbewässerung oder Toilettenspülungen, denke ich zumindest. Wobei eine Gesamtbetrachtung des Projektes ja durchaus sinnvoll sein kann. :)
Wahnsinn und Verstand trennt nur eine dünne Wand. (Daniel Düsentrieb)

michael_x

Quote
Ich bohrt unsere schöne Erde an, stopft ein Rohr in das Loch, an das Rohr eine
Pumpe, dann ein Rückschlagventil, dann zum Speicher oder zur Brauchwasserstelle?
Wenn tatsächlich "die Erde angebohrt wird" und die Pumpe saugen muss, ist ein Rückschlagventil ganz unten direkt hinter/im Ansaugsieb. Damit der Saugschlauch nicht trocken fällt.
Einfachste Installationen verzichten dann sogar auf das Rückschlagventil hinter der Pumpe und setzen statt dessen den Saugschlauch unter Druck, wenn die Pumpe abschaltet.

Quote
Es ist doch nicht so, Pumpe an- zack 4 bar. Wasserhahn auf- zack 2 bar?
Doch, wenn der Speicher kein Luftpolster hat.

Und auch mit Druckluftpolster: zwischen 3.7 und 4 bar zum Abschalten würde ein Durchfluss-Sensor fast 0 anzeigen.  Da brauchst du auch eine gute Verzögerungszeit, wenn du per Durchfluss-Überwachung einen Trockenlaufschutz machen willst. So kommt es dann doch wieder Richtung Arduino.
Sonst brauchts keinen Durchfluss-Sensor.

ElEspanol

Idealerweise baut man ein kleines Druckausgleichsgefäss mit Menmbran ein, das glättet die Druckschwankungen etwas.

War früher mit mechanischen Druckschaltern immer dran. Sieht aus, wie so ein runder Ballon.

agmue

Hallo,
ich weiß nicht, ob es richtig ist daruf zu antworten. Hier gab es ja schon
welche "auf den Deckel" für Toilettenspülung und Gartenbewässerung…
Also nur kurz.
"Auf den Deckel" gibt es hier höchstens was von Uwe, ich sage nur meine Meinung. Und da ist mir aufgefallen, daß sich der TO schon länger nicht mehr gemeldet hat. Da stelle ich mir die Frage, wieso das so ist. Meine Mutmaßung: Der TO ist ins Bohrloch gefallen oder das Thema hat sich von seiner ursprünglichen Fragestellung zu weit entfernt.

Ich hatte die zweite Möglichkeit vermutet und wollte freundlich auf diesen Umstand aufmerksam machen :)

Weil aber auch meine Hinweise in #39 den TO leider nicht zurückgeholt haben, doch noch was zu dem spannenden Thema Gartenbewässerung (die Toiletten habe ich nicht angeschlossen, da es sich derzeit nicht rechnet).
Wenn tatsächlich "die Erde angebohrt wird" und die Pumpe saugen muss, ist ein Rückschlagventil ganz unten direkt hinter/im Ansaugsieb. Damit der Saugschlauch nicht trocken fällt.
Ist das Loch zu tief, klappt das Saugen nicht mehr, weshalb im Bohrloch eine Tauchdruckpumpe benötigt wird, um für das Hauswasserwerk einen Vordruck zu liefern.

Ich nutze eine vergleichbare Tauchdruckpumpe mit Druckschalter (3,2 bar), Trockenlaufschutz und Schwimmerschalter im Regenwassertank zur Gartenbewässerung. Hahn auf, Wasser läuft. Der Druck reicht auch für einen Hochdruckreiniger. Da habe ich kein schlechtes Gewissen wegen Wasserverschwendung. Wenn der Tank leer ist, was ich erst einmal geschafft habe, warte ich auf den nächsten Regen ;)

Hallo Pete, wie sieht es mit Deinem Sketch aus?
Wahnsinn und Verstand trennt nur eine dünne Wand. (Daniel Düsentrieb)

Go Up