2. Parpadeo de los LED

Objetivos

  • Generar parpadeo de leds mediante la función ledBlink.

Parpadeo del led D1

En este ejemplo se desea hacer parpadear al led D1 con un tiempo encendido de medio segundo y un tiempo apagado de medio segundo. El periodo de parpadeo será por lo tanto de un segundo. En este caso la función se dará desde el bloque setup() una sola vez.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
// Parpadea el led D1 una vez por segundo

#include <Picuino.h>

void setup() {
   pio.begin();               // Inicializar el shield Picuino UNO
   pio.ledBlink(1, 50, 50);   // Parpadea el led D1
                              //   50 centésimas de segundo encendido
                              //   50 centésimas de segundo apagado
}

void loop() {
}

Ejercicios

Programa el código necesario para resolver los siguientes problemas.

  1. Hacer parpadear el led D1 y el led D4 con una frecuencia de un segundo. Los dos leds se deben encender y apagar al mismo tiempo. Utilizar la función ledBlink().

  2. Modificar el ejercicio anterior para que el encendido de los dos leds D1 y D4 sea alternativo, de manera que solo un led esté encendido en cada momento. El tiempo de encendido de cada led será de medio segundo.

  3. Hacer parpadear dos led a la vez con una frecuencia de un segundo. El led D1 se programará con la función ledBlink(1, 50, 50), por el contrario el led D3 se programará con la función ledWrite(). Primero comenzará a parpadear el led D1 y, pasado un segundo, lo hará el led D3. Se deben sincronizar los dos leds para que parpadeen a la vez ajustando los tiempos de encendido y apagado con la función delay().

  4. Corregir los errores sintácticos del siguiente programa para conseguir que funcione correctamente.

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    // Luces de Navidad.
    // Programa con errores sintácticos.
    
    #include <Picuino.h>
    
    void setup() {
       int time_on;   // Declara la variable time_on como un número entero
       int time_off;  // Declara la variable time_off como un número entero
    
       pio.Begin()    // Inicia el shield Picuino UNO
    
       // Repite y asigna valores a variable 'num' desde 1 hasta 5
       for(int num=1; num<=5; num++) {
    
          // Tiempo encendido = aleatorio entre 0,5 y 3,0 segundos
          time_on = random(50, 300)
    
          // Tiempo apagado = aleatorio entre 0,5 y 3,0 segundos
          time_off = Random(50, 300)
    
          // Parpadea el led 'num' un tiempo aleatorio
          pio.ledblink(num, time_on, time_off)
    
    }
    
    void loop() {
    }
    
  5. Hacer parpadear a un led de manera que se encienda durante una décima de segundo cada diez segundos, para indicar que el módulo está encendido gastando muy poca corriente eléctrica.

  6. Hacer parpadear a un led de manera que se encienda durante dos décimas de segundo, cada segundo.

  7. Los seis primeros leds se deben encender en secuencia de manera que comience por encenderse el led D1 y termine por encenderse el led D6. entre el encendido de un led y el siguiente debe pasar entre 250 y 500 milésimas de segundo. Una vez que todos los leds estén encendidos, comenzarán a apagarse por el led D1 hasta que todos estén apagados. Nota: Para resolver este problema, se debe utilizar solo una función ledBlink() por cada led, junto con una función delay() para esperar un tiempo entre un encendido y el siguiente.