Arduino, NPN y RGB de cátodo común

Estoy tratando de diseñar un sistema de luz ambiental usando 4 LED RGB que serán alimentados por una fuente externa de 9V y un Arduino para su procesamiento.

Enlace al archivo Fritzing

ingrese la descripción de la imagen aquí

Lista de:

Como puede ver, lo que he intentado hacer es:

  • conecte cada cátodo común de LED a tierra
  • 9V a cada colector (R)(G)(B)
  • Salida Arduino PWM a cada base (R)(G)(B)
  • emisor a cada ánodo (R)(G)(B)

Lo que esperaba es que la salida PWM de Arduino regulara el voltaje de los emisores entre 0 ~ 9V y, por lo tanto, pueda atenuar el LED con mis potenciómetros.

En cambio, lo que obtuve es que el voltaje es 0,7 V inferior al que recibe la base de Arduino y se ignora el voltaje suministrado al colector. De hecho, incluso puedo desconectar la batería de 9V y los LED seguirán encendidos.

De una pregunta anterior , ¿creo que este es un comportamiento de emisor-seguidor?

¿Hay alguna manera de volver a cablear esto y obtener el comportamiento esperado? O tendré que conseguir algunas partes diferentes. Me dieron los LED incorrectos (cátodo común en lugar de ánodo) pero la tienda no estará abierta hasta dentro de unos días para obtener un reemplazo, así que estoy tratando de arreglármelas con lo que tengo.

Ignore la falta de resistencias entre el emisor y el LED. Los he omitido por simplicidad.

¿Por qué estás manejando los LED desde el suministro de 9V?
Bueno, en primer lugar, para ahorrar en pines de Arduino y, en segundo lugar y más importante, para evitar freír el Arduino al demandar demasiada energía. Estoy comenzando con 4 LED, pero probablemente agregaré más.
En su lugar, podría considerar dibujar desde el riel de alimentación de Arduino; limitar cada componente LED a 5 mA dejará espacio para una cantidad decente de LED. Aunque eso todavía no resolverá el problema de CC/CA.
Cuando hago clic en ese enlace, aparece "Descargar este archivo de forma gratuita con Tiny DM Manager (aplicación exe)", que no tengo intención de instalar. Es mejor que publiques la vista esquemática de Fritzing, debería ser mucho más clara que la vista de tablero.
Gracias Ignacio, pero ¿alguna idea para resolver el problema mencionado? No veo por qué limitaría los LED a 5 mA cuando su corriente directa continua es de 20 mA.
Lo siento Peter, acabo de encontrar el primer alojamiento gratuito que pude encontrar. ¿Había un enlace en la parte superior sin un instalador EXE cuando lo vi? Dice "Descargar: LED Lamp.fzz" y es una descarga directa. La vista esquemática es un desastre absoluto :(
La única forma real de solucionarlo es rediseñar el circuito. Reducir la corriente aumenta la vida útil de los componentes y los LED de 20 mA siguen siendo bastante visibles a 5 mA.
@Marko, ahh sí, veo el botón de descarga directa en la parte superior. Me desplacé hasta el final para ver qué más había en la página, que es donde vi el botón del administrador de descargas EXE.
@IgnacioVazquez-Abrams, estoy más feliz con la rediseñación del circuito, sin embargo, no planeo usar el Arduino como un riel de alimentación para no tener que rediseñarlo nuevamente en el futuro cuando decida que quiero LED de 10W para hacer luces navideñas ;)
Tendrás que. Destruirás esos transistores. De todos modos, ULN2803A.
@IgnacioVazquez-Abrams, por supuesto :) Ahora, dado que los voy a reemplazar de todos modos a una versión PNP, también puedo obtener los grandes papás que mencionaste.
"Como puede ver, lo que he intentado hacer es..." No, no podemos ver ya que no proporcionó un esquema. Esperar que las personas, especialmente aquellas a las que les está pidiendo ayuda gratuita, descifren ese diagrama tonto para comprender el circuito es ridículo. -1

Respuestas (2)

