Aislamiento de GPIO usando diodos

0

Esquema Las flechas son de GPIO

Quiero poder cerrar varios conmutadores a la vez en cualquier orden en particular para manipular los GPIO manualmente. Podría darle a cada GPIO su propia resistencia, pero cuando cierro varios interruptores, la corriente aumentará (2, 3, 4 veces) reduciendo la vida útil de la batería. Traté de encontrar una manera en la que cada GPIO compartiera la misma resistencia y fuera derribada adecuadamente, mientras que los interruptores seguían estando aislados. ¿Funcionaría el circuito anterior?

En particular, cuando el interruptor esté abierto, el GPIO estará en el suelo como yo quiero, y cuando el interruptor esté cerrado, solo el GPIO especificado estará alto.

    
pregunta Alex

2 respuestas

1

No, tu circuito no funcionará como deseas.

Cuando cualquier interruptor está cerrado, el diodo asociado tirará de la unión entre los diodos y la resistencia hasta aproximadamente Vcc - 0.7 voltios, dejando las entradas GPIO no seleccionadas en un estado desconocido (pero quizás, debido a una fuga en los diodos, las entradas no seleccionadas pueden aparecer como Altas.)

    
respondido por el Peter Bennett
2

Además del análisis de Petre, piensa en esto por un momento. Si su circuito funcionara, su R1 sería lo suficientemente 'fuerte' (valor lo suficientemente bajo) como para bajar 4 GPIO. Si ese fuera el caso, podría usar 4 resistencias con un valor cuatro veces más alto, para lograr el mismo efecto.

En la mayoría de los casos, la corriente muy pequeña a través de reistores pull-up no es suficiente para merecer una atención especial. Pero si lo es, un truco adecuado es habilitar las resistencias solo durante el tiempo (relativamente corto) en que desea leer los interruptores. Esto se puede hacer usando un GPIO adicional. O use los controles internos de su microcontrolador, que (en todos los casos que conozco) pueden habilitarse y deshabilitarse bajo el control de SW.

    
respondido por el Wouter van Ooijen

Lea otras preguntas en las etiquetas