Skip to main content

Bloque 1: El Coche Fantástico

​Objetivo

El estudiante debe simular la secuencia luminosa de Kitt, el coche protagonista de la serie de televisión de los años 80 Knight Rider (el Coche Fantástico).

Debe conectar 7 ledes, y simular la secuencia, tal y como se ve en la imagen de la derecha. 

El tiempo de encendido y apagado entre ledes debe ser de 50ms.

​Materiales necesarios

Placa Arduino o compatible.
Placa de conexiones.
7 ledes de cualquier color, preferiblemente blancos
7 resistencias.
7 cables macho-macho.

​Conocimientos a trabajar

Variables.
Función delay.
Función pinMode.
Función digitalWrite.

Test evaluativo y solución

En el siguiente enlace podrás encontrar el test evaluativo disponible para el estudiante, en este caso con la solución al final del documento.

​Videotutorial

Posibles soluciones

// Solución 1

int t1 = 50;

void setup() {
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
}

void loop() {
  digitalWrite(2, HIGH);
  delay(t1);
  digitalWrite(2, LOW);
  digitalWrite(3, HIGH);
  delay(t1);
  digitalWrite(3, LOW);
  digitalWrite(4, HIGH);
  delay(t1);
  digitalWrite(4, LOW);
  digitalWrite(5, HIGH);
  delay(t1);
  digitalWrite(5, LOW);
  digitalWrite(6, HIGH);
  delay(t1);
  digitalWrite(6, LOW);
  digitalWrite(7, HIGH);
  delay(t1);
  digitalWrite(7, LOW);
  digitalWrite(8, HIGH);
  delay(t1);
  digitalWrite(8, LOW);
  delay(t1);
  digitalWrite(8, HIGH);
  delay(t1);
  digitalWrite(8, LOW);
  digitalWrite(7, HIGH);
  delay(t1);
  digitalWrite(7, LOW);
  digitalWrite(6, HIGH);
  delay(t1);
  digitalWrite(6, LOW);
  digitalWrite(5, HIGH);
  delay(t1);
  digitalWrite(5, LOW);
  digitalWrite(4, HIGH);
  delay(t1);
  digitalWrite(4, LOW);
  digitalWrite(3, HIGH);
  delay(t1);
  digitalWrite(3, LOW);
  digitalWrite(2, HIGH);
  delay(t1);
  digitalWrite(2, LOW);
  delay(t1);
}
// Solución 2

int t1 = 50;

int led_on = 1;
int led_off = 0;
int dir = 0;

void setup() {
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
}

void loop() {
  led_off = led_on;

  if (dir == 0) {
    led_on++;
  } else {
    led_on--;
  }

  if (led_on == 2) {
    digitalWrite(led_on, HIGH);
  } else if (led_on > 2 && led_on <= 8) {
    digitalWrite(led_off, LOW);
    digitalWrite(led_on, HIGH);
  }

  if (dir == 0 && led_on == 8) {
    dir = 1;
  } else if (dir == 1 && led_on == 2) {
    dir = 0;
  }

  delay(t1);
}

¿Te ha gustado la práctica?

¡Tenemos decenas de prácticas más, para Educación Secundaria y Bachillerato!

Contacta con nosotros