INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
PLZ 8656x
23.10.2015, 12:36
Beitrag #9
RE: PLZ 8656x
(18.10.2015 11:23)hotsystems schrieb:  
(18.10.2015 10:59)Igor_H schrieb:  Die "Sensoren" sind 3 Alustäbe. Sobald SensorU oder SensorO ins Wasser taucht, schaltet ein CMOS-Schmitttrigger. Über ein Relais wird dann ein Schütz angesteuert, der die 2,2kW Tiefbrunnenpumpe einschaltet (sofern der Druckschalter ihn freigibt).
Erschwerend (nicht für die Elektronik) kommt hinzu, daß sich das Ganze in 30m Tiefe abspielt. "Nur" die Sensoren sind im Brunnen, die Auswerteelektronik ist "oben"
Die "Sensorik" arbeitet seit etwa einem 1/2 Jahr einwandfrei
Ich möchte ungern mechanische Schalter anbringen
Ok, ich möchte keine "Unruhe" stiften, aber Alu ist das schlechteste Material überhaupt. Wundert mich, dass es so lange funktioniert. Das oxydiert sehr stark und die Leitfähigkeit an der Oberfläche wird immer schlechter.
Edelstahl wäre hier deutlich besser.

Der nächste Punkt ist, du arbeitest bei deiner Elektronik mit Gleichspannung/Strom, dadurch entsteht eine Elektrolyse, die das Material im Wasser "abbaut".
Da musst du Wechselspannung einsetzen, es gibt dafür extra IC's die das machen.

Aber ok, wenn es erst mal funktioniert, die Frage ist nur wie lange.
Dieses bitte nur als gut gemeinten Tipp sehen.

Um mich mit dem Sketch zu befassen, benötige ich noch die Zeichnung, dann komme ich leichter rein.Wink

Und zusätzlich stellt sich mir die Frage, wozu der obere Sensor?
Als Trockenlaufschutz reicht doch der untere Sensor. Der schaltet, wenn der Pegel darunter ist.
Oder sehe ich das falsch.

Nach etwas Überlegung, aber ohne genau zu wissen, ob es deinen Funktionswünschen entspricht, hier mal ein einfacher Code:

Code:
#include <avr/io.h>
int SensorU;
int SensorO;
int Input1Pin = 2;//unterer Sensor
int Input2Pin = 3;//oberer Sensor
int AusgangPin = 12;//Pumpe Ausgang


void setup () {
  // Serial.begin (9600);
  pinMode(Input1Pin, INPUT);
  pinMode(Input2Pin, INPUT);
  pinMode(AusgangPin, OUTPUT);
}


void loop() {
  SensorU = digitalRead (Input1Pin);
  SensorO = digitalRead (Input2Pin);

  if (SensorO == HIGH & SensorU == HIGH ) {     // Wenn Sensor oben und unten im Wasser sind (eigentlich braucht es hier SensorU nicht)
    digitalWrite (AusgangPin, HIGH);            // Dann Pumpe an
  }

  if (SensorU == LOW ) {                        // Wenn Sensor unten nicht mehr im Wasser ist
  digitalWrite (AusgangPin, LOW);               // Dann Pumpe aus
  }
}

Das sollte so funktionieren, wie gesagt keine Verantwortung, da ich nicht sicher bin, ob du es so wünscht.

Und bitte baue Pulldown-Widerstände ein.

