4. Parpelleig LED

LED de colores y RGB.

Els pendents

  • Generar parpelleig de LED mitjançant la funció LEDBLINK.

LED D1 Flash

En aquest exemple, voleu parpellejar a la LED D1 amb un temps a mig segon i un temps de mig segon. Per tant, el període parpelleig serà de segon. En aquest cas, la funció es donarà a la `` configuració () `` `` `` `

Programa equivalent a l’entorn Arcublock:

Programa de Ardublock para parpadear el led D1 del panel de control PC42

En aquest enllaç podeu descarregar: Descarregueu: Fitxer de programa per a Arcublock 'Ledblink' <_downloads/ardublock_ledblink.abp> `

Exercicis

Programa el codi necessari per resoldre els problemes següents.

  1. Flash el LED D1 i el LED D4 amb un temps d’encesa mig segon i mig segon de temps. Els dos LED s’han d’encendre i desactivar alhora. Utilitzeu la funció: CPP: Fun: ledblink.

  2. Modifiqueu l'exercici anterior de manera que l'encesa dels dos LED D1 i D4 sigui alternativa, de manera que només un LED està en tot moment. El temps d’encesa de cada LED serà mig segon.

  3. Feu que dos LED flaixin alhora amb una freqüència de segon. El LED D1 es programarà amb el `` ledblink (1, 500, 500) ``, al contrari, el LED D3 es programarà amb el codi següent.

    1
    2
    3
    4
    5
    6
    void loop() {
       pc.ledWrite(3, LED_ON);  // Encender el led D3
       delay(500);              // Esperar medio segundo (500 ms)
       pc.ledWrite(3, LED_OFF); // Apagar el led D3
       delay(500);              // Esperar medio segundo (500 ms)
    }
    

    Heu d’intentar sincronitzar els dos LED per parpellejar alhora ajustant els temps d’encesa modificant el temps de la funció `` de retard (500) `.

  4. Corregiu els errors sintàctics del programa següent per fer -lo funcionar correctament.

     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
    28
    // Programa con errores sintácticos.
    // Luces de Navidad.
    
    #include <Wire.h>
    #include <PC42.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
    
       pc.begin();    // Inicializar el módulo PC42
    
       // 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(500, 3000)
    
          // Tiempo apagado = aleatorio entre 0,5 y 3,0 segundos
          time_off = Random(500, 3000)
    
          // Parpadea el led 'num' un tiempo aleatorio
          pc.ledblink(num, time_on, time_off)
    
    }
    
    void loop() {
    }
    
  5. Feu un flaix LED d’una manera que s’encengui durant dues dècimes de segon cada deu segons, per indicar que el mòdul funciona gastant molt poca energia.

  6. Feu un flaix LED d’una manera que s’encengui durant dues dècimes de segon, cada segon.

  7. Els primers sis LED s’han d’encendre en seqüència de manera que el LED D1 s’encengui i acabi en el LED D6. Entre l’encesa d’un LED i el següent ha de passar entre 250 i 500 mil·lèsimes de segon. Un cop s’encenguin tots els LED, començaran a sortir pel LED D1 fins que tothom estigui apagat. Nota: Per solucionar aquest problema, només s'ha d'utilitzar una funció: CPP: Fun: LedBlink per a cada LED, juntament amb la funció de retard ()` per esperar un temps entre una ignició i la següent.