Botones de disparo con un diodo

novato total aquí. Estaba leyendo esta publicación:
http://dduino.blogspot.com/2012/02/trigger-buttons-with-arduino.html

Básicamente está tratando de activar un botón en un IC desde un pin arduino (verde).

ingrese la descripción de la imagen aquí

Entiendo cómo funciona el segundo método, simplemente pasa por alto el botón de un lado al otro usando el transistor como interruptor, aunque no estoy seguro de para qué sirve la resistencia. No estoy seguro de entender cómo funciona el primer método. Entiendo que la acción se activa cuando el pin IC está conectado a GND.

Ahora, creo que el pin arduino está conectando el diodo a un pin como salida baja (¿0V? ¿GND?) Y eso activa el pin IC a GND para que se tome la acción. Para apagarlo, configura el pin arduino en Entrada y simplemente funciona. ¿Cómo?

¿Funcionará esto si el IC y el arduino están conectados a diferentes fuentes de energía?

Respuestas (2)

La publicación del blog no dice qué es el IC, pero si es un CMOS IC (un IC lógico o un microcontrolador), el pin necesita una resistencia pull-up. 100k Ω es un buen valor. Si no coloca la resistencia, la entrada no estará definida cuando el interruptor esté abierto. La resistencia hará que la entrada sea alta.

Primero el transistor. Un transistor PNP tiene dos flujos de corriente: una corriente pequeña del emisor a la base y una corriente (posiblemente) más grande del emisor al colector. La corriente emisor-colector normalmente será un múltiplo de la corriente emisor-base, pero puede estar limitada por componentes externos. La relación de corriente está definida por el transistor H F mi , que a menudo es más de 100 para transistores de señal pequeña. Entonces, 1 mA del emisor a la base permitirá 100 mA del emisor al colector.

La unión emisor-base es en realidad un diodo y tiene la misma caída de voltaje que un diodo común a bajas corrientes, alrededor de 0,7 V. Entonces la base estará en 2.3V (3V - 0.7V). Si conecta el Arduino sin la resistencia y hace que su salida sea baja, tiene un problema. Conectaría directamente un punto a 2,3 V con otro punto a 0 V, lo que significa un cortocircuito, y la alta corriente puede dañar su Arduino y el transistor. Al colocar una resistencia limitas la corriente. un 2200 Ω la resistencia lo limitará a aproximadamente 1 mA (2,3 V / 2200 Ω = 1mA). Entonces, una salida baja en el Arduino permitirá que fluyan un mínimo de 100 mA al colector. Sin embargo, la impedancia de entrada del IC será muy alta y la corriente real se limitará a unos pocos m R. Sin embargo, eso es suficiente para hacer que el voltaje del colector esté cerca del emisor, tan cerca de 3V, y la entrada del IC será alta. Nota: al igual que el otro esquema necesita una resistencia pull-up, este necesita una resistencia pull-down para tener un nivel definido cuando el interruptor está abierto.
Si la base del transistor es alta, no habrá corriente de base, por lo tanto, no habrá corriente de colector, y la resistencia desplegable bajará la entrada del IC. Nota: entiendo que el Arduino funciona a +5 V, luego hacer que la salida sea alta hará que la base sea 2 V más alta que el emisor. Normalmente no desea hacer eso, porque la unión emisor-base solo puede sobrevivir a un pequeño voltaje inverso. Sin embargo, 2V seguirá siendo aceptable.

Luego el diodo. Si la salida del Arduino es alta, no hay caída de voltaje en el diodo, por lo que no conducirá ninguna corriente y el pull-up hará que la entrada sea alta. Si la salida del Arduino es baja, fluirá corriente de +3V a través de la resistencia pull-up y el diodo a tierra. El ánodo del diodo estará aproximadamente 0,7 V por encima del cátodo, por lo tanto, a 0,7 V. La mayoría de los circuitos integrados lógicos verán esto como un nivel bajo.

La razón por la que necesita el diodo: si conectara directamente el IC al Arduino con la salida de Arduino alta, cerrar el interruptor provocaría un cortocircuito en la salida a tierra.

En el segundo método, tiene razón, el transistor simplemente actúa como un interruptor. La resistencia se requiere (casi) en la base (entrada) de un transistor de unión bipolar como ese. Un BJT es básicamente un amplificador de corriente. Inyecta una pequeña corriente en la base (a través de la resistencia) y permite un flujo de corriente mucho mayor desde el colector al emisor. Demasiada corriente en la base dañará el transistor y el arduino.

El primer método es más sutil. El interruptor tiene dos estados:

  • Cerrado. Esto atrae fuertemente el pin IC a tierra.
  • Abierto. Esto permite que la resistencia interna del IC jale el pin suavemente a 5v.

Ahora, puede conectar el Arduino directamente al pin IC. La salida Arduino tiene dos estados:

  • Bajo. Tira fuertemente hacia el suelo.
  • Alto. Tira fuertemente a 5v.

El problema viene si presionas el botón mientras la salida de Arduino es alta. Ahora tienes el botón tirando fuertemente a tierra, y el Arduino tirando fuertemente a 5v. Este es un cortocircuito y explotará el pin de salida del Arduino.

El diodo previene esto al cambiar el efecto que Arduino tiene en el pin IC. Ahora tu tienes:

  • Bajo. Tira fuertemente a tierra a través del diodo.
  • Alto. El diodo bloquea el alto voltaje y la resistencia interna del IC eleva suavemente el pin del IC.

Si se presiona el botón al mismo tiempo que el pin de Arduino es alto, entonces el diodo bloquea la alta corriente de cortocircuito y todo es seguro.