PWM con oscilador no atenúa la pantalla LED como se esperaba

Tengo un intento bastante exitoso hasta ahora de manejar una pantalla LED con un Arduino Mega 2560. Las secuencias de la pantalla funcionan bien por sí solas y Arduino parece estar haciendo su trabajo al enviar los patrones. La parte con la que estoy luchando es que estoy tratando de controlar la intensidad de la pantalla con PWM. Estoy usando un temporizador NE555P basado principalmente en la información aquí: 555 Oscillator Tutorial

El objetivo final es reemplazar POT1 con un interruptor giratorio para seleccionar varias configuraciones de brillo predeterminadas a través de resistencias, así como una ubicación para una fotocélula que proporcione atenuación automática para ajustarse a la luz ambiental. Necesito un oscilador externo en lugar del PWM en la placa Arduino porque planeo usar un chip Atmega solo en lugar de todo el Arduino cuando se fabriquen más.

El problema que tengo es que no importa cómo intente regular el PWM, no tiene ningún efecto sobre el brillo de los LED. Permanecen encendidos con la misma intensidad independientemente de los ajustes del temporizador. Tengo un solo indicador LED conectado al temporizador frente a R48 que se atenúa como se esperaba sin ningún problema. Es la matriz de LED la que no parece afectada y emite con la misma intensidad independientemente del oscilador. Me parece que, dado que todo el voltaje debe estar regulado por los pulsos, tendrían que atenuarse a menos que obtengan energía de otro lugar. ¿Eso parece correcto? Intenté reemplazar el transistor 17 con un FET para ver si tal vez la velocidad de conmutación del 2N2222 no era lo suficientemente rápida, pero no hubo cambios.

¿Sería mejor usar un temporizador diferente o simplemente tengo algo mal conectado? ¿Hay alguna manera de aislar mejor el voltaje en la matriz de LED? Estoy bastante perplejo en cuanto a por qué los LED no se ven afectados por el PWM. En el esquema, la conexión al Arduino Mega2560 está representada por las etiquetas "Digital". Se agradece cualquier aporte, he intentado cambiarlo pero no he tenido ningún éxito. Actualización: he realizado cambios en el esquema en función de algunas sugerencias útiles. Sin embargo, todavía no hay cambios en el brillo de la pantalla. Actualización 3:controladorC

Problemas para insertar las imágenes...

"Necesito un oscilador externo en lugar del PWM en la placa Arduino porque planeo usar un chip Atmega solo en lugar de todo el Arduino cuando se fabriquen más". ¿Eh? PWM es una parte integral del ATmega. No entiendo tu problema. Además, con su 555 solo está cambiando su frecuencia, no su ciclo de trabajo.
No, cambiar esa resistencia cambiará tanto la frecuencia como el ciclo de trabajo.
LEDs en paralelo = mal control de brillo en uno de ellos por lo general
@jippie Si tuviera que usar una oscilación generada por el ATmega, ¿seguiría usando un transistor para impulsar el voltaje positivo? No sabía que el mega ya tenía uno a bordo, lo que supongo que me facilitaría la vida. Estoy tratando de entender por qué la configuración actual no funciona si estaba tratando de hacer una configuración similar sin un arduino.
@Andyaka Estoy tratando de trabajar con una configuración existente. Sin embargo, podría ser capaz de recrear de una mejor manera. Los LED que están unidos deben permanecer juntos para funcionar con pantallas más grandes que están conectadas de la misma manera.
@HiWay, si estuviera a punto de untar un poco de mantequilla con un cuchillo sucio, se lo diría porque es lo correcto y lo correcto.

Respuestas (1)

Hay, creo, una serie de cuestiones. Prueba esto:

Reduzca C2 a 0,01 uF y aumente R47 a 10k. No mencionas el valor de tu bote, pero asumo 1k. Aumente esto a 100k y ponga 1k en serie con él. Tal como lo tiene ahora, el valor del potenciómetro es demasiado bajo para que el circuito funcione correctamente.

