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

0

Estoy intentando diseñar un sistema de iluminación ambiental con 4 LED RGB que funcionarán con una fuente externa de 9V y un Arduino para el procesamiento.

Enlace al archivo Fritzing

Listadepiezas:

  • 3x2n2222transistores(NPN)
  • 4x5mmLED(cátodocomún)( enlace )
  • 3 potes de 10k
  • 3 x 1k resistencias (PWM a base)

Como puede ver, lo que he intentado hacer es:

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

Lo que esperaba era que la salida PWM de Arduino regularía el voltaje de los emisores entre 0 ~ 9V, por lo que podría atenuar el LED con mis potes.

Lo que obtuve en su lugar es que el voltaje es 0.7V por debajo de lo que la base está recibiendo de Arduino y el voltaje suministrado al colector se está ignorando. De hecho, incluso puedo desconectar la batería de 9 V y los LED seguirán encendidos.

De una pregunta anterior , Creo que este es un comportamiento emisor-seguidor?

¿Hay alguna manera de que pueda volver a conectar 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 está abierta por unos días más para obtener un reemplazo, así que estoy tratando de conformarme con lo que tengo.

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

    
pregunta Marko

2 respuestas

5

Las cosas relacionadas con una conmutación lateral alta de una tensión superior a la tensión de control no son tan simples como parecen.
Tomemos, por ejemplo, el siguiente circuito controlado con un pin Arduino I / O

CuandoelpindeE/SestéBAJO,elvoltajealabaseserá0,loquesignificaqueelVbeserá9vy,comoes>0.7v,eltransistorestaráencendido.
CuandoelpindeE/SesALTO,elvoltajealabaseseráde5v,loquesignificaqueelVbeseráde4vy,comoes>0.7v,eltransistortambiénestaráencendido.
Básicamente,esaconfiguraciónnopuedefuncionarcomouninterruptorporqueeltransistorsiempreestaráencendido.

Parahacerqueuncircuitocomoelanteriorfuncionecorrectamente,debeagregaruntraductordenivelquerealmenteconduzcalabasecon0vy9v(ocualquieraqueseaelniveldevoltajedelcolector),uncircuitocomo

Una alternativa de un circuito lateral alto de transistor único en funcionamiento es un seguidor de emisor como

Elproblemaesque,enestecaso,elemisorseguiráelvoltajedelabasecuandoeltransistorestéencendido,porloquepara0y5velvoltajedecontrolobtendrá0y4.3vdesalidairrelevantedelvoltajeconectadoalcolector(dentrodelasespecificacionesdeltransistordecurso)quepuedequenoseadapteasuaplicaciónespecífica.

OtraalternativaesusarundispositivocomoULN2003/2803perodestinadoalaconmutaciónlateralalta.Dichodispositivoes UDN2981 que tiene 8 controladores de origen como los siguientes y puede usarse como un interruptor de lado alto controlado por nivel TTL lógica.

    
respondido por el alexan_e
1

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

Aquí hay una buena explicación Cambio de 9V usando un transistor NPN y un Arduino

Puedes intentar usar un suministro dividido. Retire los puentes de los LED a tierra. Tome una segunda batería de 9 V y conecte el terminal + a la tierra de su sistema y el terminal a los LED comunes. Esto forma una fuente de 9V más y menos y permite que los LED consuman corriente desde "debajo de 0V". Mueva sus resistencias límite actuales al lado del colector de los NPN. Creo que esto funcionará, y si no, no debería dañar nada.

    
respondido por el C. Towne Springer

Lea otras preguntas en las etiquetas