Encienda la computadora con microcontrolador

Estoy haciendo un circuito simple basado en un microcontrolador para encender una computadora cuando se activan ciertos eventos. Lo estoy conectando usando los pines del interruptor de encendido suave de la PC en el encabezado del panel frontal:

Encabezado del panel frontal

Hay dos pines relevantes en este encabezado, los llamaré SW+y SW-. SW-comparte la conexión a tierra del sistema de PC, aunque no estoy seguro de que siempre sea así. SW+es, en mi sistema de prueba, 3.3v por encima del suelo, aunque sospecho que podría ser más o menos.

En una computadora típica, un interruptor momentáneo NO en el panel frontal pone en cortocircuito estos dos pines cuando se presiona el botón de encendido. En cambio, quiero que esto se controle en función de una señal de nivel lógico de un microcontrolador.

Mi primer intento en un circuito de prueba es el siguiente:

circuito de prueba

Probé la polaridad de mi encabezado y me aseguré de que SW+realmente fuera el pin positivo. Mi microcontrolador se alimentaba desde USB, por lo tanto, compartía la conexión a tierra del sistema, por lo que la conexión SW-y la conexión a tierra del controlador no fueron un problema.

El circuito funcionó según lo previsto, pero obviamente no es muy bueno. Quiero que este circuito sea lo más universal posible (no dependiente del sistema). Esto plantea los siguientes problemas:

  • No se indica la polaridad ; no se puede confiar en el usuario para asegurar una polaridad específica.
  • El voltaje no se conoce exactamente ; es mejor suponer que estará entre 2 y 12 voltios.
  • El controlador debe estar aislado ; puede compartir la tierra de la computadora, pero esto no está garantizado.

La solución más simple que se me ocurre es usar un relé. Puede que termine haciendo esto, pero realmente me gustaría evitarlo debido a la confiabilidad, el tamaño y el precio.

¿Existe alguna solución basada en transistores (esencialmente como un relé) que cumpla con los criterios anteriores?

@gbulmer Esta es probablemente la mejor solución posible, aunque podría ser un poco costosa en algunas situaciones.

Respuestas (3)

Mi primera reacción es usar un optoacoplador. Eso aísla su microcontrolador de la tierra de la PC, lo cual es una buena idea. Esta solución aún requiere que el dispositivo se instale con la polaridad correcta, lo que personalmente no creo que sea gran cosa.

Tampoco creo que preocuparse por el alto voltaje tenga sentido. El botón del panel frontal será una señal de nivel lógico. Sin embargo, la salida de optos será un transistor desnudo. La mayoría puede soportar 20 V como mínimo, que seguro será suficiente.

Si realmente insiste en que la salida debe ser independiente de la polaridad, use dos optos con salidas conectadas opuestas pero en paralelo:

Verifique el voltaje de polarización inversa máximo permitido de cualquier opción que use. Estos son buenos para 6 V, lo que estará bien para un interruptor de alimentación de PC que no funcionará con una lógica de más de 5 V, probablemente menos. Este ejemplo pone alrededor de 10 mA a través de los LED y extrae alrededor de un mA de la salida lógica. Aquí no se lleva nada al límite, y la salida es independiente de la polaridad.

Si coloca un diodo en serie con un colector de transistores, es probable que esto funcione. Si alguien conectó esto al revés, colocar una resistencia de fuga de alto valor a través del transistor (tal vez 1 Mohm) protegería el transistor. Duplique este circuito para que uno de los transistores siempre funcione sin importar la polaridad y tenga una solución bipolar.

Luego deshágase de los transistores y reemplácelos con optoacopladores. Ahora tienes una solución biploar y aislante.

Pensé en usar un solo opto "encapsulado" dentro de un puente rectificador, pero creo que la caída de voltaje general (cuando está activada) puede ser demasiado grande, pero también vale la pena intentarlo.

Como mencionó @gbulmer, un relé de estado sólido funcionaría, pero la disponibilidad y el costo pueden ser un problema.

La idea del optoacoplador es buena, pensé en algo muy similar al leer sobre cómo funcionan los relés de estado sólido.
Panasonic fabrica SSR pequeños y agradables que cuestan casi nada.
@venny Para futuros lectores, terminé eligiendo esto y funcionó perfectamente.

Entonces, probé la avenida sugerida con un relevo.

Detalle adicional [el relé es un dispositivo controlado por Wi-Fi de eWeLink de Amazon. Luego, el eWelink se empareja con Amazon Alexa, lo que me permite controlar la PC desde cualquier lugar.]

Descubrí que la PC está bien con un pulso momentáneo rápido para iniciarse (p. ej., 0,5 s), pero requiere un pulso largo para apagarse (p. ej., 5 s). El problema de usar solo un relé es que el apagado funciona bien, pero el pulso lento cuando se usa para el inicio hace que la PC se inicie y luego se apague inmediatamente.

Esto parece ser un problema de rebote. Supongo que la PC puede tener un circuito antirrebote muy corto para el interruptor de encendido. Esto no es suficiente cuando se usa con el tiempo de 5s para arrancar la máquina. Por lo tanto, el uso del pulso de relé de 5 s genera múltiples pulsos que lo inician y luego inicia el temporizador largo que finaliza después de los 5 s, lo que hace que la PC se apague nuevamente.

No he probado esto, pero un contacto de relé sin rebote a 5 s con el circuito opto dual propuesto anteriormente sería la solución de Cadillac para uso universal, particularmente con la configuración de relé wi-fi basada en la web.

Esto realmente no parece una respuesta. También tenga en cuenta que no debe usar el botón de encendido para apagar una PC de forma rutinaria, sino ordenar un apagado seguro . En última instancia, el problema que parece tener proviene del uso de un controlador de relé de función fija en lugar de una MCU (como se trata realmente la pregunta) que podría producir fácilmente diferentes longitudes de pulso para diferentes propósitos.