gelöst: mehrere Push Buttons an analog UND digital PIN gleichzeitig

Hallo!

Ich plane gerade mein erstes ernsthaftes Arduino Projekt. Ich möchte gern 10 Taster an den Nano anschließen und habe das über insgesamt zwei Analog-Eingänge gelöst. Das funktioniert mit der "Widerstandskette" auch sehr gut.
Jetzt möchte ich die 10 Taster aber auch dafür nutzen, um den Arduino aus dem Tiefschlaf wecken zu können. Am liebsten möchte ich den "Power-Down"-Mode nutzen, ihn also bei Bedarf wirklich richtig schlafen lassen.
Dazu ist es aber notwendig, dass die Taster mit einem Interrupt-Port Verbunden sind (D2 oder D3).
Ich habe dafür eine Schaltung entworfen, wo ich mir nicht 100% sicher bin, ob das funktioniert. Siehe Anhang.

Außerdem bin ich mir nicht sicher, ob das wirklich die beste Lösung ist oder ob es noch einen besseren Weg gibt?

Bedingung ist, dass bei Druck auf einen der 10 Taster der Arduino wieder geweckt wird und die Taster im Aktiv-Mode abfragbar sind.

Vielen Dank schon jetzt für Eure Hilfe. Ich bin gespannt, ob ich viel zu kompliziert denke oder ob es halbwegs passt. :smiley:

Viele Grüße
Frank

Warum testet du es nicht einfach ?
Ich könnte mir vorstellen, dass dies funktioniert.

Den D2 dann evtl. mit Pullup.

Warum gehst Du an 3,3V und nicht an 5V mit der Widerstandskaskade?

Gruß Tommy

Hallo Dieter!

Vielen Dank für deine schnelle Antwort. Ich werde es mal so aufbauen und testen.

Das kann ich aber erst Dienstag weil ich unterwegs bin. Und bevor ich bis dahin darauf rumkaue, wollte ich mal wissen, ob ich komplett daneben liege oder ob es eine bessere Lösung gibt.

Mir fiel neben der "Schlacht mit den Dioden" aber nix anderes ein, damit sich die Ports nicht gegenseitig beeinflussen.

Dazu kommt noch, dass ich an D2 und D3 eigentlich einen Drehencoder hängen wollte. Das muss ich mir nochmal durchdenken, ob das dann überhaupt noch klappt, ob der überhaupt einen Interrupt braucht oder ob ich auf einen Poti ausweichen muss.

@Tommy: Stimmt, der Pullup ist da noch nicht mit drin. Aber siehe mein Drehencoder-Problem.

3,3V, war ein Test, weil ich wg. Enerfieeinsparung ggf. auf ein 3,3V pro mini umsteigen will.

Viele Grüße
Frank

Encoder müssen nicht an Pin D2. Schau Dir mal die Beispiele von Nick Gammon an (besonders die weiter unten mit PC-Interrupt).

Gruß Tommy

Edit: Wobei auf dem Nano zum echten Energie sparen noch zuviel drauf ist, was auch bei sleep Energie verbraucht. Da wäre ein "nackter" 328 besser.

Tommy56:
Edit: Wobei auf dem Nano zum echten Energie sparen noch zuviel drauf ist, was auch bei sleep Energie verbraucht. Da wäre ein "nackter" 328 besser.

Soll doch ein ProMini werden und wenn da die Led raus kommt und der direkt mit 3,3 V arbeitet, ist es doch ok.

OK, ich tendiere da auch eher zum 328-Standalone, neuerdings zum MicroProMini. :wink:

Ein nackter 328 und ein attiny 861 sind schon im Warenkorb. Das wird dann Revision 2.

Für Revision 1 muss ein pro mini reichen.

Da das ganze mit AA - Batterien angetrieben wird, am liebsten mit Akkus, habe ich nur noch keine Idee, wie ich komplett ohne "Spannungswandler" auskomme. :frowning:

Viele Grüße
Frank

Knarf2807:
Ein nackter 328 und ein attiny 861 sind schon im Warenkorb. Das wird dann Revision 2.

Für Revision 1 muss ein pro mini reichen.

Da das ganze mit AA - Batterien angetrieben wird, am liebsten mit Akkus, habe ich nur noch keine Idee, wie ich komplett ohne "Spannungswandler" auskomme. :frowning:

Viele Grüße
Frank

Das sollte kein Problem sein. Kommt aber drauf an, was noch alles dran hängt.

HotSystems:
Das sollte kein Problem sein. Kommt aber drauf an, was noch alles dran hängt.

Nicht mehr viel. Nur noch ein DFPlayer Mini, den ich über einen MOSFET abschalten kann, wenn die Playlist zuende ist. Der kommt mit niedrigen Spannungen klar.

Wovon ich noch keine Ahnung habe: Wie verhält sich der analoge Eingang bei unterschiedlichen Spannungen? Verändern sich dann die Werte, die die Buttons zurück geben? Das muss ich nochmal testen.

Viele Grüße
Frank

Knarf2807:
Wovon ich noch keine Ahnung habe: Wie verhält sich der analoge Eingang bei unterschiedlichen Spannungen? Verändern sich dann die Werte, die die Buttons zurück geben? Das muss ich nochmal testen.

ja wenn du keine stabile Versorgungsspannung hast, ändert sich auch deine Vref.

Eventuell hilft dir wenn du die AnalogReference entsprechend wählst analogReference() - Arduino Reference

INTERNAL1V1 könnte gut passen, du musst dann aber auch dein Widerstandsnetzwerk darauf ausrichten (max 1.1V am Eingang)

Wenn die Betriebsspannung als Ref gewählt wird (Default) und das Widerstandsnetzwerk ebenfalls an der Betriebsspannung hängt, gleichen sich die Abweichungen weitgehend aus.

Gruß Tommy

Tommy56:
Wenn die Betriebsspannung als Ref gewählt wird (Default) und das Widerstandsnetzwerk ebenfalls an der Betriebsspannung hängt, gleichen sich die Abweichungen weitgehend aus.

Gruß Tommy

Das sagt mir auch meine theoretische Überlegung, nur getestet hab ich es noch nicht.
Ich bin gespannt.

Hallo!

Die Schaltung mit den Dioden konnte ich erst jetzt testen, weil ich keine Sperrdioden mit Beinchen fürs Breadboard hatte.
Gestern abend habe ich alles zusammengelötet und heute getestet.

Es funktioniert. Der analoge Anschluss wird sauber angesprochen, die Bandbreite ist groß genug, um 5 Buttons pro Analoganschluss zu erkennen und D2 wird auch sauber "geschaltet".

Durch die Dioden beeinflussen sich die beiden Eingänge nicht.

Vielen Dank für Eure Hilfe.

Frank

Knarf2807:
.....
Vielen Dank für Eure Hilfe.

Gerne....und es freut mich, dass es funktioniert.
Und danke für die Rückmeldung.