Ein GPIO-Pin für LED, Taster und Summer über Hochpassfilter?

Es gibt Pin sowohl als Eingang (für einen Schalter) als auch als Ausgang (für LED) mit ATmega32U4? aber ich brauche auch einen von sechs solchen Stiften, um einen Piezo-Summer anzutreiben. Aufgrund seiner kapazitiven Natur dachte ich, dass es auch mit dem GPIO verbunden werden könnte (hat keine Auswirkung auf DC-Signale):

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Die Idee war, das Rauschen zu unterdrücken, das wahrscheinlich durch das Umschalten des GPIO von Output-Low (zum Ansteuern der LED) auf Input-Pull-Up (zum Abtasten des Tasters) entstehen würde, indem ein Hochpassfilter mit einem "ungeraden" 1,5 verwendet wird kHz oder so, so dass das Abtasten mit 100 Hz oder so den 4-kHz-Piezo nicht so stark beeinflusst.

Nachteile (beide sind akzeptabel):

  • Drücken der Taste leuchtet die LED (und leitet die Ladung von C1 auf Masse; vielleicht einen Vorwiderstand hinzufügen?)
  • Wenn Sie den Piezo mit einer 4-kHz-Rechteckwelle ansteuern, leuchtet die LED mit 50 % (vielleicht kann dies aufgrund des Filters ein niedrigerer Arbeitszyklus sein?)

Funktioniert das und kann es verbessert werden?

Wie schnell muss die LED ein- oder ausschalten?
@MarcusMüller Es ist nur eine Status-LED für Menschen: Die sichtbare Frequenz zum Blinken würde im 1-Hz-Bereich liegen, daher sollte der Übergang nicht länger als vielleicht 0,1 s dauern.
Siehe LED- und Tastenmatrix-Multiplexing? für einen anderen Ansatz, um möglicherweise zu wenige Pins in derselben Situation zu umgehen.

Antworten (1)

Sie können natürlich, anstatt die LED direkt anzusteuern, einen hochohmigen Tiefpassfilter hinzufügen, der ein Schwellwertelement ansteuert (z. B. einen Transistor, einen Komparator mit einer Referenz oder eine elegant angeschlossene Diode), der wiederum die LED ansteuert.

                                     +3.3V
                                       |
                                       R
                                       |
                                      LED
     +----High Pass----Piezo---GND     |
GPIO-+----------------Switch---GND   |/
     +----R_large---+----------------| 
                    |                |\
                    C                  v
                    |                  |
                   GND                GND