¿Cómo aislar el microcontrolador de la fuente de alimentación?

Soy bastante inexperto en ingeniería eléctrica, así que perdone la pregunta simple. Usando un microcontrolador (Netduino) y dos registros de desplazamiento de 8 bits (entrada en serie, salida en paralelo), controlo 16 LED.

La lógica funciona bien, esperaba que el registro de desplazamiento y las luces no funcionaran cuando no conecto la fuente de alimentación auxiliar y encendí el microcontrolador. En este momento, el microcontrolador está alimentando todos los LED y no quiero eso.

Aunque el esquema no es perfecto, aquí está mi circuito: las resistencias son de 220 ohmios +/- 10%. Los registros de desplazamiento son SN74HC595 s.

ingrese la descripción de la imagen aquí

Sé que podría agregar transistores NPN en cada una de las salidas del registro de desplazamiento, pero eso requeriría bastantes transistores y, lo que es más importante, el microcontrolador seguiría alimentando el registro de desplazamiento.

Intenté usar transistores en los pines 1-3 del microcontrolador, pero los LED aún se encendían sin la fuente de alimentación externa.

Como punto secundario, sé que debería agregar uno/algunos condensadores, pero no estoy exactamente seguro de dónde, además de uno grande alrededor de la fuente de alimentación.

Editar: aquí está el esquema adaptado, en el que las salidas activan un transistor para cada LED. No reproduje el transistor para cada LED, pero se supone que de Qa a Qh en ambos registros de desplazamiento, es lo mismo:ingrese la descripción de la imagen aquí

El microcontrolador no está alimentando el registro de desplazamiento, sin embargo, el circuito de suministro de energía en su placa de circuito netduino puede estarlo, ¿posiblemente con energía proveniente de un host USB conectado? La primera mejora que podría hacer es la alimentación externa, la segunda es girar los LED y controlar sus cátodos, ya que los controladores de lado bajo suelen ser más capaces.
También debe bajar los pines ~OE para habilitar correctamente las salidas.
@Nedd: Sí, eso es un error en mi esquema. Los OE están realmente conectados a tierra.
@ChrisStratton: Sé que el microcontrolador no genera energía. En el esquema no incluí el puerto USB del microcontrolador y la computadora a la que está conectado. La fuente de alimentación de CC en el esquema es otra fuente de alimentación. No estoy seguro de lo que quieres decir con "conducir sus cátodos". ¿Debería simplemente voltearlos, conectando su ánodo a la resistencia y el cátodo a tierra?
Voltear los LED no es una buena idea. Las salidas son de lógica positiva, normalmente una salida sube a la vez. Al invertir los LED, se encenderán todos menos uno, y la corriente total puede quemar el chip. La corriente total para el chip aparece como 70ma.
@Nedd: 70 ma? ¿Eso realmente significa que debo usar transistores en cada una de las salidas, y solo una corriente mínima a través del Vcc del registro de desplazamiento?
¿Es el voltaje de su batería a los chips de registro de desplazamiento igual al voltaje en el microcontrolador? Si es muy diferente, esto podría ser parte del problema.
Podría duplicar el valor de las resistencias y lo más probable es que todavía tenga un brillo moderado. Como se muestra, parece que solo desea encender un LED a la vez, los valores de resistencia actuales funcionarán aunque la corriente esté por encima de los 6 ma por E/S enumerados. (El límite de 6ma es para un voltaje lógico utilizable en la E/S, la activación de un LED no requiere voltajes lógicos estándar).
El microcontrolador emite 3V ish, y probé mi fuente de CC normalizada tanto en 3.3V como en 5V. (Estoy usando esto: sparkfun.com/datasheets/Prototyping/… )
@Nedd, No, las salidas tienen cualquier software de sentido que esté escrito para cargarlas.
Tal vez mi respuesta en otro post te pueda ayudar.

Respuestas (1)

Si el microcontrolador está funcionando con 3v y los registros de desplazamiento están a 5v, eso podría ser un problema. Según la especificación, los chips de registro de desplazamiento quieren ver al menos una lógica alta de 3.15v min cuando su voltaje de suministro es de 4.5. (Un suministro de 5v requeriría niveles lógicos aún más altos). Si alimenta los registros de desplazamiento con 3v, eso debería hacer que ambos sean compatibles. ¿Hay alguna razón por la que no pueda usar la misma potencia del microcontrolador para los chips de registro de desplazamiento?

No hay ninguna razón real para que no encienda el registro de desplazamiento con el microcontrolador, es la potencia de los LED que no quiero pasar por el microcontrolador para no freírlo. El problema es que con mi esquema original, incluso si no encendía la segunda fuente de alimentación, los LED se encendían, lo que significa que la corriente fluía a través del microcontrolador, ¿no?
Si ese es el caso, podría usar un convertidor de nivel
Como se muestra, el microcontrolador solo proporciona señales lógicas a los registros de desplazamiento, eso no es mucha corriente. Si el circuito funciona como creo que pretende, solo habría un LED encendido a la vez, incluso eso sería solo 14ma como máximo, (@ 5v). Eso puede ser fácilmente suministrado por una pequeña batería o la conexión USB. Antes de conectar los LED o cualquier transistor, puede probar la operación con una sonda lógica (si el tiempo es lento) o con un alcance en cada entrada/salida. Compare las señales en todas las entradas y salidas con el diagrama de tiempo típico en la hoja de datos del registro de desplazamiento.
Si el circuito original tenía todos los LED encendidos al mismo tiempo, podría considerar que los LED se insertaron al revés para empezar. (Otra posibilidad es que los chips del registro de desplazamiento ya estén quemados).
Con el programa que escribí, el IO que envía al registro de desplazamiento puede encender de 0 a 16 LED al mismo tiempo. Lo estoy probando con LED por el momento, pero en un momento, quiero controlar los servos con los registros de desplazamiento.
Estoy leyendo sobre resistencias pull up/down en este momento, y supongo que debería tener algunas para asegurarme de que la lógica siempre funcione de la manera que pretendo.