Las cosas relacionadas con una conmutación del lado alto de un voltaje más alto que el voltaje de control no son tan simples como parecen.
Tomemos, por ejemplo, el siguiente circuito controlado con un pin de E/S de Arduinoingrese la descripción de la imagen aquí

Cuando el pin de E/S está BAJO, el voltaje a la base será 0, eso significa que el Vbe será de 9v y como es> 0.7v, el transistor estará encendido.
Cuando el pin I/O es ALTO, el voltaje a la base será de 5v, eso significa que el Vbe será de 4v y como es >0.7v, el transistor también estará encendido.
Básicamente, esa configuración no puede funcionar como un interruptor porque el transistor siempre estará encendido.

Para hacer que un circuito como el anterior funcione correctamente, debe agregar un traductor de nivel que realmente impulsará la base con 0v y 9v (o cualquiera que sea el nivel de voltaje del colector), un circuito comoingrese la descripción de la imagen aquí

Una alternativa de un circuito de lado alto de transistor único en funcionamiento es un seguidor de emisor comoingrese la descripción de la imagen aquí

El problema es que, en este caso, el emisor seguirá el voltaje base cuando el transistor esté encendido, por lo que para el voltaje de control de 0 y 5v obtendrá una salida de 0 y 4.3v sin importar el voltaje conectado al colector (dentro de las especificaciones del transistor, por supuesto) que puede que no se adapte a su aplicación específica.

Otra alternativa es usar un dispositivo como ULN2003/2803 pero destinado a la conmutación lateral alta. Dicho dispositivo es UDN2981 que tiene 8 controladores de fuente como los siguientes y se puede usar como un interruptor lateral alto controlado por lógica de nivel TTL.ingrese la descripción de la imagen aquí

Hola Alexan, gracias por tu respuesta. Con su primera sugerencia (usando un traductor de nivel), ¿podría proporcionar un poco más de información, es decir, tipos de transistores para usar? gracias de nuevo
@Marko No hay criterios de selección específicos para el circuito mostrado, siempre que los dispositivos cumplan con las especificaciones. La corriente NPN será muy baja, solo unos pocos mA, si no tiene ninguna disponible, puede optar por 2N2222 , que es muy común. La corriente PNP dependerá de su carga, para los LED que describe es de 20 mA, por lo que estará dentro de las especificaciones de cualquier PNP que elija, por ejemplo, 2N3904 . Las resistencias, elegiría algo como R1 = 4K7, R2 = 1K, R3 = 10K, pero también funcionarán diferentes valores.

La solución más rápida es usar transistores PNP para la conmutación del "lado alto" e invertir su sincronización PWM. Guardo una bolsa de 50 o 100 2N3904 (NPN) y 2N3906 (PNP) para estas situaciones.

Hay una buena explicación aquí Cambiando 9V usando un transistor NPN y un Arduino

Puede intentar usar un suministro dividido. Retire los puentes de los LED a tierra. Tome una segunda batería de 9V y conecte el terminal + a la tierra de su sistema y el terminal - al común de los LED. Esto forma un suministro de más y menos 9 V y permite que los LED extraigan corriente desde "por debajo de 0 V". Mueva sus resistencias de límite de corriente al lado del colector de las NPN. Creo que esto funcionará, y si no, no debería doler nada.

Gracias por eso. El enlace que publicaste era para mi pregunta anterior y, aunque obtuve la primera respuesta, todavía me quedé atascado. Seguiré adelante y compraré transistores PNP y los probaré. ¿Es seguro asumir que solo necesito reemplazar los transistores e invertir el código PWM? ¿Todo lo demás debería funcionar?
Sí, sus resistencias de límite de corriente ya están entre el transistor y el LED, lo que será correcto para el PNP. experimentaría. Vea si los LED se apagan por completo cuando la señal digital es alta y si los transistores se calientan o calientan. Mida la caída de voltaje a través del transistor cuando está en el estado APAGADO (señal alta). Esto puede significar que no está realmente APAGADO y que está dejando caer la mayor parte de la V a través del transistor. Si la caída entre el transistor y la resistencia es de alrededor de 5 a 7 voltios (depende del color del LED rojo), el diodo se apagará.