Tengo el siguiente circuito para condicionar las señales que llegan a los pines de mi microcontrolador.
Este circuito lee tanto las señales digitales en el rango de 0 a 30 V como las señales analógicas en el rango de 0 a 3.3 V.
Explicación de los componentes
-
R2 y R3 nunca se llenan al mismo tiempo. Son resistencias pull-up / down para señales digitales.
-
R1 tiene una doble función. Por un lado, es parte del filtro RC junto con C1, y por otro lado es un limitador de corriente para el D1.
-
D1 solo se asegura de que la tensión (en señales superiores a 3.3V) se fije, protegiendo la unidad de medida.
Sin embargo, el diodo zener D1 crea un problema. Si elijo un zener 3V6, entonces un voltaje más alto que el deseado alcanzará el uC. Si elijo un zener 3V3, entonces las señales analógicas débiles tienden a ser más rápidas (es decir, el zener comienza a conducir una pequeña corriente antes que su voltaje nominal). Para empeorar las cosas, incluso si de alguna manera pudiera asegurarme de que la tensión se fije a exactamente 3V3, y por cualquier motivo, Vcc, incluso sea un poco menor que 3V3, el ADC informará el resultado incorrecto.
Lo que necesito aquí es un circuito que sujetará el voltaje exactamente a Vcc, con una transición brusca para que no afecte el rango ADC.
¿Alguna idea?