Actividad 5


Control de intensidad de un LED con PWM

En este circuito se partirá del Circuito 3 pero se hará variar la intensidad del LED haciendo uso de una señal PWM. Una vez presionado el pulsador, se iluminará el LED del pin 9 con diferentes valores del ciclo de trabajo de PWM, por ejemplo: 30, 64, 128 y 255. Se debe dejar un tiempo de 500ms entre valores para apreciar correctamente los cambios.

En este caso, además de las sentencias de código vistas hasta ahora, será necesario emplear la función analogWrite(pin, value). En ella se debe indicar el pin de la salida PWM y con value se indica el ciclo de trabajo en un valor entre 0 y 255 (correspondiente a 8 bits).


 


Tras finalizar el ejemplo, se aprovechará el mismo montaje para controlar el incremento de intensidad con cada pulsación. Se debe conseguir que el LED de forma cíclica con cada pulsación corta del botón incremente su intensidad entre los 4 valores anteriores y en la quinta pulsación se apague.

const int pin_led = 9;          // Definimos el pin donde conectamos el LED
const int pin_pulsador = 10;    // Definimos el pin donde conectamos el Pulsador

void setup() {

  pinMode(pin_led, OUTPUT);     // Inicializamos el pin del LED como salida
  pinMode(pin_pulsador, INPUT); // Inicializamos el pin del Pulsador como entrada

  digitalWrite(pin_led, LOW);   // Apagamos el LED

}

void loop() {

  // Comprobamos que la lectura del Pulsador
  if(digitalRead(pin_pulsador) == HIGH) {

    analogWrite(pin_led, 30);
    delay(500);
    analogWrite(pin_led, 64);
    delay(500);
    analogWrite(pin_led, 128);
    delay(500);
    analogWrite(pin_led, 255);

  }

}
const int pin_led = 9;      // Definimos el pin donde conectamos el LED
const int pin_pulsador = 10;// Definimos el pin donde conectamos el Pulsador
int pulsaciones = 0;        // Variable auxiliar para controlar las pulsaciones

void setup() {

  pinMode(pin_led, OUTPUT);     // Inicializamos el pin del LED como salida
  pinMode(pin_pulsador, INPUT); // Inicializamos el pin del Pulsador como entrada

  digitalWrite(pin_led, LOW);   // Apagamos el LED

}

void loop() {

  // Comprobamos que la lectura del Pulsador
  if(digitalRead(pin_pulsador) == HIGH) {

    if(pulsaciones == 0) {          // Primera pulsación
      analogWrite(pin_led, 30);     // Establecemos el valor de la PWM a 30/255
      pulsaciones = pulsaciones + 1;// Sumamos una pulsación a la cuenta
    }

    if(pulsaciones == 1) {          // Segunda pulsación
      analogWrite(pin_led, 64);     // Establecemos el valor de la PWM a 64/255
      pulsaciones = pulsaciones + 1;// Sumamos una pulsación a la cuenta
    }

    if(pulsaciones == 2) {          // Tercera pulsación
      analogWrite(pin_led, 128);    // Establecemos el valor de la PWM a 128/255
      pulsaciones = pulsaciones + 1;// Sumamos una pulsación a la cuenta
    }

    if(pulsaciones == 3) {          // Cuarta pulsación
      analogWrite(pin_led, 255);    // Establecemos el valor de la PWM a 255/255
      pulsaciones = pulsaciones + 1;// Sumamos una pulsación a la cuenta
    }

    if(pulsaciones == 4) {          // Quinta pulsación
      analogWrite(pin_led, 0);      // Establecemos el valor de la PWM a 0/255
      pulsaciones = 0;              // Reiniciamos la cuenta de pulsaciones
    }

  }

}
Vistas
33 Número de vistas
33 Vistas de miembros
0 Vistas públicas
Acciones
0 Gustos
0 No me gusta
0 Comentarios
Compartir en redes sociales
Compartir enlace
Compartir por correo

Por favor iniciar sesión para compartir esto webpage por correo.