Paso 7: Se desvanecen LEDs con AnalogWrite
A veces queremos controlar el brillo de un LED, en ese caso podemos usar un comando llamado analogWrite(). analogWrite funciona girando un LED encendido y apagado muy rápido, tan rápido que nuestros ojos no perciben el parpadeo. Si un LED pasa mitad de su tiempo libre y la mitad de su tiempo, entonces aparecerá la mitad tan brillante. Esta técnica se denomina modulación de anchura de pulso (PWM), se utiliza una y otra vez en la electrónica ya que nos permite controlar un componente de una manera "analógica" utilizar un pin digital. No todos los pines digitales de Arduino pueden hacer PWM, si te fijas bien en tu Arduino, verás que algunos de los pines tienen un "~" al lado de ellos (pines 3, 5, 6, 9, 10, 11), son pines PWM habilitado.Alambre de uno de sus LEDs de un PWM había habilitado pin, he usado pin 9. Intente ejecutar el sketch de blink desde antes, pero utilizan analogWrite en vez de digitalWrite para encender el LED (ver dibujo abajo). analogWrite() toma dos argumentos: el número de pin y el nivel de brillo (entre 0 y 255).
Trate de cambiar el brillo en los comandos analogWrite para ver cómo afecta a la luminosidad de la LED.
A continuación escribiré el código para que el brillo rampas suavemente desde el off a brillo completo. Podríamos copiar el mismo pedazo de código:
analogWrite (ledPin, brillo);
retardo (5); el retraso //short
brillo brillo = 1;
Una y otra vez (255 veces), aumento de brillo por uno cada vez. Aquí es lo que le da la mirada:
O podemos utilizar un bucle otra vez hacer el código más conciso. En el bosquejo siguiente tengo dos lazos, las primera rampas el LED hasta apagado (0) a full brightness(255):
para (brillo int = 0; brillo < 256; brillo ++) {}
analogWrite(ledPin,brightness);
Delay(5);
}La segunda para las rampas de lazo abajo de brillo completo en off:
para (int brillo = 255; brillo > = 0; brillo--) {}
analogWrite(ledPin,brightness);
Delay(5);
}
(el delay(5) se utiliza para retardar la transición, por lo que toma 5 * 256 = 1280ms = 1.28seconds)
En la primera línea, usamos "brillo"--a la de lazo disminuir el valor de brillo en 1 cada vez que el bucle se repite. Observe también cómo el bucle se ejecutará hasta brillo > = 0, mediante el uso de > = en vez de > incluimos el número 0 en el intervalo.
Y aquí está lo que debe buscar como (esta simulación no es tan buena, pero usted consigue la idea). Trate de editar los retrasos para ver cómo afecta la velocidad de las rampas.