Hi, ich heiße Daniel und bin neu hier. Habe nicht wirklich viel Plan von der ganzen Materie, versuche mich aber rein zu arbeiten. Ich habe da ein Projekt vor... Dazu aber später mehr. Als Anfang würde ich gerne folgendes umsetzen. Ich habe ein vier relais Board, einen arduino mega, und zwei Schwimmer Schalter. Der Plan ist: Schwimmer Max (ganz oben im fass) Schwimmer min ( ganz unten im fass) Und relaisboard eben. Wenn Schwimmer Max auf Minimum steht passiert erstmal nichts. Erst wenn wenn Schwimmer min auf Minimum steht soll das relais geschaltet werden. Und zwar solange bis Schwimmer Max auf Maximum steht. Der Schwimmer min steigt demzufolge ja auch vorher auf Maximum. Wenn der obere jetzt wie gesagt AIF Max steht dann soll das relais wieder ausschalten. Ich habe meinen Code bastel versuch angehängt... Leider nur als Bild da ich im Moment unterwegs bin. Vllt hat ja jemand eine Idee und kann mir ggf auch Hilfestellung geben. Ich danke schonnal dafür. Gruß Daniel
:
Verschoben durch User
> Wenn Schwimmer Max auf Minimum steht passiert erstmal nichts.
Der "Schwimmer Max" kann nicht auf Minimum stehen.
Ein Schwimmerschalter ist entweder offen oder geschlossen. Aber der
steht nicht auf 'Minimum' oder 'Maximum'.
Dein Releais ist in einem Zustand. Entweder ein oder aus. Soweit hast du
es richtig.
Wenn der Minimum Schalter anspricht, schaltest du das Relais ein. Wenn
der Maximum Schalter anspricht, schaltest du das Relais aus. Ganz
simpel.
Jetzt musst du dir nur noch im klaren sein, was 'Schalter anspricht'
bedeutet. Heisst das, das der entsprechende Eingang per digitalRead ein
Low oder ein High liefert. Und Achtung: das kann für Maximum und Minimum
unterschiedlich sein.
WIe ist das beim Maximum? Dein Schwimmerschalter wird ja wohl mit
irgendeinem Wasserstand betätigt. D.h. wenn der Wasserstand den Maximum
Schalter erreicht, willst du das Relais ausschalten. Der Schalter wird
also vom steigenden Wasserstand geschlossen.
Wie ist das beim Minimum? Dieser Schwimmerschalter ist solange
geschlossen, solange der Wasserstand höher als das Minimum ist. Erst
durch den fallenden Wasserstand wird der Schalter dann bei
Unterschreiten geöffnet.
D.h. Schalter spricht an bedeutet beim Maximum: wenn der Schalter
geschlossen wird.
Beim Minimum Schalter bedeutet 'Schalter spricht an': wenn der Schalter
geöffnet wird.
Einfach mal in einer Skizze aufmalen, dann wird das alles viel klarer.
Und das ist auch die Lektion, die du hier lernst: Ehe man etwas
programmiert, muss einem die Logik dahinter klar sein. Und zwar wirklich
klar, nicht nur so irgendwie wischiwaschi. Ein Skizze, in der man sich
die Dinge aufmalt, wirkt da oft Wunder.
1 | void loop() |
2 | {
|
3 | if( Schalter_Minimum ist geöffnet ) |
4 | Relais einschalten |
5 | |
6 | if( Schalter Maximum ist geschlossen ) |
7 | Relais ausschalten |
8 | }
|
ganz einfach und simpel. Den jeweils anderen Schalter brauchst du dabei nicht wirklich zu berücksichtigen. Denn wenn der Minimum Schalter anspricht ist der Wasserstand so niedrig, dass der Maximum Schalter nicht geschlossen sein kann. Und wenn der Maximum Schalter schliesst, dann ist der Minimum Schalter schon längst geflutet. Das Relais wird von dem einen Schwimmerschalter eingeschaltet und vom anderen ausgeschaltet.
:
Bearbeitet durch User
Hi, und danke für die Antwort... Klingt plausibel... Da habe ich wohl etwas zu kompliziert gedacht schätze ich. Es handelt sich bei den Schaltern um zwei identische... Werde das heute Nachmittag mal versuchen umzusetzen. Danke für den Tipp erstmal. Gruß
Eine Frage bleibt noch. Wie sind deine Schwimmerschalter angeschlossen? Liefern die auch tatsächlich unterschiedliche Pegel oder sind das im Grunde einfach nur Taster, die nach Masse schliessen, wenn sie betätigt werden. Denn im letzteren Fall brauchst du auch noch Pullup Widerstände, damit du unterschiedliche Pegel kriegst. Auch wenn viele das glauben: Aber ein offener Eingang eines µC ist nicht automatisch auf Low. Ein offener Eingang ist erst mal nur eine Antenne, die sich alles mögliche einfängt. D.h. wenn deine Schalter so verbaut sind
1 | µC-Pin -------------------+ |
2 | | |
3 | / |
4 | | |
5 | -----+------ Masse |
dann IST Der µC-Eingang offen, solange der Schalter nicht geschlossen ist. Genauso auch hier
1 | ----+---- 5V |
2 | | |
3 | / |
4 | | |
5 | µC-Pin -------------------+ |
Dieser µC-Pin ist NICHT zuverlässig auf LOW, nur weil der SChalter nicht geschlossen ist. Man braucht in solchen Fällen immer einen Pullup oder Pulldown Widerstand, je nachdem, wie der SChalter verbaut ist, die den Pin auf LOW oder HIGH ziehen, wenn der Schalter nicht geschlossen ist. Da dein AVR im Arduino bereits über zuschaltbare Pullup Widerstände verfügt, werden Taster oder Schalter bei einem AVR normalerweise so angeschlossen
1 | µC-Pin -------------------+ |
2 | | |
3 | / |
4 | | |
5 | -----+------ Masse |
UND der Pullup Widerstand am Eingang aktiviert. Du brauchst den nur zuschalten und hast einen High Pegel am Eingang, wenn der Schalter nicht geschlossen ist.
1 | void setup() |
2 | {
|
3 | ...
|
4 | |
5 | pinMode( Sensormin, INPUT_PULLUP ); |
6 | pinMode( Sensormax, INPUT_PULLUP ); |
7 | }
|
erst jetzt hast du dann tatsächlich gesicherte LOW und HIGH Pegel, je nachdem ob der Schalter geöffnet oder geschlossen ist.
Ich weiß nicht ob da ein Arduino reicht... Nimm lieber einen Raspberry Pi.
KanonenAufSpatzen schrieb: > Ich weiß nicht ob da ein Arduino reicht... > Nimm lieber einen Raspberry Pi. Stell dir lieber mal vor, er soll das ganze diskret mit einem Flip-Flop, ev. notwendigen Not-Gliedern und Relais Treiber Transistoren aufbauen. Brr. Dann schon lieber ein Arduino. Der funktioniert dann zumindest wenigstens elektrisch out of the box, auch wenn es massiver Overkill ist.
:
Bearbeitet durch User
Daniel Schwarz schrieb: > Als Anfang würde ich gerne folgendes umsetzen. > > Ich habe ein vier relais Board, einen arduino mega, und zwei Schwimmer > Schalter. > > Der Plan ist: > > Schwimmer Max (ganz oben im fass) > Schwimmer min ( ganz unten im fass) > > Und relaisboard eben. Hmm, und was soll der Arduino da tun? Soll das ein Projekt werden, wie man mit möglichst hohen Aufwand möglichst einfache Schaltungen verwirklichen kann?
Du hast mindestens 3 Baustellen: -Deine Logik -Relais http://www.mikrocontroller.net/articles/Relais_mit_Logik_ansteuern -Deine Spülkasten-Mechanik
Danke für die zahlreichen antworten.... Nur so nebenbei ....bi kein Elektriker... daher ist Sommer alles etwas schwierig für mich....ich versuche aber mein bestes. Also zwecks pull up oder down...muss ich dann mal schauen später.... Einen rpi habe ich auch....dachte aber nur iwie wäre es Vllt mit arduino einfacher...kp Was meinst du mit viel Aufwand einfache Schaltungen zu machen !?.. Wie gesagt das ist nur ein Teil Stück vom ganzen... Aber damit ihr hier ein ei Blick bekommt was ich vorhabe mal ein zwei Bilder. Es geht darum einen automatischen Wasser Wechsel zu realisieren... Der Abhängig vom Pegel und später auch vom salzgehalt im Vorrat und im aquarium agieren soll. Das ist jetzt nur erstmal für den fullstand in einem fass der dann ein Magnet Ventil schalten soll 24v dc Und eine zentrale pumpe die an 230v hängt...denke das Bild erklärt es besser.
Daniel Schwarz schrieb: > Was meinst du mit viel Aufwand einfache Schaltungen zu machen !?.. Du fährst gerade mit dem 40-Tonner LKW mit Ferrari Motor zum Aldi um einen Liter Milch zu holen. Aber ok.
So, danke an Karl Heinz ! Das hat schon mal ohne Probleme funktioniert. Der nächste Schritt wäre mit diesem Prinzip nicht nur eines sondern zb drei relais zu schalten ggf mit einem delay von Ca 500 zwischen den drei relais. Vllt hat sich ja auch jemand die Bild Skizze angesehen und mag dazu noch etwas sagen... Danke und Gruß Daniel
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.