Luego, debe hacer un cambio importante en la salida de su transistor. Prueba algo como

esquemático

simular este circuito : esquema creado con CircuitLab

Tenga en cuenta que hay 2 salidas de LED. Divida sus LED en 2 grupos iguales y controle cada grupo con una salida. Esto mantendrá los niveles de corriente PNP dentro de las especificaciones (los 3906 solo están clasificados para 100 mA).

Alternativamente, deshágase del transistor y del R48/49 por completo. La corriente de salida para un 555 tiene una potencia nominal de 200 mA, eso es lo que dibujarán sus LED. R48 y R49 son tan bajos que de todos modos te estás acercando a eso.

Finalmente, sugeriría reducir sus resistencias base (R17 - R32) a aproximadamente 1k a 2k, solo para asegurarse de que los transistores funcionen con fuerza.

Gracias por echar un vistazo al circuito. Hice los cambios en el circuito según muchas de sus sugerencias. No tenía ningún transistor 2N3906 y en su lugar usé un Tip31 en lugar de Q1 y un TIP42 en lugar de Q2. Están clasificados en 3A y 10A respetablemente, así que solo usé uno en lugar de dos. El oscilador aún no cambia la pantalla y brilla igual independientemente de los cambios. La resistencia en línea con POT1 lo hizo más suave, gracias por eso. Intentaré publicar el nuevo esquema a continuación.
Por favor, vuelva a comprobar mi esquema. Todavía puede usar un 2N2222 para Q1, pero R54 va a la base, no al emisor, y el emisor va a tierra.
Volví a verificar, actualicé mi esquema incorrectamente. Lo lamento. Con el Tip 31 o el 2N2222 no hay cambios. Todavía está brillando intensamente. ¿Crees que el transistor sea mejor en el lado negativo de los LED para regular la tierra?
Intenté actualizar la imagen... Sigue rompiendo el enlace...
Lo primero que haría sería mirar detenidamente las hojas de datos de TIP. ¿Estás seguro de que has acertado con el orden de los pines? Si crees que es EBC, te equivocas: es ECB. Esto explicaría por qué los LED están encendidos. En segundo lugar, ¿puede encender y apagar LED individuales?
Gracias por seguirme. (con el disipador de calor hacia abajo) El esquema muestra el orden de los pines como BCE. Está protoboard de esa manera. Los LED se apagan y encienden según el patrón de parpadeo del programa Arduino. Tengo un panel de LED separado para probarlo que no es parte de la matriz de LED que tampoco se está atenuando.
Prueba esto. Corto R52. ¿Se apagan los LED? Restaurar R52. Corto R53. ¿Se apagan los LED? ¿Tienes un DMM? Si vas a hacer esto, deberías conseguir el más barato que puedas encontrar. Puedes conseguir uno por menos de $10 en eBay.
Gracias de nuevo por las sugerencias y por su paciencia. Puedo cortocircuitarlo Los LED. También tengo un multímetro bastante bueno, el RadioShack 2200039. El PWM del 555 parece estar bien y el multímetro muestra el cambio de voltaje, no estoy seguro de dónde se extrae en el lado de la matriz de LED. Intenté agregar un optoacoplador a un 2n2222 a un TIP31 también para ver si podía aislarlo aún más, pero fue en vano.
Haga lo siguiente: desconecte el R51 del 555. Conéctelo a tierra. Mida los siguientes voltajes: base de NPN, colector de NPN, base de PNP. Ahora conecte R51 a +12. Repita las mediciones. Dime que ves.
A la base del NPN: 11.44V / 2.177 Hz, Al colector del NPN: -.404v a -.416v / 2.1 a 2.5 Hz, A la base del PNP: -.415v a -.413v / 2.13 a 2.16 Hz
Por favor, haz lo que te pedí. Desconecte R51 del 555. Conecte a tierra el extremo que solía ir al 555. Medida. Conecte el extremo de R51 a +12. Medida. Realice todas las mediciones con respecto a tierra.
Lo siento, no entendí bien. Estas medidas son con los medidores conectados a tierra a la tierra de los circuitos, ¿correcto? Estoy midiendo ahora.
OK, aquí están los resultados con el medidor conectado a tierra y R51 a tierra. La base del NPN fluctúa entre 116 mV y -0,4 mV, el colector entre 12,16 V y 12,2 V y la Base del PNP también está entre 12,16 V y 12,2 V. Con R51 a +12 V y medidor a tierra: la base de NPN está en 4 mV aumentando hasta 206 mV. El colector está en 12.16V a 12.2V también en la base del PNP. Las lecturas son erráticas en la base del NPN.
Solté una resistencia, aquí están los números después de volver a conectar. La base del NPN fluctúa entre 116 mV y -0,4 mV, el colector entre 12,16 V y 12,2 V y la Base del PNP también está entre 12,16 V y 12,2 V. Con R51 a +12 V y medidor a tierra: la base de NPN está a 0,89 V aumentando hasta 1,05 V. El colector está en 250mV a 350mV La base del PNP está en 10.5V a 11.47V.
Cuando conecta R51 a tierra, ¿se apagan los LED?
Sí, se apagan cuando están en cortocircuito a tierra.
DE ACUERDO. Eso significa que si el 555 está conectado correctamente, cuando su salida sea baja, los LED deberían estar apagados. Vuelva a conectar R51 y reemplace el 555 por uno nuevo. Además, por lo que vale, debe agregar una tapa de desacoplamiento al 555. Coloque una cerámica de 0,1 uF entre los pines 1 y 8, lo más cerca posible del chip, y también un electrolítico de 10 uF. Mire la salida del 555 con su medidor, con el medidor referenciado a tierra. Varíe el potenciómetro y el medidor debería darle una lectura de voltaje variable. El brillo del LED debe variar al mismo tiempo.
Además, es posible que me haya equivocado con respecto a su condensador de sincronización. Reemplázalo por uno de 0,1 uF.
La salida varía del 555 y puede PWM un solo LED muy bien. Simplemente no afecta la matriz de LED. No estaba al tanto del condensador de desacoplamiento, también los agregaré. Tengo algunos otros circuitos con 555 temporizadores que también pueden beneficiarse. También cambié el 555 solo para ver, ya brindé algunos en este proyecto para que otro no duela jaja. También cambié el capacitor a 0.1uf. Mismo efecto. Voy a conectar el TIP31 a la salida PWM del Arduino para ver si funciona y averiguar de qué lado está el problema.
Puedo publicar los resultados si lo desea después de conectar el Arduino. Lo que más me gustará es usar un chip ATMega, así que si funciona, puedo transferirlo. Solo estaba tratando de entender por qué el concepto inicial no funcionó. Realmente aprecio todo el hombre de entrada. Usted es maravilloso.
La pantalla se atenúa bien al pasar por el arduino PWM ... Parece que pasa por el temporizador 555 de alguna manera.
¿Estás seguro de que la tierra del 555 es la misma que la del LED? ¿Es posible que no estén conectados?
Sí, son el mismo suelo. El PWM del 555 funciona bien en un solo LED, pero no en toda la matriz. El PWM del Arduino lo atenúa muy bien. La combinación de los transistores NPN y PNP funciona muy bien y permite que se apague la intensidad máxima. Con un solo TIP31 solo puedo obtener hasta un 50 % de brillo máximo.
Entonces eso es lo que se necesita para obtener la gama completa. Y es por eso que mi respuesta le dijo que cambiara su controlador de salida de NPN a PNP (con un NPN para proporcionar una unidad base adecuada).
La unidad base NPN fue el boleto. Gracias por todos sus aportes, fue realmente útil.