Arduino mit 1 Schalter versch. Ausgänge schalten

Hallo zusammen,

ich möchte meinen Arduino Duemillanove mit 1 Schalter/Taster bis zu 5 verschiedene Relaise gezielt schalten. Dies möchte ich realisieren weil ich in meiner Steuerleitung nicht genügend Adern habe. Ich dachte an einen Tastcode, wie 3mal schnell Drücken -> Relais 3 zieht an, 2mal schnell Drücken -> Relais 2 zieht an, 3mal schnell drücken -> Relais 3 öffnet wieder...

Wie könnte das Script hierfür aussehen? Diese Option ist bestimmt nicht die beste, welche gibt es noch?

Vielen Dank für Anregungen

Naja, mit Hilfe von Spannungsteilern könntest Du relativ einfach fünf Taster an die Steuerleitung legen, und der Arduino könnte erkennen, welche Taste Du gedrückt hast.

Das ginge dann aber nur mit Tastern, mit Schaltern würde das nicht funktionieren, und auch nur immer einer nach dem Anderen.

Ist dir wichtig, daß nur ein Taster verwendet wird oder willst du nur einen Port am Arduino dafür verbrauchen?

Im ersten Fall solltest du dir ein gutes Interface ausdenken, das ein normaler Mensch bedienen kann. Das ist mit einem Taster gar nicht so einfach, besonders wenn es keine rückmeldung mit LED oder so gibt.

Wenn es dir nur um die Ports geht, kannst du entweder mit Widerständen ein ganzes Keypad an einen Analoport hängen oder du setzt einen parallel/seriell Konverter ein (kostet weniger als 1?) oder du machst ein paar Ausgangsports frei in dem du sie an einen seriell/parallel Konverter hängst (auch unter 1?).

Korman

Danke für die schnellen Antworten. Am Arduino hab ich genügend Ports frei, ich möchte lediglich kein weiteres Kabel ziehen. Das mit dem Spannungsteiler hört sich interessant an, wie würde das laufen? Jeder Taster generiert eine andere Spannung zwischen 0 und 5 V und das wird über einen Analogport ausgelesen? Das muss bestimmt enorm stabilisiert sein um keine Fehlschaltungen zu bekommen? Meine Stromquelle ist ein Bleiakku.

Grundsätzlich geht das mit den Tasten.. ich habe in meinem Projekt eine solche Tastatur im Einsatz. Um zu ermitteln welche Taste gedrückt wurde lasse ich die Analogwerte mehrfach abfragen und durch die Anzahl der Abfragen wiederum teilen. Damit erhält man einen Mittelwert und dieser wird mit einem definierten Wertebereich verglichen und voila... Du weisst welche Taste gedrückt wurde. Mit Deinem Bleiaccu hast Du nur das Problem das Du keine stabile Refenzspannung haben wirst.. oder Du brauchst in diesem Fall für die Tastatur eine extra geregelte Spannung.

Ganz genau, du baust im Prinzip an jedem Taster einen Spannungsteiler auf, den du bei Tastendruck mit dem Analog-Eingang verbindest. Bei 5 Tastern wird der gesamte Eingangsbereich (0-1023) in entsprechende 5 Teile zerlegt. Nun prüft man nur noch, ob sich der Spannungsbereich bspw. im Bereich 0-200 befindet, dann entspräche das Taster 1, ist am Analogport der Wert 345 auszulesen, liegt das im nächsten Wertebereich des Tasters 2 usw.. Beispiele und Erklärungen gibt es auf der Hauptseite.

Probleme mit der Referenzspannung sollte es eigentlich nur geben können, wenn er die Teiler direkt an den Bleiakku hängt.

Alternativ könnte er ja einfach die 5 Volt vom Arduino dafür hernehmen, dann sollte das kein Problem sein, eigentlich...

Bei welcher Kombination öffnet sich Relai Nr. 2 den wieder ? Sollen die Relais Nr 2 und 3 zustandsunabhängig voneinander gesteuert werden ?

Ich nehmen einmal an, dass beim wiederholten mal 2 mal schnell drücken -> Relais 2 öffnet wieder... kommt.

Hat jemand für diesen Fall eine Idee? Selbst hatte ich mir so etwas auch schon überlegt, für einen einzelnen RC-Kanal. Irgendwie hab ich aber das Programiererische nie so hin bekommen.

Programmiertechnisch müsste das so gelöst werden, dass nach einem Tastendruck ein Timer gestartet wird. Trifft in der so eingestellten Zeit (z.B 0,5 sec) ein weiterer Tastendruck ein, wird ein Zähler erhöht und der Timer neu gestartet. Trifft kein Ereignis (Tastendruck) ein, wird der Wert der Zählvariable (bspw. 3 nach drei Tastendrücken) übergeben und anschließend auf 0 gesetzt.

Diese Lösung finde ich bei bis zu 3 Ausgänge noch praktikabel, weitere Ausgänge werden irgendwann nicht mehr induitiv bedienbar sein, zumal man ja auch nicht bei 10 Ausgängen 5 Sekunden auf dem Taster rumhämmern will. ;)

Die Vorredner haben bereits die besten Lösungen gepostet.

Mir fällt da auch nicht wirklich was besseres ein als der zuvor erwähnte Spannungsteiler. Der Rest ist Software.

Höchstens noch diese Pulston modulierten Dinger wie am Telefon verwendet (Tonwahlverfahren) … aber ich glaube das würde den Rahmen der Aufgabenstellung sprengen (obwohl es auch noch eine Möglichkeit wäre)