Semáforo usando un pin del microcontrolador

3

Estoy tratando de hacer un semáforo usando LEDs verdes y rojos, controlados por un pin arduino. La idea es cuando el pin está bajo. El LED rojo está encendido y el LED verde está apagado, cuando el pin está arriba. El LED verde está encendido y el LED rojo está apagado.

Así que he hecho el circuito usando dos transistores y en el software de simulación todo parece estar bien, pero en la práctica el LED rojo (a la derecha de la imagen) aún brilla débilmente cuando está encendido el verde (a la izquierda).

En los diagramas se puede ver que todavía hay una pequeña corriente a través del LED rojo, cuando el pin está en estado hacia arriba.

¿Hay alguna idea de cómo lidiar con esta corriente?

    
pregunta Stepan

4 respuestas

2

Dos palabras: fuente, sumidero.

El pin de salida de un arduino es capaz de abastecerse (suministrar una corriente de salida) así como hundirse (tomar una corriente en la salida y bajar a tierra). Consulte enlace

No necesita ningún transistor para cambiar los LED.

En este circuito, cuando la salida es BAJA (cerca de 0 V), el LED verde estará encendido, el rojo estará apagado. Cuando la salida es ALTA (cerca de 5 V) el LED rojo está encendido, el verde está apagado.

Las resistencias limitan la corriente de fuente / sumidero a un valor seguro.

    
respondido por el JIm Dearden
2

En aras de la integridad: si desea proporcionar más corriente de la que puede entregar su MCU, aún puede usar dos transistores, pero esta vez una NPN y una PNP. NPN en este caso funciona como un interruptor no inversor, PNP está invirtiendo.

Nota: Esto solo funciona si su voltaje Drive (pin MCU) va de 0 a 5V. No es un problema con la ATMega.

simular este circuito : esquema creado usando CircuitLab

    
respondido por el Dzarda
1

Parece que tienes una fuga de voltaje desde el 5V a través de la segunda base del transistor hasta el emisor, lo que te da un débil resplandor (similar al problema que enfrenté en este post ). Como la corriente del Arduino es suficiente para alimentar 1 LED a la vez (con una resistencia de ~ 300-470Ohm), puede usar el circuito de mi publicación para hacer que todo funcione. Te guarda un transistor :)

EDITAR: El circuito completo que debes implementar (tu pin Arduino va donde está IN1, y debes reemplazar la fuente de 9V con tu fuente de 5V o con otro pin del arduino) es esto (de esta publicación ):

simular este circuito : esquema creado usando CircuitLab

TENGA EN CUENTA que esto asume que el LED1 es rojo y el LED2 es verde, por lo que tendría que invertir su lógica pin en el Arduino.

    
respondido por el Phil B.
1

Una buena manera de lidiar con esto es dejar de colocar los LED en la parte emisora del circuito. En su lugar, coloque los LED en la parte del colector del circuito en serie con las resistencias de límite de corriente.

Otra cosa a considerar es que si el pin MCU tiene una capacidad de unidad adecuada y un cambio de voltaje de 5V, puede considerar simplemente conectar los LED de la siguiente manera:

    
respondido por el Michael Karas

Lea otras preguntas en las etiquetas