Por lo general, no es una buena idea conducir directamente un LED desde el pin IO de un microcontrolador sin resistencia. Sin embargo, hay advertencias:
- El pin IO tiene una corriente máxima que puede generar. Eso limita lo que el LED puede obtener
- Extraiga demasiada corriente del pin IO y se sobrecalienta y se quema
- Permitir demasiada corriente a través del LED y se sobrecalienta y se quema
Los chips ATMega generalmente tienen un máximo de 40 mA por pin, con un máximo recomendado de no más de 25 mA. Un LED típico tiene una corriente de estado estable de alrededor de 20 mA. Pero, los LED también suelen tener un límite de corriente de pulso .
Por ejemplo, un LED rojo barato de 3mm tiene una corriente directa máxima de 30mA y una corriente de pulso de 100mA con un límite de ciclo de trabajo del 10% y un tiempo de activación inferior a 100µs.
Entonces, pulsando el LED a una corriente más alta (por ejemplo, 40 mA), siempre que se encuentre dentro de un ciclo de trabajo del 10%, y los pulsos tengan una longitud inferior a 0.1 ms (lo que significa una frecuencia PWM [50% de servicio] de no menos de 1000Hz) estaría dentro de las especificaciones del LED.
¿Qué efecto tendría en el pin IO? Bueno, con el paso del tiempo, el sorteo actual sería alrededor de una décima parte del pico, ya que solo está activo durante una décima parte del tiempo. Sin embargo, eso no significa que disipe una décima parte del poder. La mayor parte del poder se disipa durante el cambio, y con todo ese cambio adicional en marcha, va a disipar mucho más poder. Eso puede, o no, dependiendo de cómo se construya el pin, anular los beneficios de la pulsación.
De cualquier manera, todavía es una buena práctica incluir una pequeña resistencia. No para proteger el LED, sino para proteger el pin IO. Solo lo suficiente para mantener la corriente por debajo del máximo absoluto para el pin IO.
Editar:
No me di cuenta de que estás usando un BJT. Sin embargo, lo anterior sigue siendo válido, pero con pequeñas diferencias:
- Debería usar una resistencia para limitar la corriente al límite de corriente de pulso para el LED, o
- Debería usar el BJT para establecer la corriente controlando la corriente desde el pin IO que la controla.