Hallo zusammen,
ich bin leider komplett neu und beschäftige mich das erste mal so wirklich mit Arduino.
Ich möchte eine Beregnungsanlage für einen Reitplatz ansteuern. Die Ansteuerung der Pumpe sowie der einzelnen von ingesamt 6 Magnetventilen werde ich mit Relais umsetzten.
Meine Hauptfrage liegt bei der Programmierung.
Ich habe 8 verschiedene Taster (einer für Start, einer für Stopp und 6 Stück für die einzelnen Sprinkler)
gerne würde ich zunächst die Auswahl treffen, welche der Sprinkler denn überhaupt angesteuert werden sollen. Nach Betätigung der Start-Taste soll dann der zuerst angewählt angehen und nach einer gewissen Zeit wieder ausgehen, bevor dann der nächste gewählt für eine gewisse Zeit läuft. Wird die Stopp-Taste gedrückt, so wird die Bewässerung sofort unterbrochen.
Bis jetzt ist mein Ansatz für jeden Sprinkler eine eigene Funktion zu schreiben, in welcher der Output HIGH gesetzt wird und nach einem Delay wieder auf LOW.
Wie realisiere ich am Besten das nacheinander starten (Aufrufen) der einzelnen Funktionen bei Drücken des Start Button?
Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden. Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.
Schrittkette.
Einstieg: Auswahl der Sprinkler - wird solange wiederholt bis
a) Ausstieg: Starttaste oder Stoptaste
Wenn Start ausgelöst nur
b) Ausstieg: Stoptaste
Hallo,
na ja Du musst Dir halt merken das Du schon mal einen der 6 Taster gedrückt hast, Und das dann verriegeln das nicht noch ein zweiter dazu kommt. Wenn Du dann Start drückst weist du welches Ventil geschaltete werden soll. Mit Stop schaltest Du den Merker wieder aus.
Man könnte auch eine numerische Variable auf einen Wert von 1-6 setzen und das nutzen. Dann könnte man eventuell alles in einer Schleife mit Arrays für die Taster, Ventile und dem index 1-6 verarbeiten.
Taster[i]...
Ventil[i]..
Möglichkeiten gibt es reichlich.
Heinz
Nachtrag Soll der Wechsel automatisch erfolgen oder immer nur ein Ventil und dann neue manuelle Auswahl und neu starten ?
das Programm soll automatisch laufen. Ich wähle die Reihenfolge aus und drücke Start dann öffnet das eine Ventil für eine gewisse Zeit schaltet ab und dann wird das nächste automatisch geöffnet.
Was machen dann die Ventiltaster? Wählen die das erste auszulösende Ventil aus, dann geht es der Reihe nach weiter, oder ist das eine manuelle Eingriffmöglichkeit, um den Abklauf der Reihenfolge zu unterbrechen und auf eine andere Düse zu schalten?
Aah.. ok, dann ist es ja einfach.
Ein Array wenn die Bewässerungszeiten gleich bleiben.
Ansonsten, entweder zwei Arrays mit Bezug auf den Sprinkler udn die Auswahl, oder ne Structur mit Sprinkler und Zeit als Elemente und die als Array.
Ablauf wie gehabt Schrittkette. Füllen mit Abbruchfunktion Start/Stop und bei Schritt Start nur Abbruch durch Schritt Stop.
Damit es mal irgendwie losgeht, habe ich ein Programm entworfen, das nach Drücken eines Startknopfes nacheinander sechs Ausgänge für drei Sekunden schaltet. Die Daten für die Pinnummer und die individuelle Zeit stehen in einer Datenstruktur. Getestet mit UNO:
Ein UNO dürfte hinsichtlich der Pins schon etwas knapp werden, also sollte ein Portexpander oder ein Mega2560 in Erwägung gezogen werden. Auch wird der Bediener möglicherweise eine Rückmeldung in Form von LEDs oder einem Display benötigen. Sollen die Bewässerungszeiten flexibel einstellbar sein?
Bau ein Display dran, damit du irgendein Feedback hast, was das Ding grad tut.
Du könntest da auch einen Timer runterzählen lassen, wie lange ein Sprinkler noch läuft.
6 Taster für die Gruppen,
6 LEDs als Anzeige (EIN, wenn aktiviert, blinken, wenn gerade gewässert wird und aus, wenn deaktiviert oder schon gewässert)
6 Ventilausgänge
2 Taster für Start und Stop.
20 I/Os insgesamt.
Da reicht ein Nano gerade noch.
Nachtrag: wenn man A6 und A7 analog abfragt, kann man sie als Eingänge für 2 der Taster verwenden, dann bleiben D0/D1 noch für die serielle Schnittstelle und zum Programmieren frei.
Ich würde das auf einen Pin legen.
Solange wie der Taster nicht aktiviert, ist der PIN ein INPUT_PULLUP.
Und wenn die Taste ausgelöst ist, wird der LOW gezogen und ein OUTPUT.
Die LED nach 5V und der Taster nach GND.