De hecho, un enfoque sería utilizar las capacidades PWM de su controlador. Puede generar una forma de onda PWM utilizando la función analogWrite ().
Parámetros para su función:
pin: el pin para escribir.
valor: el ciclo de trabajo: entre 0 (siempre desactivado) y 255 (siempre activado).
Por lo tanto, si su ciclo de trabajo es de 255, significa que tendrá 5V, para el ciclo de trabajo de 3.3V debe estar cerca de 168.
Sin embargo, recuerde que "en la mayoría de las placas Arduino (aquellas con el ATmega168 o ATmega328), esta función funciona en los pines 3, 5, 6, 9, 10 y 11".
Todo lo que necesita saber sobre este asunto, puede encontrar aquí enlace
De todos modos, no olvide que cuando se trata de LED: la polaridad es importante y también debe (en realidad debe) tener una resistencia en el circuito para que la corriente sea limitada.
Solo una cosa más: analogWrite, como ya sabrá, no usa el convertidor de digital a analógico, usa las capacidades PWM de su controlador. Esto es solo para tu información :)
Con respecto al tema que mencionó "Para evitar la energía / calor innecesarios (incluso si no es demasiado)", como Olin mencionó anteriormente, encienda sus LED a bajas corrientes.
Para un LED estándar 20mA sería el valor nominal. Sin embargo, 20 mA es la salida máxima "recomendada" para las salidas de su controlador :)
Solución: si cree que 15 mA está bien para el LED y está planeando alimentarlo a 5 V (desde un pin de salida digital) y teniendo en cuenta que la tensión de diodo directo es, como usted dijo, 3.3 V, use esto aquí enlace y verá que necesitará una resistencia de 120 Ohmios :) Un valor mayor daría como resultado un LED menos brillante. y un valor menor a uno más brillante, pero tenga en cuenta que una resistencia de valor demasiado bajo hará que su puerto de controlador sea ... frito :)
¿Planea usar muchos LEDs? Intente un enfoque de matriz de LED, de cualquier manera creo que lo que quiere es la versión de resistencia, no la PWM.
Buena suerte y todo lo mejor, lo siento por el inglés oxidado,
Dan