¿Un pin GPIO para LED, pulsador y zumbador a través de un filtro de paso alto?

¿ Hay Pin como entrada (para un interruptor) y salida (para LED) con ATmega32U4? pero también necesito uno de los seis pines para controlar un zumbador piezoeléctrico. Debido a su naturaleza capacitiva, pensé que también podría conectarse al GPIO (no tiene efecto en las señales de CC):

esquemático

simular este circuito : esquema creado con CircuitLab

La idea era suprimir el ruido, que probablemente se originaría al cambiar el GPIO de salida baja (para controlar el LED) a entrada pull-up (para muestrear el botón), usando un filtro de paso alto con un "extraño" 1.5 kHz más o menos, por lo que el muestreo a 100 Hz no afecta tanto al piezoeléctrico de 4 kHz.

Inconvenientes (ambos son aceptables):

  • al presionar el botón, se enciende el LED (y se descarga la carga de C1 a tierra; ¿tal vez agregar una resistencia en serie?)
  • conducir el piezoeléctrico con una onda cuadrada de 4 kHz enciende el LED al 50 % (¿quizás esto puede ser un ciclo de trabajo más bajo debido al filtro?)

¿Funciona esto y se puede mejorar?

¿Qué tan rápido necesita que el LED se encienda o se apague?
@MarcusMüller Es solo un LED de estado para humanos: la frecuencia visible para parpadear estaría en el rango de 1 Hz, por lo que la transición no debería demorar más de 0.1 s.
¿Ver LED y multiplexación de matriz de botones? para un enfoque diferente para posiblemente trabajar con muy pocos pines en la misma situación.

Respuestas (1)

Por supuesto, puede, en lugar de controlar directamente el LED, agregar un filtro de paso bajo de alta impedancia, controlar un elemento de umbral (por ejemplo, un transistor, un comparador con una referencia o un diodo elegantemente conectado), que a su vez controla el LED.

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