Controlador LED ATtiny25 PWM con control de brillo

Construiré una pieza de joyería LED RGB para un regalo. Es básicamente un par de auriculares con uno o dos LED RGB en cada uno, con un pequeño controlador PWM basado en ATtiny25 en un gabinete pequeño.

Probablemente podré diseñar el firmware yo mismo; sin embargo, dado que voy a tener unas pocas pulgadas de cable en cada teléfono, necesito algún tipo de controladores LED, y ahí es donde no estoy seguro de cómo proceder.

La idea básica es que todos los LED muestren el mismo color en un punto dado. La MCU se desvanecerá a través de todos los colores en secuencia usando el software PWM. Sin embargo, también me gustaría implementar un control para el brillo general de los LED (una vez que el ruido ambiental supera cierto nivel, comienza a pulsar junto con él, como un medidor VU). Estoy pensando en un MOSFET de 'brillo' impulsado por PWM para controlar el voltaje de la fuente (?) a los otros tres MOSFET de 'color'. ¿Es este el camino a seguir?

Tengo muchos BS170 y no mucho más en forma de FET (BF245, 2N5457 JFET), así que probablemente eso sea lo que usaré. Estoy pensando en usar SMD total en esto... De todos modos, solo tengo el tiny25 en SOIC.

Probablemente desee hacer la mezcla en el software en lugar de eléctricamente para mantener la cuenta regresiva de las partes y el circuito simple. También tenga cuidado con la posibilidad de que los pulsos de corriente de su LED causen interferencias en los auriculares, ya sea directamente o al conectarlos nuevamente al dispositivo fuente.
Sí, la mezcla de software es la otra opción que estoy considerando. Tendré que asegurarme de que la frecuencia PWM esté por encima del rango de audio. Gracias por el recordatorio.
¿Qué tipo de poder estás buscando? ¿Debería esto dominar la bola de discoteca y la luz estroboscópica en el club (lo siento, amigo) y el sol cuando sale, o debería brillar suavemente en el interior? De acuerdo con la Figura 17-20, Voltaje de salida del pin de E/S frente a corriente de sumidero (VCC = 3V) , el ATTiny debería poder hundir 5 mA sin ningún problema, lo que debería ser suficiente para que la mayoría de los LED RGB de 5 mm brillen bien.
@KevinVermeer: ​​ciertamente no dominar las luces de la discoteca o el sol, pero ser visible entre las luces tenues. Sin embargo, la MCU no podrá controlar cuatro LED por sí sola...

Respuestas (2)

Aquí hay otra idea para agregar a las buenas sugerencias propuestas por otros. Si va a usar LED RGB, debe considerar los requisitos de suministro de energía del dispositivo. Los LED azules en el paquete de LED RGB tienen un requisito de alto voltaje directo, por lo que necesitará una batería de litio de 3,6 voltios o una batería de 9 voltios. La batería de 3,6 voltios es apenas adecuada para un LED azul; supongamos que selecciona su resistencia limitadora de corriente en función de este voltaje nominal y el voltaje disminuye unas décimas de voltio a medida que la batería se descarga; los LED azules perderán brillo rápidamente. Terminas condenando a tu SO a llevar una batería de 9 voltios toda la noche, o varias baterías de 3,6 voltios en serie, lo cual es voluminoso.

El ATTiny estándar es bueno para 10 mHz a 2,7 voltios y tiene dos canales PWM y cuatro convertidores AD. Será un problema solo controlando un par de LED; debería haber mucho espacio de código disponible para usar el segundo canal PWM para implementar un convertidor de refuerzo simple. El convertidor puede tomar un voltaje de batería apenas adecuado y aumentarlo/regularlo para mantener estable la salida de luz de un LED azul a medida que la batería se descarga. Esto abre todo tipo de posibilidades para las baterías ligeras; podría usar 2 alcalinas triple A, por ejemplo, para una vida realmente larga. Hay otra ventaja de este esquema: puede modular dinámicamente el voltaje de la fuente de alimentación del LED según los LED que se utilicen. Cuando los LED azules estén encendidos, suba el voltaje hasta el nivel necesario para darles el brillo requerido. Cuando están apagados, deje caer el suministro justo por encima del voltaje de salida de la batería para los LED rojo y verde. Esto debería proporcionarle un importante ahorro de energía.

Si encuentra que cuando usa un suministro de 3 voltios, el ATTiny estándar se oscurece bajo algunas condiciones cuando se alimenta directamente de la batería o las baterías, podría intentar usar la parte de bajo voltaje, o podría configurarlo para que el voltaje directo de la batería solo lo pone en marcha y luego ejecuta el chip desde el suministro aumentado.