Zum "Problem" Sensoren: Gehen wir einfach mal davon aus, daß die so funktioieren, wie gewünscht. Kein Wasser: LOW, Wasser: HIGH . Wenn's sein muß auch mit Pulldown....
Warum SensorO: Wenn der Wasserstand wieder über den Pegel SensorU steigt, dann schaltet die Pumpe ein und 10 Sekunden später wieder aus (weil der Wasserstand wieder einen halben cm gesunken ist. Das "Spielchen" würde sich unendlich wiederholen. Deshalb: Erst wenn der SensorO Wasser meldet, darf sich die Pumpe wieder einschalten.
Mich würde interessieren, wie du das Sensorproblem gelöst hast. Edelstahl klingt schon mal gut.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.10.2015, 13:18
Beitrag #10
RE: PLZ 8656x
(23.10.2015 12:36)Igor_H schrieb:  Zum "Problem" Sensoren: Gehen wir einfach mal davon aus, daß die so funktioieren, wie gewünscht. Kein Wasser: LOW, Wasser: HIGH . Wenn's sein muß auch mit Pulldown....
Warum SensorO: Wenn der Wasserstand wieder über den Pegel SensorU steigt, dann schaltet die Pumpe ein und 10 Sekunden später wieder aus (weil der Wasserstand wieder einen halben cm gesunken ist. Das "Spielchen" würde sich unendlich wiederholen. Deshalb: Erst wenn der SensorO Wasser meldet, darf sich die Pumpe wieder einschalten.
Mich würde interessieren, wie du das Sensorproblem gelöst hast. Edelstahl klingt schon mal gut.
Ja, dann habe ich es jetzt doch richtig (mit SensorO und SensorU) verstanden und den Code auch daraufhin angepasst.
Zuerst habe ich verstanden, du brauchst nur einen Trockenlaufschutz, wie im Text vermerkt, der die Pumpe abschaltet, wenn Wasser zu niedrig ist. Da hätte ein "SensorU" gereicht.

Die Pulldown-Widerstände müssen sein, damit die Eingänge am Atmega ein korrektes Potential sehen, da du ja auf aktiv HIGH prüfst. Atmega-Eingänge müssen immer mit entsprechenden Widerständen bestückt werden, außer man hat am Eingang einen Logikbaustein, da braucht es nicht. Ein weiterer Sonderfall ist, wenn man gegen LOW schaltet, können interne PullUps aktiviert werden.

Als "Sensoren" verwende ich diese hier:
http://www.conrad.de/ce/de/product/50333...-Sonde-6-m
Davon 4 Stück an 3 x LM1830 (Aus, Ein, Alarm), da es ein Drainageschacht ist.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
24.10.2015, 09:02
Beitrag #11
RE: PLZ 8656x
(19.10.2015 09:32)hotsystems schrieb:  Das

if (SensorO == HIGH & SensorU == HIGH )

muss natürlich so

if (SensorO == HIGH && SensorU == HIGH )

sein.

Nö, funktioniert leider nicht. Weil die Bedingung "wenn beim "einschalten" der untere Sensor Wasser meldet, dann soll sich die Pumpe einschalten" nicht erfüllt ist.
Nochmal zum besseren Verständnis:
Normalzustand: Die Steuerung ist ausgeschaltet (kein Strom)
Betrieb: Spannung wird angelegt. Wenn jetzt der untere Sensor HIGH meldet, soll sich die Pumpe einschalten (könnte ja sein, daß ich nur einen Eimer Wasser brauche oder der Pegelstand 1/2cm unter dem Einschaltpunkt von SensorO liegt).
Wenn sich anschließend die Tröpfchenbewässerung einschaltet und der Pegel unter das Niveau von SensorU fällt, soll sich beim ansteigen des Wasserspiegels (SensorU meldet wieder Wasser) die Pumpe NICHT einschalten. Sondern erst, wenn auch SensorO HIGH ist.
Ich hoffe, damit ist die Sachlage hinreichend erklärt...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
24.10.2015, 09:18 (Dieser Beitrag wurde zuletzt bearbeitet: 24.10.2015 17:55 von Bitklopfer.)
Beitrag #12
RE: PLZ 8656x
Hallo zusammen,
habt ihr schon mal über eine State Machine nachgedacht ?
Z.B. kann man alle Endschalter, den Status Programm frisch gestartet, Pumpe läuft in einem Bytewert zusammenfassen.
z.B.
Unterer Sensor bekommt den Wert 1
Oberer Sensor bekommt den Wert 2
Frisch eingeschaltet bekommt den Wert 4
Pumpe läuft bekommt den Wert 8

Somit ergeben sich Werte von 0 bis 15 die jeweils einen Status = State darstellen.
Ergo muß ich nur noch diese 15 verschiedene Stati entsprechend bearbeiten.
Zum Programmstart wird eben wird State auf 4 gesetzt, und schon kann man dann in die Loop springen und wo zuerst die Sensoren abgefragt und die entsprechenden zugehörige Wert addiert werden und schon weiß das Programm was zu tun ist.
lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
24.10.2015, 12:49
Beitrag #13
RE: PLZ 8656x
(24.10.2015 09:02)Igor_H schrieb:  Nö, funktioniert leider nicht. Weil die Bedingung "wenn beim "einschalten" der untere Sensor Wasser meldet, dann soll sich die Pumpe einschalten" nicht erfüllt ist.
Nochmal zum besseren Verständnis:
Normalzustand: Die Steuerung ist ausgeschaltet (kein Strom)
Betrieb: Spannung wird angelegt. Wenn jetzt der untere Sensor HIGH meldet, soll sich die Pumpe einschalten (könnte ja sein, daß ich nur einen Eimer Wasser brauche oder der Pegelstand 1/2cm unter dem Einschaltpunkt von SensorO liegt).
Wenn sich anschließend die Tröpfchenbewässerung einschaltet und der Pegel unter das Niveau von SensorU fällt, soll sich beim ansteigen des Wasserspiegels (SensorU meldet wieder Wasser) die Pumpe NICHT einschalten. Sondern erst, wenn auch SensorO HIGH ist.
Ich hoffe, damit ist die Sachlage hinreichend erklärt...

Es wird langsam klarer. Huh
Wodurch wird denn die Pumpe eingeschaltet?
Ich habe bisher verstanden, der Sketch steuert die Pumpe, schaltet sie also ein und aus.
Gibt es noch einen weiteren, externen Schalter für die Pumpe?
So wie du es oben beschreibst ist es für mich unlogisch.
Mal soll die Pumpe einschalten wenn SensorU HIGH ist, dann fällt der Wasserstand und SensorU ist LOW, Pumpe aus. Wasser steigt wieder und SensorU ist HIGH, Pumpe muss jetzt ausbleiben? Das ist unlogisch. Ich versteh es nicht.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
24.10.2015, 17:50
Beitrag #14
RE: PLZ 8656x
(24.10.2015 12:49)hotsystems schrieb:  
(24.10.2015 09:02)Igor_H schrieb:  Nö, funktioniert leider nicht. Weil die Bedingung "wenn beim "einschalten" der untere Sensor Wasser meldet, dann soll sich die Pumpe einschalten" nicht erfüllt ist.
Nochmal zum besseren Verständnis:
Normalzustand: Die Steuerung ist ausgeschaltet (kein Strom)
Betrieb: Spannung wird angelegt. Wenn jetzt der untere Sensor HIGH meldet, soll sich die Pumpe einschalten (könnte ja sein, daß ich nur einen Eimer Wasser brauche oder der Pegelstand 1/2cm unter dem Einschaltpunkt von SensorO liegt).
Wenn sich anschließend die Tröpfchenbewässerung einschaltet und der Pegel unter das Niveau von SensorU fällt, soll sich beim ansteigen des Wasserspiegels (SensorU meldet wieder Wasser) die Pumpe NICHT einschalten. Sondern erst, wenn auch SensorO HIGH ist.
Ich hoffe, damit ist die Sachlage hinreichend erklärt...

Es wird langsam klarer. Huh
Wodurch wird denn die Pumpe eingeschaltet?
Ich habe bisher verstanden, der Sketch steuert die Pumpe, schaltet sie also ein und aus.
Gibt es noch einen weiteren, externen Schalter für die Pumpe?
So wie du es oben beschreibst ist es für mich unlogisch.
Mal soll die Pumpe einschalten wenn SensorU HIGH ist, dann fällt der Wasserstand und SensorU ist LOW, Pumpe aus. Wasser steigt wieder und SensorU ist HIGH, Pumpe muss jetzt ausbleiben? Das ist unlogisch. Ich versteh es nicht.

Ich geb zu, es ist ein Puzzle....Wie ich schon am 18. geschrieben hatte:
Es gibt einen "Hauptschalter" (Spannung ein) und es gibt einen Druckschalter (der z.B. bei 2bar einschaltet und bei 4 bar wieder aus). D.h. Druck über 4bar, schaltet sich die Pumpe aus. Damit kann ich einen "Dauerbetrieb" fahren. Wasserhahn auf - Wasser läuft. Aber nur solange wie Wasser da ist. Dann läuft die Pumpe "trocken". Und jetzt kommen die Sensoren ins Spiel....
Die Pumpe muß bei SensorU = HIGH ausbleiben, weil's sonst ein ewiges "Geklapper" gibt. SensorU und SensorO bilden quasi die Hysterese.
Der Hauptschalter ist aus diversen Gründen NICHT immer ein. Aber wenn ich einschalte, soll eben Wasser kommen (sofern SensorU noch Wasser meldet).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
24.10.2015, 22:15
Beitrag #15
RE: PLZ 8656x
(24.10.2015 17:50)Igor_H schrieb:  ...
Ich geb zu, es ist ein Puzzle....Wie ich schon am 18. geschrieben hatte:
Es gibt einen "Hauptschalter" (Spannung ein) und es gibt einen Druckschalter (der z.B. bei 2bar einschaltet und bei 4 bar wieder aus). D.h. Druck über 4bar, schaltet sich die Pumpe aus. Damit kann ich einen "Dauerbetrieb" fahren. Wasserhahn auf - Wasser läuft. Aber nur solange wie Wasser da ist. Dann läuft die Pumpe "trocken". Und jetzt kommen die Sensoren ins Spiel....
Die Pumpe muß bei SensorU = HIGH ausbleiben, weil's sonst ein ewiges "Geklapper" gibt. SensorU und SensorO bilden quasi die Hysterese.
Der Hauptschalter ist aus diversen Gründen NICHT immer ein. Aber wenn ich einschalte, soll eben Wasser kommen (sofern SensorU noch Wasser meldet).
...aber nehmen wir mal an das die Pumpe abgeschaltet hat weil SensorU unterschritten wurde. Der Zulauf stockt auf sagen wir mal 50% zwischen SensorU und SensorO dann sitzt du auf dem Trockenen obwohl noch Wasser da wäre Tongue
Da wäre doch eine Zeitliche Hysterese eher angebracht die abläuft wenn SensorU wieder Wasser da meldet. Zum Beispiel xxx Sekunden warten bis die Pumpe wieder freigegeben wird.
Oder Gretchenfrage, wie lange dauert es in der Regel bis sich der Wasserstand von SensorU bis auf SensorO Level erholt hat und wieviele Liter Wasser sind das dann ? Wie hoch ist der Verbrauch wenn der Hahn geöffnet wird, sprich wie lange läuft die Pumpe bis der Level von SensorO auf unter SensorU abgefallen ist ?
Wobei Pumpe Ein vom Arduino aus ja nur den Strom bis zum Druckschalter freigibt.
lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.10.2015, 09:17 (Dieser Beitrag wurde zuletzt bearbeitet: 25.10.2015 09:37 von Igor_H.)
Beitrag #16
RE: PLZ 8656x
(24.10.2015 22:15)Bitklopfer schrieb:  
(24.10.2015 17:50)Igor_H schrieb:  ...
Ich geb zu, es ist ein Puzzle....Wie ich schon am 18. geschrieben hatte:
Es gibt einen "Hauptschalter" (Spannung ein) und es gibt einen Druckschalter (der z.B. bei 2bar einschaltet und bei 4 bar wieder aus). D.h. Druck über 4bar, schaltet sich die Pumpe aus. Damit kann ich einen "Dauerbetrieb" fahren. Wasserhahn auf - Wasser läuft. Aber nur solange wie Wasser da ist. Dann läuft die Pumpe "trocken". Und jetzt kommen die Sensoren ins Spiel....
Die Pumpe muß bei SensorU = HIGH ausbleiben, weil's sonst ein ewiges "Geklapper" gibt. SensorU und SensorO bilden quasi die Hysterese.
Der Hauptschalter ist aus diversen Gründen NICHT immer ein. Aber wenn ich einschalte, soll eben Wasser kommen (sofern SensorU noch Wasser meldet).
...aber nehmen wir mal an das die Pumpe abgeschaltet hat weil SensorU unterschritten wurde. Der Zulauf stockt auf sagen wir mal 50% zwischen SensorU und SensorO dann sitzt du auf dem Trockenen obwohl noch Wasser da wäre Tongue
Da wäre doch eine Zeitliche Hysterese eher angebracht die abläuft wenn SensorU wieder Wasser da meldet. Zum Beispiel xxx Sekunden warten bis die Pumpe wieder freigegeben wird.
Oder Gretchenfrage, wie lange dauert es in der Regel bis sich der Wasserstand von SensorU bis auf SensorO Level erholt hat und wieviele Liter Wasser sind das dann ? Wie hoch ist der Verbrauch wenn der Hahn geöffnet wird, sprich wie lange läuft die Pumpe bis der Level von SensorO auf unter SensorU abgefallen ist ?
Wobei Pumpe Ein vom Arduino aus ja nur den Strom bis zum Druckschalter freigibt.
lgbk

Ist das hier "versteckte Kamera" oder so was ähnliches?
Männer? - jetzt reichts. Nicht beleidigt sein, aber:
Ihr/wir streiten hier um des Kaisers Bart. Ist doch ALLES vollkommen egal. Ich hab' hier das Problem geschildert, daß daß sich eine Pumpe nach definierten Bedingungen einschalten bzw. abschalten soll.
Wobei: Das war ja schon garnichtmehr mein Problem, weil das mein Sketch eh' macht. Umständlich zwar - aber er macht...
Ich hatte -interessehalber- um eine Optimierung gebeten. Mein eigentliches Problem ist, wie krieg ich das Progrämmchen auf den Attiny?
Wie hoch der Wasserverbrauch ist, ob ich auf dem trockenen sitze, ob hier 'ne Viertelstunde vergeht - ALLES egal .Der Zulauf in einem Brunnen stockt auch nicht zwischen SensorU und SensorO. Warum sollte er? Wir haben -vorerst- noch keine kalifornischen Verhältnisse.
Vielleicht beträgt ja der Abstand zwischen SensurU und SensorO nur einige mm (oder einige cm?).
Mein dringender Appell: Nicht beleidigt sein! Aber ich wäre um -konstuktive- Hilfe sehr, sehr dankbar.
Probieren wir's nochmal?
Ich schildere gerne meine Stolpersteine auf dem Weg vom Arduino zum Attiny.

Oder: Gehen wir das Problem von einer ganz anderen Seite an:
Es gibt 3 Schalter (Schalter A, Schalter B und Schalter C). Wenn Schalter A eingeschaltet wird und Schalter B schon an ist, soll eine Lampe leuchten.Wird Schalter B ausgeschaltet muß das Licht ausgehen. Wird nun Schalter B wieder eingeschaltet, darf das Licht NICHT leuchten. Es darf erst leuchten, wenn auch Schalter C eingeschaltet wird. Wird Schalter C wieder ausgeschaltet, muß die Lampe weiter leuchten. Erst wenn auch B ausgeschaltet wird, muß das Licht ausgehen.
Wird Schalter A ausgeschaltet, muß das Licht auf jeden Fall ausgehen.
Vielleicht ist es ja so verständlicher
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste