Ejemplo básico Arduino/Genuino “Función analogWrite() ”,”Fade” – Tutorial

Este ejemplo muestra el uso de la función analogWrite () para encender y apagar un LED progresivamente. AnalogWrite () utiliza la modulación de ancho de pulso (PWM), activando y desactivando rápidamente un pin digital con diferentes proporciones entre activar y desactivar, para crear un efecto de atenuación.




AnalogWrite () escribe un valor analógico (onda PWM) en un pin. Se puede utilizar para encender un LED con diferentes brillos o controlar un motor a varias velocidades. Después de una llamada a analogWrite (), el pin generará una onda cuadrada constante del ciclo de trabajo especificado hasta la siguiente llamada a analogWrite (), o una llamada a digitalRead () o digitalWrite () en el mismo pin.




En la mayoría de las placas Arduino/Genuino, las que tienen el ATmega168 o el ATmega328, esta función funciona en los pines 3, 5, 6, 9, 10 y 11. En el Arduino/Genuino Mega, funciona entre los pines 2-13 y 44-46. Arduino Las tarjetas Arduino/Genuino con un ATmega8 sólo admiten analogWrite () en los pines 9, 10 y 11.

 

Hardware necesario


  • Tarjeta Arduino o Genuino
  • LED
  • Resistencia de 220 ohmios
  • Cables de conexión
  • Protoboard

Circuito

Conecte el ánodo, la pata más larga y positiva, del LED, a la salida del pin digital 9 de la placa a través de una resistencia de 220 ohmios. Conecte el cátodo, la pata negativa más corta, directamente a GND.

Código

Primero configuramos el pin 9 como ledPin.

Para encender y apagar el LED, se aumenta gradualmente su valor de PWM de 0 a 255, y luego de nuevo a 0. En el siguiente código, el valor PWM se establece mediante una variable llamada brightness, que aumenta su valor mediante la variable fadeAmount.

Si el brillo está en cualquier extremo de su valor (0 o 255), entonces fadeAmount se cambia a su negativo. En otras palabras, si fadeAmount es 5, entonces se establece en -5. Si es -5, entonces se establece en 5.

AnalogWrite () puede cambiar el valor PWM muy rápido, por lo que el retardo al final del códigos controla la velocidad del fundido. Cambie el valor del retardo y vea cómo cambia el efecto de atenuación.

int led = 9;           // Pin PWM donden se conecta el LED
int brightness = 0;    // Brillo del LED
int fadeAmount = 5;    // Incremento del brillo del LED

// the setup routine runs once when you press reset:
void setup() {
  // declare pin 9 to be an output:
  pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  // set the brightness of pin 9:
  analogWrite(led, brightness);

  // change the brightness for next time through the loop:
  brightness = brightness + fadeAmount;

  // reverse the direction of the fading at the ends of the fade:
  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount;
  }
  // wait for 30 milliseconds to see the dimming effect
  delay(30);
}

,

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *