O coche fantástico

cochefantastico2
[by Fajar Abriono CC By-SA]

Descrición:

Imos ordenar que se acendan e se apaguen unha serie de LEDs un a un, de forma consecutiva.

No primeiro programa iremos sempre no mesmo sentido, e no segundo iremos primeiro cara adiante e despois cara atrás.

Programas:

1. LEDs consecutivos

leds7
[WikiFisica2013, CC BySA]
1. LEDs consecutivos: Neste programa utilizamos a función for para:

  • Configurar como saída os pins do 7 ao 13, evitando ter que facelo un a un.
  • Ordenar que se acendan e se apaguen os LEDs un a un, de forma consecutiva.
// Declaración de variables:

int tempo = 200;        // Definimos a variable tempo cun valor de 200ms

// Configuración:

void setup() {                
  for (int n=7;n<=13;n++) {      // Repítese desde o 7 ata o 13 o seguinte:
    pinMode(n, OUTPUT);          // Imos configurando os pins como saída
  }
}

// Programa

void loop() {

  for (int n=7;n<=13;n++) {     // Repítese desde 7 ata 13 o seguinte:      
    digitalWrite(n, HIGH);     
    delay(tempo);              
    digitalWrite(n, LOW);      
    delay(tempo);              
  }

}

2. Coche fantástico

2. Coche fantástico: Para conseguir o efecto do coche fantástico engadimos un bucle descendente ao programa anterior.

// Declaración de variables:

int tempo = 150;        // Definimos a variable tempo cun valor de 200ms

// Configuración:

void setup() { 
  for (int n=7;n<=13;n++) {
    pinMode(n, OUTPUT);     // Imos configurando os pins como saída desde o 7 ata o 13
  }
}

// Programa:

void loop() {

  for (int n=7;n<=13;n++) {        // Repítese desde 7 ata 13 o seguinte:    
    digitalWrite(n,HIGH);    
    delay(tempo);            
    digitalWrite(n,LOW);     
    delay(tempo);            
  }

  for (int n=12;n>=8;n--) {        // Repítese desde 12 ata 8 o seguinte:
    digitalWrite(n,HIGH);    
    delay(tempo);
    digitalWrite(n,LOW);
    delay(tempo);
  }

}

Propostas:

  1. Sen apagarse: Fai que os LEDs se vaian acendendo consecutivamente sen apagarse, e despois se vaian apagando un a un, no mesmo sentido ou en sentido contrario.
  2. De dento a fóra. A ver se es quen de facer que os LEDs se vaian acendendo desde o centro ata o exterior e despois se vaian apagando en sentido contrario.
  3. Control de velocidade con potenciómetro: Conecta un potenciómetro a unha entrada analóxica e fai que ao variar a posición do cursor vaia aumentando ou diminuíndo a velocidade das luces do coche fantástico.
    Utiliza a función map: tempo=map(pot, 0, 1023, tempo1, tempo2);
  4. Visualizador de LEDs: Conecta un potenciómetro e fai que a medida que imos xirando se vaian acendendo cada vez máis LEDs facendo unha visualización do nivel.
    Utiliza a función map. Para 7 LEDs sería:  nivel = map(pot, 0, 1023, 0, 7)

Extras:

  1. mfrey_led_bar
    [By MichaelFrey CC BY-SA via Wikimedia Commons]
    Con barras de LEDs: Para que os efectos de xogos de luces queden ben xeitosos podemos utilizar unha ou dúas barras de leds como as da imaxe da dereita. Só hai que conectar a cada pin unha resistencia de protección. Proba facer un coche fantástico con 10 Leds!
  2. Como queiras: Fai un xogo de luces diferente a estes e que quede chulo.

 


Deixa un comentario