¡Gran idea! ¿Puede indicarme algún material sobre convertidores CC/CC? Preferiblemente algo que pueda modificar y usar de inmediato, ya que me temo que no tengo mucho tiempo para investigar y probar/error... :/ He estado considerando alimentar el circuito desde varias celdas 2032 en serie, que luego se convierten al voltaje requerido, pero no tengo idea de cuánto durarían o qué tan eficientes serían. ¿O tal vez una sola celda AA de 1,5 V aumentó a 5 V? Hay un montón de posibilidades.
Aunque 1.5V requeriría un convertidor de CC externo, ya que la MCU no se encenderá con este voltaje...
Puede obtener un voltaje lo suficientemente alto apilando CR2015: el resultado cabe en un soporte de batería CR2032.
No creo que el CR2032, CR2015, etc. tengan suficiente densidad de energía para impulsar el proyecto durante una larga noche de discotecas.

Ficha técnica de ATTiny25 aquí .
6 pines de E/S

Si conduce LED RGB, necesita al menos 3 voltios y preferiblemente más.

Los LEDS deben ser controlados por corriente, no por voltaje. Tratar de controlar los voltajes conducirá a un voltaje masivo: brillo no lineal.

Tratar de hacer un control de brillo general es factible, pero dados los pines limitados y más, esto requiere una solución de software.

Como todos los LED tienen el mismo color y brillo en un momento dado, el control RGB necesita 3 pines.

  • Los LED se alimentan de una fuente de voltaje a través de una resistencia o una fuente de corriente constante de modo que, cuando están encendidos, funcionan con el brillo total deseado para ese LED. Eso establece una corriente máxima que luego enciende / apaga PWM para variar la corriente.

  • PWM LDs on/off so = brillo máximo o apagado.

    • Ajuste los ciclos de trabajo de PWM entre sí para obtener el color deseado.
  • Luego multiplique cada ciclo de trabajo PWM por un factor de escala de brillo común.

  • por ejemplo, supongamos que tiene PWM de 8 bits y una mezcla de colores requiere brillos de 8:3:5.
    Max PWM a pleno brillo es de 255 cuentas, digamos. Entonces,
    8 canales se configuran en 255.
    3 canales se configuran en 3/8 x 255 = 86 cuentas.
    5 canales = 5/8 x 255 = 159 conteos.

El LED es ahora tan brillante como puede ser en ese color.
Si se desea un brillo relativo del 10%, puede escalar los recuentos de PWM a 26, 9, 16

Esto significa que el brillo máximo disponible variará con el color.

  • Lo siguiente está escrito a toda prisa.
    Se cree que el concepto es sólido, pero puede ser muy difícil de entender. Pregunte si no está claro.

Si desea un brillo constante para todos los colores, deberá limitar el brillo que las combinaciones pueden lograr a no más del máximo alcanzable por cualquier color por sí mismo = 255 recuentos. Como, por ejemplo, el rojo es n = más ineficaz que el azul, esto podría significar que el conteo máximo del rojo es, digamos, 150 conteos, pero el azul máximo = 255

Un mejor método puede ser ajustar las fuentes actuales por color para el brillo máximo en orden inverso de eficiencia, de modo que cuando el 100 % de cada color tenga el mismo brillo, todos tengan el mismo brillo.

Por ejemplo, digamos que los brillos relativos a la misma corriente para RGB son 10:6:4 (compuestos), luego establecer las corrientes de brillo completo en la relación inversa le permite tratar a cada uno de la misma manera con respecto al controlador por brillo. por ejemplo,
Rojo = 6ma,
Verde = 10mA,
Azul = 15 mA
o 12,20, 30 mA o lo que sea.

ENTONCES, el brillo máximo por LED con los 3 encendidos no debe ser más de 85 recuentos cada uno = 3 x 85 = 255 recuentos sumados, ya que ninguno puede ser> 255 por sí mismo. Tan rojo completo = 255 0 0.

Estos pueden reducirse aún más mediante PWM ing para el control de brillo.


Si puede obtener 3 juegos de unidades LED, usted y su amado no se arrepentirán. Esto permite una acción de persecución ligera con colores que rezuman a lo largo de collares, etc.

Hace años hice un proyecto de ir a terminar en menos de una hora que tenía un LED de unidad PIC en un halo de ángel con envoltorio de oropel y respaldo de batería. LED todos del mismo color pero accionados como cazadores de luz. Programa básico escrito en minutos ciclado a través de flash, rodar a la izquierda, rodar a la derecha, etc. Halo usado como prenda de vestuario por mi hija para una fiesta. Un poco tenue en la luz de la habitación pero efecto fantástico en la pista de baile. Ese plus de color!!!!!!!!

Los 6 IO de ATTiny permiten 3 x 3 mux = 9 = 3 juegos o podría agregar un IC de E/S pequeño.