Proyecto «Cubo led 3x3x3 controlado con Arduino»

En este proyecto vamos a realizar un cubo led 3x3x3. En esta pagina encontraras todos los recursos necesarios para realizarlo, tanto el código de programación como el esquema de conexiones o la lista de materiales. Por lo que si te interesa o estas pensando en hacerte tu propio cubo de leds de 3x3x3, te recomiendo que te quedes en esta pagina ya que encontrarás toda la información necesaria para montarlo sin problemas y entender su funcionamiento.

 

Explicación del proyecto

Este proyecto consiste en un cubo formado por leds de colores. En total se van a utilizar 27 leds colocados formando una estructura cubica de 3 leds en cada lado.

Este es un proyecto muy escalable, es decir, se pueden hacer cubos de 4x4x4, 5x5x5 o incluso de hasta 25x25x25, pero este tipo de cubos mas grandes requieren más practica a la hora de soldar y montar proyectos de electrónica, por lo que lo ideal es empezar a practicar con cubos de este tamaño. Esto nos ayudará a entender mejor su funcionamiento a la vez que nos ayuda a mejorar a la hora de soldar conexiones electrónicas o programar con Arduino. Además de todo esto, el cubo 3x3x3 tiene las siguientes ventajas:

  • Bajo consumo energético
  • No te tienes que preocupar por el consumo de corriente eléctrica
  • No se necesitas componentes electrónicos complejos

Los colores de los LEDs para este proyecto no importan nada, así que siente libre de escoger los que más te gusten (o los que tengas por casa, como es mi caso). También puedes combinar leds de diferentes colores para darle una apariencia más colorida.

Respecto a la corriente que va a pasar por cada pin de Arduino no debemos de preocuparnos, ya que aunque bien es cierto que los leds funciona con un amperaje máximo de 20mA, la realidad es que con 2mA-5mA es suficiente para iluminarlos. Teniendo en cuenta que cada pin de Arduino aguanta unos 20-30mA, por lo que no hay ningún problema.

Los pasos a seguir para montar el este proyecto son los siguientes:

Paso 1: Comprobar que funciona cada led

Aunque este parezca un paso irrelevante, es uno de los más importantes, ya que no queremos que cuando este todo totalmente soldado darnos cuenta de que uno de los leds estaba defectuoso y no funcionaba, por esta antes de empezar a hacer na

da debemos de comprobar que funcionan todos los leds. 

Lo mas sencillo para comprobarlo es colocar el positivo en el pin de 5V de Arduino y el negativo en el GND de la placa de Arduino (con una resistencia de 220Ω entre la pata negativa y el GND de Arduino).

 

Paso 2: Preparar la plantilla

Lo siguiente que debemos de hacer es preparar la plantilla que vamos a utilizar para soldar los leds entre ellos. Para esto vamos a hacer 9 agujeros en un cartón o en una madera con una distancia de separación de 2 centímetros entre ellos, tal y como se ve en la siguiente imagen. 

El tamaño de los agujeros puede variar en función del tamaño de los leds que estéis utilizando, por lo general serán de 3mm o de 5mm de diámetro.

 

Paso 3: Colocar y soldar los leds sobre la plantilla

Una vez tenemos hecha la plantilla ya podemos empezar a colocar los leds sobre ella. En este paso es muy importante asegurarnos de cual es el pin positivo y el negativo de cada led. Para esto existe dos opciones: la primera es que el pin negativo corresponde con la pata más pequeña, por lo que de esta forma podemos diferenciarlas. En caso de que ambas patas sean iguales, tenemos que utilizar la segunda opción, que se trata de fijarnos en una pequeña marca plana que tienen en la cabeza todos los leds, que corresponde con la pata negativa. En esta imagen puedes ver de forma grafica lo comentado anteriormente:

Con esto claro ya podemos empezar a colocar los leds. Para esto vamos a doblar la pata negativa del todo, mientras que la positiva la vamos a doblar en forma de L y la vamos a dejar en vertical, tal y como se observa en esta imagen:

Esto lo vamos a hacer con todos y cada uno de los leds que coloquemos sobre la plantilla. De esta forma tendremos que en cada una de las capas todas las patas negativas se estarán tocando, mientras que las positivas se quedarán hacia arriba. Esto debemos de hacerlo 3 veces (una por cada capa) pero OJO, debemos de tener en cuenta que las 3 capas deben de ser exactamente iguales, es decir, en las 3 capas todos los leds deben de tener las patas positivas mirando hacia arriba en la misma posición, de esta forma se simplificará mucho el trabajo a la hora de soldar las capas entre si.

 

Paso 4: Soldar las 3 capas entre si

Con las 3 capas hechas, ya podemos empezar a soldarlas entre si. Lo que vamos a hacer es soldar todos y cada uno de los pines en vertical, esto hará que todas las capas estén unidas mediante las patas negativas, mientras que las filas verticales estarán unidas con los pines positivos. De esta forma, mediante programación, podremos elegir que led se tiene que encender o apagar en cada momento.

Una vez soldadas las 3 capas una sobre la otra, nos debe de quedar algo así:

 

Paso 5: Colocar el cubo led sobre una placa de prototipado

En este paso lo que vamos a hacer va a ser colocar el cubo led previamente soldado sobre una placa de prototipado, soldando por abajo los 9 pines que salen. Tal y como se observa en la siguiente imagen:

 

Paso 6: Añadir las resistencias, los pines y conectar las capas

Una vez hecho esto, ya podemos colocar los pines que van a ser los que se conecten a la placa de Arduino Uno. Este paso no es obligatorio, pero si que va a facilitar mucho las cosas en el futuro. En total vamos a poner 9 pines para las filas positivas y 3 pines para las capas negativas.

Además, también debemos de conectar 3 resistencias de 220 ohmios justo antes de los 3 pines que corresponderán a las capas negativas.

Por otro lado, también vamos a sacar un cable de cada una de las capas negativas de nuestro cubo led y lo vamos a soldar por la parte inferior de la placa de prototipado.

Debería de quedar algo parecido a lo que se observa en la siguiente imagen:

 

Paso 7: Soldar todas las conexiones

En este paso lo que tenemos que hacer es soldar ya todas las conexiones por debajo de la placa. Para esto vamos a soldar los 9 pines de las filas positivas de nuestro cubo led con los 9 pines macho que hemos colocado sobre la placa de prototipado.

También soldaremos los 3 pines correspondientes a las capas negativas con las resistencias de 220 ohmios que hemos colocado anteriormente. El otro extremo de las resistencias debe de soldarse a los pines macho colocados sobre la placa de prototipado. Así es como quedaría el proyecto terminado:

 

Paso 8: Conectar el cubo a Arduino

Aquí lo que debemos hacer es conectar los 9 pines positivos de nuestro cubo led a los pines de Arduino que van del 3 al 10 (ambos incluidos y los 3 pines que corresponden a las capas negativas a los pines de Arduino que van del 11 al 13 (ambos incluidos). De esta forma ya tendríamos todas las conexiones realizadas entre nuestro cubo led y la placa de Arduino Uno.

 

Paso 9: Cargar el código de programación

Este ya es el ultimo paso para completar nuestro proyecto. Lo único que tenemos que hacer es conectar la placa de Arduino con nuestro ordenador atreves de un puerto USB. Una vez hecho esto es muy importante seleccionar en la parte superior de Arduino IDE (enlace de descarga aquí) el puerto USB al que hemos coleado la placa y la placa que estamos utilizando, en nuestro caso «Arduino Uno».

Lo ultimo será subir el código que te dejo en la parte inferior de esta pagina web a la placa de Arduino y BUALÁ, si todo va bien, el cubo led debería de empezar a funcionar.

 

 

Materiales

Los materiales que vamos a necesitar para este proyecto son muy sencillos.

Para este proyecto con Arduino también son necesarias algunas herramientas básicas. Si te falta alguna de ellas puedes encontrar más información y los links de compra de las que yo estoy utilizando AQUÍ.

 

Video explicación del proyecto

Si eres de los que entienden mejor las cosas cuando las ven en un vídeo, pues aquí lo tienes. La explicación completa de este proyecto en formato de vídeo, para que puedas ir viendo todos los pasos seguidos de una forma mucho más rápida y sencilla.

Si tienes cualquier duda o no te queda claro alguno de los pasos seguidos, puedes poner un comentario en el canal de YouTube (o en esta pagina web) para que te ayude.

 

Esquema de conexiones Arduino

Para evitar errores al realizar las conexiones de este proyecto, aquí tienes el esquema de conexiones simplificado.

Los cables de color rojo indican las conexiones de las filas positivas del cubo led. Por otro lado, los cables negros indican las conexiones a las 3 capas negativas que tiene nuestro cubo led. Las resistencias que se ven en el esquema son de 220 ohmios y la placa de Arduino utilizada es la «Arduino UNO», como se ha comentado anteriormente.

 

Código de Arduino para la programación del proyecto

Aquí tienes el código de programación de este proyecto. Más abajo tienes una explicación mas detallada sobre su funcionamiento y las distintas partes en las que esta dividido.

Recuerda que este código esta diseñado para que funcione con la configuración de pines arriba mostrada, si deseas utilizar otros pines tendrás que cambiar algunas partes del código.

Por ultimo, para que el código funcione correctamente, debes de seleccionar la placa «Arduino UNO» en la aplicación Arduino IDE (aquí tienes un enlace para descargártela totalmente de forma gratuita si todavía no la tienes) y una vez que la placa de Arduino este conectada al ordenador, seleccionar en la parte superior el puerto COM al que se ha conectado.

//Canal YouTube -> RobotUNO
//Proyecto: Cubo led 3x3x3 

void setup()
{
  pinMode(2,OUTPUT); //Pines positivos
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(6,OUTPUT);
  pinMode(7,OUTPUT);
  pinMode(8,OUTPUT);
  pinMode(9,OUTPUT);
  pinMode(10,OUTPUT);

  pinMode(11,OUTPUT); //Pines negativos
  pinMode(12,OUTPUT);
  pinMode(13,OUTPUT);
}


void loop()
{
  //MODO 1: PARPADEO DE LEDS
  digitalWrite(2,HIGH);
  digitalWrite(3,HIGH);
  digitalWrite(4,HIGH);
  digitalWrite(5,HIGH);
  digitalWrite(6,HIGH);
  digitalWrite(7,HIGH);
  digitalWrite(8,HIGH);
  digitalWrite(9,HIGH);
  digitalWrite(10,HIGH);
  
  for(int i=0;i<10;i++){
    if(i%2==0){ //Enciendo todos los leds
      digitalWrite(11,LOW);
      digitalWrite(12,LOW);
      digitalWrite(13,LOW);
    }
    else{ //Apago todos los leds
      digitalWrite(11,HIGH);
      digitalWrite(12,HIGH);
      digitalWrite(13,HIGH);
    }
    delay(100);
  }

  
  //MODO 2: SE ENCIENDEN UNA POR UNA LAS FILAS
  digitalWrite(2,LOW);
  digitalWrite(3,LOW);
  digitalWrite(4,LOW);
  digitalWrite(5,LOW);
  digitalWrite(6,LOW);
  digitalWrite(7,LOW);
  digitalWrite(8,LOW);
  digitalWrite(9,LOW);
  digitalWrite(10,LOW);
  
  digitalWrite(11,LOW);
  digitalWrite(12,LOW);
  digitalWrite(13,LOW);

  for(int j=0;j<=1;j++){
    for(int i=2;i<=10;i++){
      digitalWrite(i,HIGH);
      delay(100);
      digitalWrite(i,LOW);
      delay(100);
    }
  }
  
  
  //MODO 3: SE ENCIENDEN UNA POR UNA LAS CAPAS
  digitalWrite(2,HIGH);
  digitalWrite(3,HIGH);
  digitalWrite(4,HIGH);
  digitalWrite(5,HIGH);
  digitalWrite(6,HIGH);
  digitalWrite(7,HIGH);
  digitalWrite(8,HIGH);
  digitalWrite(9,HIGH);
  digitalWrite(10,HIGH);
  
  digitalWrite(11,HIGH);
  digitalWrite(12,HIGH);
  digitalWrite(13,HIGH);

  for(int j=0;j<=4;j++){
    for(int i=11;i<=13;i++){
      digitalWrite(i,LOW);
      delay(100);
      digitalWrite(i,HIGH);
      delay(100);
    }
  }
  
}

Programar un cubo led de este estilo con Arduino es muy sencillo. Simplemente debemos de entender que para que se encienda un led tenemos que hacer dos cosas: que el polo positivo este en positivo y que el polo negativo del led este en negativo. Con esto claro ya podemos empezar a programarlo.

Para poner un pin de Arduino en positivo o negativo podemos usar los siguientes comandos:

  • Para poner un pin en positivo -> digitalWrite(nºpin,HIGH);
  • Para pone un pin en negativo -> digitalWrite(nºpin,LOW);

Con esto ya podemos encender y apagar el led que queramos de nuestro cubo, ya que podemos poner cualquier fila en positivo y cualquier capa en negativo, lo que nos dará como resultado que se encienda el led que coincida en esa posición.

Déjame un comentario si te ha gustado!👍

Proyecto «Robot que baila, saluda y anda solo»

Ya esta aquí, ya ha llegado, el proyecto de un robot que baila, camina y saluda con Arduino. Este proyecto esta hecho utilizando solo materiales que todos los kits de iniciación traen, como son los servomotores, placa de Arduino UNO y demás componentes básicos. Si todavía no tienes tu kit, aquí te dejo un enlace con los mejores kits y completos.

Si te interesa como realizar este proyecto de forma muy fácil y rápida, quédate en esta pagina. 

En esta pagina encontraras el código de programación, el esquema de conexiones y un vídeo explicando el proyecto completo en YouTube.

Materiales necesarios para hacer el robot

A continuación hablaremos de los diferentes materiales utilizados para la construcción de este robot humanoide que es capaz de andar y bailar solo. Si te interesa realizar este proyecto pero te falta alguno de los materiales de la lista, puedes comprarlos de forma muy sencilla en lo enlaces.

Puedes encontrar más herramientas y materiales que puedas necesitar para tus proyectos AQUÍ.

Video explicación del proyecto

Más abajo tienes el código de programación y el esquema de conexiones para realizar este proyecto, pero si tienes alguna duda o no entiendes alguno de los pasos, aquí tienes el video de YouTube original en el cual se hace este proyecto con Arduino paso a paso, explicando todo lo que necesitas saber para poder montarlo sin ningún problema. Y recuerda, si te gusta esta clase de contenido, no olvides SUSCRIBETE 😉

 

Esquema de conexiones Arduino

Otra parte muy importante de un proyecto con Arduino es el esquema de conexiones. Aquí tienes todas las conexiones que hay que realizar para hacer este proyecto. Te recomiendo comprobar muy bien que todas están exactamente igual que las de la imagen para asegurarte de que el código de programación que hay mas adelante funciona sin necesidad de ninguna adaptación.

 

Código de Arduino para la programación 

Para finalizar con este proyecto del brazo robótico, a continuación te dejamos el código de programación desarrollado específicamente para este proyecto.

Respecto al código, recuerda instalar las librerías «Servo.h». También asegúrate de que el puerto donde esta conectada la placa de Arduino es el que esta seleccionado.

//Canal YouTube -> RobotUNO
//Robot Bipedo 
#include <Servo.h>
Servo der_arriba;
Servo der_abajo;
Servo izq_arriba;
Servo izq_abajo;
void setup() {
  der_arriba.attach(5);
  der_abajo.attach(6);
  izq_arriba.attach(7);
  izq_abajo.attach(8);  
  posicion_inicial(); 
  delay(3000); 
}
int f=0;
void loop() {
  if (f==0) {
    saludar();
    caminar();
    bailar();
    
    f=1;
  }
}
void posicion_inicial(){
  der_arriba.write(0); delay(100);
  der_abajo.write(0); delay(100);
  izq_arriba.write(90); delay(100);
  izq_abajo.write(90); delay(100);
}
void saludar(){
  for (int i=0;i<2;i++){
    der_abajo.write(50); delay(100);
    izq_abajo.write(40); delay(100);
    der_abajo.write(0); delay(100);
    izq_abajo.write(90); delay(100);
  }
}
void caminar(){
  int vel=50; //Velocidad a la que anda
  
  for (int i=0;i<30;i++){
    der_arriba.write(90); delay(vel);
    der_abajo.write(50); delay(vel);
    der_arriba.write(0); delay(vel);
    der_abajo.write(0); delay(vel);
    
    izq_arriba.write(0); delay(vel);
    izq_abajo.write(40); delay(vel);
    izq_arriba.write(90); delay(vel);
    izq_abajo.write(90); delay(vel);
  }
}
void bailar(){
  for (int i=0;i<5;i++){
    der_abajo.write(50); delay(300);
    izq_abajo.write(40); delay(150);
    der_abajo.write(0); delay(300);
    izq_abajo.write(90); delay(150);
    der_arriba.write(90); delay(500);
    izq_arriba.write(0); delay(500);
    der_arriba.write(0); delay(500);
    izq_arriba.write(90); delay(500);
    der_arriba.write(90); delay(500);
    izq_arriba.write(0); delay(500);
    der_arriba.write(0); delay(500);
    izq_arriba.write(90); delay(500);
  }
}

Recordad antes de montar todos los servomotores, estos deben colocarse en la posición inicial neutra, es decir, los servomotores deben de estar situados en la mitad de su movimiento total para tener capacidad de moverse en ambos sentidos. 

Para hacer esto puedes utilizar el código que te dejo aquí abajo. Te recomiendo que lo ejecutes en una nueva ventana de Arduino IDE y pongas los servomotores en la posición media, para esto pon uno a uno (tal y como se explica en el vídeo) los servomotores en el pin número 5 de la placa de Arduino UNO.

Para el servomotor de abajo a la derecha utiliza este código:

#include <Servo.h>
Servo servomotor;

void setup() {
  servomotor.attach(5);
}

void loop() {
  servomotor.write(0);//Para el de abajo a la derecha
}

 En cambio, para el servomotor de abajo a la izquierda utiliza este otro código:

#include <Servo.h>
Servo servomotor;

void setup() {
  servomotor.attach(5);
}

void loop() {
  servomotor.write(90);//Para el de abajo a la izquierda
}

Una vez que tengas esto, ya puedes continuar con el proyecto, montarlo todo y colocarle los servos a robot.

 

Proyecto «Lampara de noche con Arduino»

En este proyecto vamos a realizar una lampara de noche o un flexo para estudiar con Arduino. En esta pagina encontraras todos los recursos necesarios para realizarlo, tanto el código de programación como el esquema de conexiones o la lista de materiales. Por lo que si te interesa o estas pensando en hacerte tu una lampara de forma casera, te recomiendo que te quedes aquí.

 

Explicación del proyecto

Este proyecto consiste en una lampara que se puede utilizar tanto como lampara de noche como flexo para estudiar. Esta completamente realizado con Arduino y con materiales genéricos que suelen venir en todos los kits de Arduino para principiantes.

El funcionamiento se basa en un botón que nos permite el tono de luz (de luz mas cálida a luz mas fría) y un potenciómetro, el cual nos permite cambiar el brillo de los leds.

Además, se ha colocado un interruptor el cual corta la alimentación de todo el proyecto. La alimentación se ha realizado con un cargador de móvil que funciona a 5V y 2A, lo cual es mas que suficiente para alimentar los 12 leds RGB que trae el anillo led, ya que cada led RGB consume unos 20mA x 3 leds RGB x 12 leds da un total de 720mA, por lo que se puede alimentar de sobra con un cargador de 5V y 2A.

 

 

Materiales

A continuación veremos los diferentes materiales que se van a utilizar para realizar este proyecto con Arduino y una breve descripción de los mismos. Además, si estas interesado en realizar este proyecto y te falta alguno de los componentes, solo tienes que pinchar en el enlace de compra.

Para conocer más a fondo sobre cada uno de los diferentes materiales, puedes visitar la página «materiales» donde se explica de una forma más extensa el funcionamiento y los posibles usos de cada uno de ellos.

Puedes encontrar más herramientas y materiales que puedas necesitar para tus proyectos AQUÍ.

Componentes necesarios para este proyecto

 

Video explicación del proyecto

Si lo que buscas es ver de una forma mucho más detallada de como realizar este proyecto desde el inicio hasta el final y una explicación del código, a continuación se muestra el video con dicho contenido, mucho mas visual y fácil de comprender. Y recuerda, si te gusta esta clase de contenido, no olvides suscribirte 😉

 

 

Esquema de conexiones Arduino

Uno de los errores más comunes a la hora de realizar un proyecto con Arduino que vemos por internet, es realizar de forma incorrecta alguna conexión, haciendo que el proyecto no funcione. Por este motivo, aquí te traigo un esquema de conexiones muy visual sobre como realizar las conexiones. 

Todas estas conexiones son las que se han tenido en cuenta a la hora de programar el proyecto, por lo que no deberían de darte ningún error. Si te aparece un error, coméntalo por los comentarios del video de YouTube o por los comentarios de esta pagina web y entre todos intentaremos solucionártelo.

 

Código de Arduino para la programación del proyecto

A continuación se muestra el código de programación desarrollado específicamente para este proyecto. Los pines que puedes encontrar en el código son los mismos que encontrarás en el esquema de conexiones previamente mostrado.

Si quieres una explicación más detallada de las diferentes partes del código empleado para programar esta grúa y de su funcionamiento, te recomiendo que te veas el video que te hemos dejado más arriba.

//Canal de YouTube -> RobotUNO
//Proyecto -> Lampara casera

#include <Adafruit_NeoPixel.h>
Adafruit_NeoPixel lampara  = Adafruit_NeoPixel(12 , 2 , NEO_GRB + NEO_KHZ800); //(nºleds, pin din, NEO_GRB + NEO_KHZ400);

int contador=0, R=0, G=0, B=0;

void setup() {
  Serial.begin(9600);
  
  pinMode(A1,INPUT);
  pinMode(3,INPUT);
  
  lampara.begin();
  lampara.show();
  
}

void loop() {
  
  int potenciometro = analogRead(A1);
  int boton = digitalRead(3);
  
  Serial.println("potenciometro = ");
  Serial.print(potenciometro);
  Serial.println("\n");
  
  Serial.println("boton = ");
  Serial.print(boton);
  Serial.println("\n");

  //BRILLO
  int luz=0.249266*potenciometro;
  luz=round(luz);
  lampara.setBrightness(luz);

  //COLOR
  if (boton==1){
    contador=contador+1;
    
    if (contador==1){ //Nivel luz 1 (1000 Kº)
      R=255;
      G=56;
      B=0;
    }
    else if (contador==2){ //Nivel luz 2 (1500 Kº)
      R=255;
      G=109;
      B=0;
    }
    else if (contador==3){ //Nivel luz 3 (2000 Kº)
      R=255;
      G=138;
      B=18;
    }
    else if (contador==4){ //Nivel luz 4 (2500 Kº)
      R=255;
      G=161;
      B=72;
    }
    else if (contador==5){ //Nivel luz 5 (3000 Kº)
      R=255;
      G=180;
      B=107;
    }
    else if (contador==6){ //Nivel luz 6 (3500 Kº)
      R=255;
      G=196;
      B=137;
    }
    else if (contador==7){ //Nivel luz 7 (5000 Kº)
      R=255;
      G=228;
      B=206;
    }
    else { //Lo apaga todo
      R=0;
      G=0;
      B=0;

      contador=0;
    }
    
   delay(500);
  }
  
  lampara.setPixelColor(0,R,G,B);
  lampara.setPixelColor(1,R,G,B);
  lampara.setPixelColor(2,R,G,B);
  lampara.setPixelColor(3,R,G,B);
  lampara.setPixelColor(4,R,G,B);
  lampara.setPixelColor(5,R,G,B);
  lampara.setPixelColor(6,R,G,B);
  lampara.setPixelColor(7,R,G,B);
  lampara.setPixelColor(8,R,G,B);
  lampara.setPixelColor(9,R,G,B);
  lampara.setPixelColor(10,R,G,B);
  lampara.setPixelColor(11,R,G,B);
  lampara.show();
  
  delay(100);
}

 

Déjame un comentario si te ha gustado!👍

Minijuego con Arduino: «Esquiva los meterioritos!»

Se trata de uno de los juegos más famosos del mundo. Consiste en esquivar los meteoritos que van cayendo del cielo, pero ¡hay un problema! cada vez caen más y más rápido, ¿la solución? moverte más rápido.

¿Te ves capaz? Pues te animo a realizar este proyecto, para el cual necesitarás una matriz LED de 8×8 y 2 botones para moverte hacia los lados.

Si te interesa como realizar este proyecto de forma muy fácil y rápida, quédate en esta pagina. 

En esta pagina encontraras el código de programación, el esquema de conexiones y un video explicando el proyecto completo en YouTube.

 

Explicación, Objetivo y Funcionamiento del minijuego

El funcionamiento de este proyecto es muy sencillo: debemos de tratar esquivar los máximos meteoritos posibles. Fácil ¿no? Pues bien, el problema esta que a medida que pasa el tiempo, cada vez caen más meteoritos y más rápido, por lo que cada vez se hace mas difícil esquivarlos.

Para movernos debemos de pulsar 2 botones, con uno nos movemos hacia la izquierda y con el otro hacia la derecha, de esta forma es posible esquivar todos los meteoritos que van cayendo.

Esto es un proyecto con Arduino muy interesante, ya que pese a que el código de programación es bastante complejo, el montaje del proyecto es muy sencillo. Además, al realizar este proyecto, aprenderemos el funcionamiento de las matrices de LEDs 8×8.

 

Materiales

Los materiales para realizar este proyecto son muy sencillos y no debería de ser ningún problema conseguirlos, aun así, para que te sea más fácil, aquí tienes una lista con todos los componentes.

A continuación tienes una lista con los enlaces de compra en diferentes sitios.

 

Si tienes alguna duda sobre los materiales que se utilizan en este proyecto, no dudes en dejar un comentario, te responderemos lo antes posible.

Para conocer más a fondo sobre cada uno de los diferentes materiales, puedes visitar la página «materiales» donde se explica de una forma más extensa el funcionamiento y los posibles usos de cada uno de ellos.

Puedes encontrar más herramientas y materiales que puedas necesitar para tus proyectos AQUÍ.

 

Video explicación del proyecto

Si lo que buscas es ver de una forma mucho más detallada de como realizar este proyecto desde el inicio hasta el final y una explicación del código, a continuación se muestra el video con dicho contenido, mucho mas visual y fácil de comprender. Y recuerda, si te gusta esta clase de contenido, no olvides suscribirte 😉

 

 

Esquema de conexiones Arduino para montar el proyecto

Para que te sea más fácil montar este proyecto, aquí tienes el esquema de conexiones. Todas las conexiones de este esquema corresponden con el código de programación que hay justo abajo, así que asegúrate de que todas están tal y como se muestra en esta imagen.

 

 

Código de Arduino para la programación del proyecto

A continuación se muestra el código de programación desarrollado específicamente para este proyecto. Los pines que puedes encontrar en el código son los mismos que encontrarás en el esquema de conexiones previamente mostrado.

Si quieres una explicación más detallada de las diferentes partes del código empleado para programar este proyecto y de su funcionamiento, te recomiendo que te veas el video que te hemos dejado más arriba.

//Canal de YouTube -> RobotUNO
//Proyecto esquivar meteoritos en matriz led

#include "LedControl.h"
LedControl lc=LedControl(12,11,10,1);
unsigned long delaytime=1000;
String scoreString;
int score;
int hundreds;
String scoreStr;
String scoreArr[] = {"" ,"" ,"" };
int pinLeft = 2;
int pinRight = 3;
volatile unsigned long buttonPressed;
int buttonDelay = 150; 
volatile bool gameOver = false;
int tick;
int tickCounter = 1;
unsigned long now;
int ship;
int columns[] = {0,0,0,0,0,0,0,0};
int randomInt;

void setup() {
  gameOver = false;
  hundreds = 0;
  scoreArr[0] = "";
  scoreArr[1] = "";
  scoreArr[2] = "";
  score = 0;
  tick = 300;
  tickCounter = 1;
  ship = 3;
  now = millis();
  buttonPressed = millis();
  randomSeed(analogRead(15));
  for(int i = 0; i<8; i++)
    columns[i] = 0;;
  lc.shutdown(0,false);
  lc.setIntensity(0,1);
  lc.clearDisplay(0);
  pinMode(pinLeft, INPUT_PULLUP);
  pinMode(pinRight, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(pinLeft), left, FALLING);
  attachInterrupt(digitalPinToInterrupt(pinRight), right, FALLING);
}

void left()
{
  if(millis() - buttonPressed > buttonDelay)
  {
        if(ship != 0)
        ship--;
      else
        ship = 7;
      lc.clearDisplay(0);
      buttonPressed = millis();
  }
  if(gameOver == true){
  gameOver = false;
  setup();
  }
}

void right()
{
    if(millis() - buttonPressed > buttonDelay)
    {
      if(ship != 7)
        ship++;
      else
        ship = 0;
      lc.clearDisplay(0);
       buttonPressed = millis();
    }
  if(gameOver == true){
  gameOver = false;
  setup();
  }   
}

void loop() { 
  if(millis() - now > tick){
    score++;
    now = millis();

    if(tickCounter == 1){
       tick = tick/1.02;
      randomInt = random(0, 8);
      if(columns[randomInt] == 0){  
        columns[randomInt] = 1;
      }
    }
    if(tickCounter != 4)
      tickCounter++;
     else
      tickCounter = 1;
    for(int i = 0; i<8; i++){
      if(columns[i] == 10)
        columns[i] = 0;
      if(columns[i] != 0)
        columns[i]++;
    }

    lc.clearDisplay(0);
  }
  lc.setLed(0, 7, ship, true);
  for(int i = 0; i<8; i++){
    if(columns[i] > 0)
      lc.setLed(0, columns[i]-2, i, true);
      lc.setLed(0, columns[i]-3, i, true);
  }
  if(columns[ship] == 10 or columns[ship] == 9){
    lc.clearDisplay(0);
    for(int i = 0; i<4; i++){
      lc.setLed(0,7,ship+i,true);
      lc.setLed(0,7,ship-i,true);
      lc.setLed(0,7-i,ship+i,true);
      lc.setLed(0,7-i,ship-i,true);
      lc.setLed(0,7-1.5*i,ship,true);
      unsigned long time = millis();
      int randomSound=1000;
      while(millis() - time <= 250)  {  
        randomSound--;
        tone(9, random(randomSound, 1000));
      lc.clearDisplay(0);
      noTone(9);
    }
    delay(500);
    scoreStr = String(score);
    scoreArr[0] = scoreStr.charAt(0);
    scoreArr[1] = scoreStr.charAt(1);
    scoreArr[2] = scoreStr.charAt(2);
    if(score < 100){
        for(int i = 0; i<2; i++){
          if(scoreArr[i] == "0")
            draw0(1+i*4);
          if(scoreArr[i] == "1")
            draw1(1+i*4);
          if(scoreArr[i] == "2")
            draw2(1+i*4);
          if(scoreArr[i] == "3")
            draw3(1+i*4);
          if(scoreArr[i] == "4")
            draw4(1+i*4);
          if(scoreArr[i] == "5")
            draw5(1+i*4);
          if(scoreArr[i] == "6")
            draw6(1+i*4);
          if(scoreArr[i] == "7")
            draw7(1+i*4);
          if(scoreArr[i] == "8")
            draw8(1+i*4);
          if(scoreArr[i] == "9")
            draw9(1+i*4);
        }
        }
    else{
        for(int i = 1; i<3; i++){
          if(scoreArr[i] == "0")
            draw0(1+(i-1)*4));
          if(scoreArr[i] == "1")
            draw1(1+(i-1)*4);
          if(scoreArr[i] == "2")
            draw2(1+(i-1)*4);
          if(scoreArr[i] == "3")
            draw3(1+(i-1)*4);
          if(scoreArr[i] == "4")
            draw4(1+(i-1)*4);
          if(scoreArr[i] == "5")
            draw5(1+(i-1)*4);
          if(scoreArr[i] == "6")
            draw6(1+(i-1)*4);
          if(scoreArr[i] == "7")
            draw7(1+(i-1)*4);
          if(scoreArr[i] == "8")
            draw8(1+(i-1)*4);
          if(scoreArr[i] == "9")
            draw9(1+(i-1)*4);
        }
        for(int i = 1; i<10; i++){
          if(scoreArr[0] == String(i))
            hundreds = i;
        }
        for(int i = 1; i <= hundreds; i++){
          lc.setLed(0,0,i-1,true);
          lc.setLed(0,1,i-1,true);
          delay(200);          
        }
    }
   gameOver = true;
    while(gameOver == true){
      }
  }
}

void draw1(int position){
    lc.setColumn(0,0+position,B00001000);
    lc.setColumn(0,1+position,B00011111);
}

void draw2(int position){
    lc.setColumn(0,0+position,B00010111);
    lc.setColumn(0,1+position,B00010101);
    lc.setColumn(0,2+position,B00011101);  
}
void draw3(int position){
    lc.setColumn(0,0+position,B00010001);
    lc.setColumn(0,1+position,B00010101);
    lc.setColumn(0,2+position,B00011111);  
}
void draw4(int position){
    lc.setColumn(0,0+position,B00011100);
    lc.setColumn(0,1+position,B00000100);
    lc.setColumn(0,2+position,B00011111);  
}
void draw5(int position){
    lc.setColumn(0,0+position,B00011101);
    lc.setColumn(0,1+position,B00010101);
    lc.setColumn(0,2+position,B00010111);  
}
void draw6(int position){
    lc.setColumn(0,0+position,B00011111);
    lc.setColumn(0,1+position,B00010101);
    lc.setColumn(0,2+position,B00010111);  
}
void draw7(int position){
    lc.setColumn(0,0+position,B00010000);
    lc.setColumn(0,1+position,B00010011);
    lc.setColumn(0,2+position,B00011100);  
}
void draw8(int position){
    lc.setColumn(0,0+position,B00011111);
    lc.setColumn(0,1+position,B00010101);
    lc.setColumn(0,2+position,B00011111);  
}
void draw9(int position){
    lc.setColumn(0,0+position,B00011101);
    lc.setColumn(0,1+position,B00010101);
    lc.setColumn(0,2+position,B00011111);  
}
void draw0(int position){
    lc.setColumn(0,0+position,B00011111);
    lc.setColumn(0,1+position,B00010001);
    lc.setColumn(0,2+position,B00011111);  
}

 

Lo que debes de hacer para utilizar este código es muy sencillo, simplemente tienes que copiarlo y pegarlo en tu compilador de Arduino (por ejemplo, Arduino IDE). Si no lo tienes instalado, haz click aquí para ver un tutorial sobre como instalártelo de forma totalmente gratuita.

 

Si tienes cualquier duda, deja un comentario en esta pagina y te responderemos lo antes posible.

Minijuego con Arduino: «Diana laser»

¿Tienes buena puntería? Bueno, no importa, con este proyecto hecho con Arduino seguro que la mejoras. Por si, ni mas ni menos que este mini juego trata de realizar una diana que detecte un laser, para así poder practicar nuestra puntería y nuestro pulso. 

Este proyecto incluye diferentes modos de juego, los cuales nos ayudaran a mejorar nuestra puntería.

Si te interesa como realizar este proyecto de forma muy fácil y rápida, quédate en esta pagina. 

En esta pagina encontraras el código de programación, el esquema de conexiones y un video explicando el proyecto completo en YouTube.

 

Explicación, Objetivo y Funcionamiento del minijuego

El objetivo de este proyecto es el siguiente: debemos de intentar que el laser toque la fotorresistencia, que en este caso es nuestra diana. Cada vez que el laser incida sobre la fotorresistencia, el contador sumará uno. Cuando le demos 5 veces (se puede cambiar este valor) se acabará la partida.

Otro modo de juego es intentar aguantar el máximo tiempo posible con la luz del laser sobre la fotorresistencia. Cada 0.5 segundos el led rojo se encenderá y una vez que se encienda 5 veces, el juego se acaba.

Como he comentado antes, todos estos valores se pueden cambiar en el código de programación de una forma muy sencilla, por defecto viene el numero 5, pero este se puede cambiar y poner el valor que deseemos.

Es un proyecto muy interesante con Arduino ya que nos permite entender el funcionamiento de las fotorresistencias así como la utilización de contadores dentro del código de programación. Sin duda un minijuego muy recomendable.

 

Materiales

Los materiales para realizar este proyecto son muy sencillos y no debería de ser ningún problema conseguirlos, aun así, para que te sea más fácil, aquí tienes una lista con todos los componentes.

A continuación tienes una lista con los enlaces de compra en diferentes sitios.

 

Si tienes alguna duda sobre los materiales que se utilizan en este proyecto, no dudes en dejar un comentario, te responderemos lo antes posible.

Para conocer más a fondo sobre cada uno de los diferentes materiales, puedes visitar la página «materiales» donde se explica de una forma más extensa el funcionamiento y los posibles usos de cada uno de ellos.

Puedes encontrar más herramientas y materiales que puedas necesitar para tus proyectos AQUÍ.

 

Video explicación del proyecto

Si lo que buscas es ver de una forma mucho más detallada de como realizar este proyecto desde el inicio hasta el final y una explicación del código, a continuación se muestra el video con dicho contenido, mucho mas visual y fácil de comprender. Y recuerda, si te gusta esta clase de contenido, no olvides suscribirte 😉

 

 

Esquema de conexiones Arduino para montar el proyecto

Para que te sea más fácil montar este proyecto, aquí tienes el esquema de conexiones. Todas las conexiones de este esquema corresponden con el código de programación que hay justo abajo, así que asegúrate de que todas están tal y como se muestra en esta imagen. 

 

Código de Arduino para la programación del proyecto

A continuación se muestra el código de programación desarrollado específicamente para este proyecto. Los pines que puedes encontrar en el código son los mismos que encontrarás en el esquema de conexiones previamente mostrado.

Si quieres una explicación más detallada de las diferentes partes del código empleado para programar este proyecto y de su funcionamiento, te recomiendo que te veas el video que te hemos dejado más arriba.

//Canal de YouTube -> RobotUNO
//Entrenamiento punteria con un laser

#define led_rojo 11
#define led_verde 12
int sensor=0, contador=0;

int valor = 0;  
void setup() { 
  Serial.begin(9600);
  
  pinMode(led_rojo,OUTP
  UT);
  pinMode(led_verde,OUTPUT);
  pinMode(sensor,INPUT);
} 
void loop() {
  sensor = analogRead(A0);
  Serial.print(sensor);
  Serial.print("\n");

  if(sensor>500){ //CALIBRAR EL SENSOR
    digitalWrite(led_rojo,HIGH);
    delay(500);
    digitalWrite(led_rojo,LOW);
    contador++;
  }

  if(contador==5){
    digitalWrite(led_verde,HIGH);
  }
  
  delay(100);
}

 

Lo que debes de hacer para utilizar este código es muy sencillo, simplemente tienes que copiarlo y pegarlo en tu compilador de Arduino (por ejemplo, Arduino IDE). Si no lo tienes instalado, haz click aquí para ver un tutorial sobre como instalártelo de forma totalmente gratuita.

 

Si tienes cualquier duda, deja un comentario en esta pagina y te responderemos lo antes posible.

Minijuego con Arduino: «Carrera para encender un LED»

¿Eres una persona competitiva? Pues aquí tienes el minijuego perfecto para ti. Con este juego podrás retar a tus amigos para ver quien es mas rápido a la hora de pulsar un botón muchas veces. 

En esta pagina encontraras el código de programación, el esquema de conexiones y un video explicando el proyecto completo en YouTube.

PREPARADOS. LISTOS. YAA!!!! COMIENZA LA CARRERA

 

Explicación, Objetivo y Funcionamiento del minijuego

El funcionamiento de este juego es muy sencillo, consiste en pulsar muchas veces un botón hasta que se encienda un LED. La dificultad esta en que hay que intentar encender el led antes que tu oponente. Para ello se ha programado de tal forma que el primero que consiga pulsar 10 veces el botón, se encenderá su LED y ganará.

Pero eso no es todo, este juego te permite también jugar tu solo, para ello deberás cronometrarte cuanto tardas en encender el LED e intentar mejorar el tiempo. Por ultimo, también puedes jugar pulsando cada botón con una mano diferente y viendo con cual lo enciendes antes.

En definitiva me parece un proyecto con Arduino muy interesante para todos aquellos que quieran conocer el funcionamiento de un botón y como leer el numero de veces que se pulsa con Arduino.

 

Materiales

Los materiales para realizar este proyecto son muy sencillos y no debería de ser ningún problema conseguirlos, aun así, para que te sea más fácil, aquí tienes una lista con todos los componentes.

Básicamente los materiales que vamos a necesitar son 2 botones y 2 leds, además de algunos cables, resistencias y como no, Arduino UNO.

A continuación tienes una lista con los enlaces de compra en diferentes sitios.

 

Si tienes alguna duda sobre los materiales que se utilizan en este proyecto, no dudes en dejar un comentario, te responderemos lo antes posible.

Para conocer más a fondo sobre cada uno de los diferentes materiales, puedes visitar la página «materiales» donde se explica de una forma más extensa el funcionamiento y los posibles usos de cada uno de ellos.

Puedes encontrar más herramientas y materiales que puedas necesitar para tus proyectos AQUÍ.

 

Video explicación del proyecto

Si lo que buscas es ver de una forma mucho más detallada de como realizar este proyecto desde el inicio hasta el final y una explicación del código, a continuación se muestra el video con dicho contenido, mucho mas visual y fácil de comprender. Y recuerda, si te gusta esta clase de contenido, no olvides suscribirte 😉

 

Esquema de conexiones Arduino para montar el proyecto

Para que te sea más fácil montar este proyecto, aquí tienes el esquema de conexiones. Todas las conexiones de este esquema corresponden con el código de programación que hay justo abajo, así que asegúrate de que todas están tal y como se muestra en esta imagen.

 

Código de Arduino para la programación del proyecto

A continuación se muestra el código de programación desarrollado específicamente para este proyecto. Los pines que puedes encontrar en el código son los mismos que encontrarás en el esquema de conexiones previamente mostrado.

Si quieres una explicación más detallada de las diferentes partes del código empleado para programar este proyecto y de su funcionamiento, te recomiendo que te veas el video que te hemos dejado más arriba.

//Canal de YouTube -> RobotUNO
//Carrera con leds

#define button1 8
#define button2 4
#define led1 9
#define led2 5

int goal = 10, win=0, flag1=0, flag2=0;
int state1 = 0;
int state2 = 0;

int contador1 = 0;
int contador2 = 0;

void setup(){
  pinMode(button1, INPUT);
  pinMode(button2, INPUT);
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT); 
}

void loop(){
  state1 = digitalRead(button1);
  state2 = digitalRead(button2);
  
  if(state1 == HIGH && flag1==0){
    contador1++;
    flag1=1;
  }
  if(state1==LOW && flag1==1){
    flag1=0;
  }
  if(state2==HIGH && flag2==0){
    contador2++;
    flag2=1;
  }
    if(state2==LOW && flag2==1){
    flag2=0;
  }

  if(contador1 == goal && win==0){
    for(int i=0;i<10;i++){
      digitalWrite(led1,HIGH);
      delay(50);
      digitalWrite(led1,LOW);
      delay(50);
    }
    digitalWrite(led1,HIGH);
    win=1;
  }
  if(contador2 == goal && win==0){
    for(int i=0;i<10;i++){
      digitalWrite(led2,HIGH);
      delay(50);
      digitalWrite(led2,LOW);
      delay(50);
    }
    digitalWrite(led2,HIGH);
    win=1;
  }
}

 

Lo que debes de hacer para utilizar este código es muy sencillo, simplemente tienes que copiarlo y pegarlo en tu compilador de Arduino (por ejemplo, Arduino IDE). Si no lo tienes instalado, haz click aquí para ver un tutorial sobre como instalártelo de forma totalmente gratuita.

 

Si tienes cualquier duda, deja un comentario en esta pagina y te responderemos lo antes posible.

Minijuego con Arduino: «Snake game con una matriz 8×8»

Por fin tenemos el tutorial completo de uno de los mini juegos mas famosos del mundo. Ni mas ni menos que el mítico juego de la serpiente que a medida que se va comiendo manzanas va creciendo. Este juego también es muy conocido por su nombre en ingles «Snake Game». 

Bueno bueno, pero eso no es todo, este juego esta realizado solamente con un modulo de leds 8×8. Si, en efecto, el típico que traen todos los kits de Arduino básicos.

Si te interesa como realizar este proyecto de forma muy fácil y rápida, quédate en esta pagina. 

En esta pagina encontraras el código de programación, el esquema de conexiones y un video explicando el proyecto completo en YouTube.

 

Explicación, Objetivo y Funcionamiento del minijuego

Bueno, creo que esta vez es un mini juego tan famoso, que no hace falta ni explicar su funcionamiento, pero bueno, vamos a hacerlo por si acaso que seguro que hay alguien que seguro que no sabe de que juego estamos hablando.

El funcionamiento de este juego es muy fácil. Consiste en una serpiente que a medida que va comiendo manzanas va aumentando su tamaño. ¿El objetivo? Ser cada vez más y más grande, hasta que llegue un punto que no quepa en la pantalla, que es cuando se considera que oficialmente el juego esta terminado. La gracia esta en que si te chocas con tu propio cuerpo, pierdes y te toca volver a empezar de 0.

¿Parece fácil eh? Pues te reto a que intentes pasártelo, ya que cuanto más grande es la serpiente, más fácil es quedarse encerrado sin salida y acabar chocándote con tu propio cuerpo.

Bueno, ¿Estas listo? VAMOS AL LIO!

 

Materiales

Los materiales para realizar este proyecto son muy sencillos y no debería de ser ningún problema conseguirlos, aun así, para que te sea más fácil, aquí tienes una lista con todos los componentes.

A continuación tienes una lista con los enlaces de compra en diferentes sitios.

 

Si tienes alguna duda sobre los materiales que se utilizan en este proyecto, no dudes en dejar un comentario, te responderemos lo antes posible.

Para conocer más a fondo sobre cada uno de los diferentes materiales, puedes visitar la página «materiales» donde se explica de una forma más extensa el funcionamiento y los posibles usos de cada uno de ellos.

Puedes encontrar más herramientas y materiales que puedas necesitar para tus proyectos AQUÍ.

 

Video explicación del proyecto

Si lo que buscas es ver de una forma mucho más detallada de como realizar este proyecto desde el inicio hasta el final y una explicación del código, a continuación se muestra el video con dicho contenido, mucho mas visual y fácil de comprender. Y recuerda, si te gusta esta clase de contenido, no olvides suscribirte 😉

 

 

Esquema de conexiones Arduino para montar el proyecto

Para que te sea más fácil montar este proyecto, aquí tienes el esquema de conexiones. Todas las conexiones de este esquema corresponden con el código de programación que hay justo abajo, así que asegúrate de que todas están tal y como se muestra en esta imagen. 

 

Código de Arduino para la programación del proyecto

A continuación se muestra el código de programación desarrollado específicamente para este proyecto. Los pines que puedes encontrar en el código son los mismos que encontrarás en el esquema de conexiones previamente mostrado.

Si quieres una explicación más detallada de las diferentes partes del código empleado para programar este proyecto y de su funcionamiento, te recomiendo que te veas el video que te hemos dejado más arriba.

//Canal de YouTube -> RobotUNO
//Juego snake en pantalla led 8x8
#include "LedControl.h"
//pins
const int SW_pin = 2;
const int X_pin = 0;
const int Y_pin = 1;
const int DIN = 12;
const int CS = 11;
const int CLK = 10;
const int BUZZER = 8;
//variables
const int screenWidth = 8;
const int screenHeight = 8;
int snakeX, snakeY, foodX, foodY, score = 0, snakeSize = 1;
char direction;
int tailX[100], tailY[100];
bool isGameOver = false;
LedControl lc = LedControl(DIN, CS, CLK, 1);
void setup() {
  setupPins();
  setupLedBoard();
  setupSnakePosition();
  setupFoodPosition();
}
void setupSnakePosition() {
  snakeX = 4;
  snakeY = 4;
}
void setupFoodPosition() {
  foodX = rand() % screenWidth;
  foodY = rand() % screenHeight;
}
void setupLedBoard() {
  lc.shutdown(0, false);
  lc.setIntensity(0, 1);
  lc.clearDisplay(0);
}
void setupPins() {
  pinMode(SW_pin, INPUT);
  digitalWrite(SW_pin, HIGH);
}
void loop() {
  if (isGameOver) {
    playGameOverSong();
    showGameOverScreen();
  } else {
    startGame();
  }
}
void playGameOverSong() {
  tone(BUZZER, 1000, 1000);
  delay(100);
  tone(BUZZER, 2000, 1000);
  delay(100);
  tone(BUZZER, 3000, 1000);
  delay(100);
  tone(BUZZER, 4000, 1000);
  delay(100);
  tone(BUZZER, 5000, 2000);
}
void playFoodEatenSong() {
  tone(BUZZER, 500, 100);
}
void startGame() {
  manageGameOver();
  setJoystickDirection();
  changeSnakeDirection();
  manageSnakeOutOfBounds();
  manageEatenFood();
  manageSnakeTailCoordinates();
  drawSnake();
  delay(300);
}
void manageGameOver() {
  for (int i = 1; i < snakeSize; i++) {
    if (tailX[i] == snakeX && tailY[i] == snakeY) {
      isGameOver = true;
    }
  }
}
void manageSnakeOutOfBounds() {
  if (snakeX >= screenWidth) {
    snakeX = 0;
  } else if (snakeX < 0) {
    snakeX = screenWidth - 1;
  }
  if (snakeY >= screenHeight) {
    snakeY = 0;
  } else if (snakeY < 0) {
    snakeY = screenHeight - 1;
  }
}
void manageSnakeTailCoordinates() {
  int previousX, previousY, prevX, prevY;
  previousX = tailX[0];
  previousY = tailY[0];
  tailX[0] = snakeX;
  tailY[0] = snakeY;

  for (int i = 1; i < snakeSize; i++) {
    prevX = tailX[i];
    prevY = tailY[i];
    tailX[i] = previousX;
    tailY[i] = previousY;
    previousX = prevX;
    previousY = prevY;
  }
}
void manageEatenFood() {
  if (snakeX == foodX && snakeY == foodY) {
    playFoodEatenSong();
    score++;
    snakeSize++;
    setupFoodPosition();
  }
}
void setJoystickDirection() {
  if (analogRead(X_pin) > 1000) {
    direction = 'u';
  } else if (analogRead(X_pin) < 100) {
    direction = 'd';
  } else if (analogRead(Y_pin) > 1000) {
    direction = 'l';
  } else if (analogRead(Y_pin) < 100) {
    direction = 'r';
  }
}
void changeSnakeDirection() {
  switch (direction) {
    case 'l':
      snakeX--;
      break;
    case 'r':
      snakeX++;
      break;
    case 'u':
      snakeY--;
      break;
    case 'd':
      snakeY++;
      break;
  }
}
void showGameOverScreen() {
  for (int i = 0; i < screenHeight; i++) {
    for (int j = 0; j < screenWidth; j++) {
      showLed(j, i);
      delay(50);
    }
  }
  resetVariables();
}
void resetVariables() {
  setupSnakePosition();
  setupFoodPosition();
  direction = ' ';
  isGameOver = false;
  score = 0;
  snakeSize = 1;
}
void showLed(int row, int column) {
  lc.setLed(0, row, column, true);
}
void hideLed(int row, int column) {
  lc.setLed(0, row, column, false);
}
void drawSnake() {
  for (int i = 0; i < screenHeight; i++) {
    for (int j = 0; j < screenWidth; j++) {
      if (i == snakeY && j == snakeX) {
        showLed(snakeX, snakeY);
      } else if (i == foodY && j == foodX) {
        showLed(foodX, foodY);
      } else {
        bool isShown = false;
        for (int k = 0; k < snakeSize; k++) {
          if (tailX[k] == j && tailY[k] == i) {
            showLed(j, i);
            isShown = true;
          }
        }
        if (!isShown) {
          hideLed(j, i);
        }
      }
    }
  }
}

 

Lo que debes de hacer para utilizar este código es muy sencillo, simplemente tienes que copiarlo y pegarlo en tu compilador de Arduino (por ejemplo, Arduino IDE). Si no lo tienes instalado, haz click aquí para ver un tutorial sobre como instalártelo de forma totalmente gratuita.

 

Si tienes cualquier duda, deja un comentario en esta pagina y te responderemos lo antes posible.

Minijuego con Arduino: «Skate game pantalla LCD»

¿Has jugado alguna vez con un skate? Bueno, sea sí o no tu respuesta, este juego es para ti. Esquivar obstáculos, pasar de nivel, batir récords, aprender a programar, aprender sobre pantallas LCD mientras juegas. Suena bien, ¿Verdad? Pues adelante con tutorial.

Si te interesa como realizar este proyecto de forma muy fácil y rápida, quédate en esta pagina. 

En esta pagina encontraras el código de programación, el esquema de conexiones y un video explicando el proyecto completo en YouTube.

 

Explicación, Objetivo y Funcionamiento del minijuego

El funcionamiento y los objetivos con este minijuego son muy sencillos. El juego consiste en esquivar los obstáculos que van apareciendo en la pantalla, cada vez a mayor velocidad.

Para ello debemos pulsar un botón, el cual hará que nuestro personaje en skate salte y esquive el obstáculos, pero claro, no todo es tan fácil, porque habrá que calcular cuanto y cuando pulsamos el botón, ya que después de cada obstáculo, SIEMPRE VIENEN MÁS. 

¿Te gusta la idea? Pues no solo es eso. Al hacer este proyecto, también aprenderás el funcionamiento de las pantallas LCD, que tienen muchísimas aplicaciones en Arduino. Me parece algo genial y que todo el mundo debería, al menos, conocer su funcionamiento.

VAMOS AL LIO!

 

Materiales

Los materiales para realizar este proyecto son muy sencillos y no debería de ser ningún problema conseguirlos, aun así, para que te sea más fácil, aquí tienes una lista con todos los componentes.

A continuación tienes una lista con los enlaces de compra en diferentes sitios.

 

Si tienes alguna duda sobre los materiales que se utilizan en este proyecto, no dudes en dejar un comentario, te responderemos lo antes posible.

Para conocer más a fondo sobre cada uno de los diferentes materiales, puedes visitar la página «materiales» donde se explica de una forma más extensa el funcionamiento y los posibles usos de cada uno de ellos.

Puedes encontrar más herramientas y materiales que puedas necesitar para tus proyectos AQUÍ.

 

Video explicación del proyecto

Si lo que buscas es ver de una forma mucho más detallada de como realizar este proyecto desde el inicio hasta el final y una explicación del código, a continuación se muestra el video con dicho contenido, mucho mas visual y fácil de comprender. Y recuerda, si te gusta esta clase de contenido, no olvides suscribirte 😉

 

 

Esquema de conexiones Arduino para montar el proyecto

Para que te sea más fácil montar este proyecto, aquí tienes el esquema de conexiones. Todas las conexiones de este esquema corresponden con el código de programación que hay justo abajo, así que asegúrate de que todas están tal y como se muestra en esta imagen. 

 

Código de Arduino para la programación del proyecto

A continuación se muestra el código de programación desarrollado específicamente para este proyecto. Los pines que puedes encontrar en el código son los mismos que encontrarás en el esquema de conexiones previamente mostrado.

Si quieres una explicación más detallada de las diferentes partes del código empleado para programar esta grúa y de su funcionamiento, te recomiendo que te veas el video que te hemos dejado más arriba.

//Canal -> RobotUNO
//Minijuego con pantalla LCD
#include <LiquidCrystal.h>//libreria de la pantalla 
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Configura los pines de salida para la lcd
byte letra1[8] = { B01110, B00100, B11111, B01110, B01010, B01010, B11111, B01010 };
byte letra2[8] = { B01110, B00100, B11111, B01110, B11011, B00000, B11111, B11111 };
byte letra6[8] = { B01110, B10101, B11111, B01110, B01010, B01010, B11111, B01010 };
byte letra0[8] = { B00000, B00000, B00000, B00000, B00000, B00000, B00000, B00000 };
byte letra3[8] = { B00000, B00000, B00000, B11111, B11111, B11111, B11111, B11111 };
byte letra4[8] = { B00000, B11111, B11111, B11111, B11111, B11111, B11111, B11111 };
byte letra5[8] = { B01110, B11111, B11111, B11111, B11111, B11111, B11111, B11111 };
int x=15;
int y=1;
int obstaculos=0;
int vel=300;
int puntaje=0;
int GameOver=3;
void setup(){
  lcd.begin(16, 2);
  lcd.createChar(1, letra1);
  lcd.createChar(2, letra2);
  lcd.createChar(3, letra3);
  lcd.createChar(4, letra4);
  lcd.createChar(5, letra5);
  lcd.createChar(0, letra0);
  lcd.createChar(6, letra6);
}
void loop(){
  lcd.setCursor(7, 0); //Posición del nombre del canal 
  lcd.print("RobotUNO");
  lcd.setCursor(0, 0); //Coloca el numero 0 
  lcd.print(obstaculos);
  lcd.setCursor(x,y);
  lcd.write(byte(3));
  delay(vel);
  lcd.setCursor(x,y);
  lcd.write(byte(4));
  delay(vel);
  lcd.setCursor(x,y);
  lcd.write(byte(5));
  delay(vel);
  lcd.clear();
  lcd.setCursor(GameOver, 1); 
  lcd.setCursor(3, 1);  
  lcd.write(byte(1)); 
  if (digitalRead(7) == HIGH){ 
    lcd.setCursor(3, 1);
    lcd.write(byte(0));
    lcd.setCursor(3, 0);
    lcd.write(byte(2));
  }
     else if(3 == x){
      lcd.clear();
      lcd.setCursor(3, 0);
      lcd.print("Game Over");
      lcd.setCursor(7, 1);
      lcd.write(byte(6));
      delay(3000);
      puntaje=obstaculos;
      lcd.setCursor(3, 1);
      lcd.print("Puntaje:");
      lcd.setCursor(12, 1);
      lcd.print(puntaje);
      delay(6000);
      obstaculos=0;
     }
   x=x-1;              
  if (x<=0) {  
     x=15;                        
  }
 vel = random(1,200);
if(GameOver == x){ 
  lcd.clear();
  obstaculos++;
}
}

 

Lo que debes de hacer para utilizar este código es muy sencillo, simplemente tienes que copiarlo y pegarlo en tu compilador de Arduino (por ejemplo, Arduino IDE). Si no lo tienes instalado, haz click aquí para ver un tutorial sobre como instalártelo de forma totalmente gratuita.

 

Si tienes cualquier duda, deja un comentario en esta pagina y te responderemos lo antes posible.

 

 

Minijuego con Arduino: «Simón dice!»

¿Simón dice? Simón dice, ¿Conocías este juego? Conocías este juego, ¿Has jugado? Has jugado, ¿Paro? Paro. Vale, ya paro, pero esto no es más que una demostración de este famoso mini juego con Arduino. Ni más ni menos que SIMON DICE. Juego mítico donde los haya, ahora disponible en Arduino.

Si te interesa como realizar este proyecto de forma muy fácil y rápida, quédate en esta pagina. ¿Empezamos? Empezamos 

En esta pagina encontraras el código de programación, el esquema de conexiones y un video explicando el proyecto completo en YouTube.

 

Explicación, Objetivo y Funcionamiento del minijuego

No me creo que haya alguien que no conoce el funcionamiento de este mini juego, aun así, aquí tienes una explicación de como se juega.

Básicamente el juego consiste en memorizar la secuencia de leds que se va generando de forma aleatoria. Una vez que la secuencia termina llega tu turno, en el cual tienes que replicar pulsando los botones la misma secuencia que se ha mostrado anteriormente. Hasta aquí todo muy bien y muy fácil, ¿no? Pues bueno, lo difícil llega ahora, ya que cada secuencia que aciertas, la siguiente no solo va mas rápida, sino que también es mas larga.

¿Cuántas secuencias lograrás completar? ¿Te costará mucho? ¿Ganarás a tus amigos? Comprueba todo esto realizando el proyecto en Arduino y poniéndote a prueba! Vamos allá.

 

Materiales

Los materiales para realizar este proyecto son muy sencillos y no debería de ser ningún problema conseguirlos, aun así, para que te sea más fácil, aquí tienes una lista con todos los componentes.

A continuación tienes una lista con los enlaces de compra en diferentes sitios.

 

Si tienes alguna duda sobre los materiales que se utilizan en este proyecto, no dudes en dejar un comentario, te responderemos lo antes posible.

Para conocer más a fondo sobre cada uno de los diferentes materiales, puedes visitar la página «materiales» donde se explica de una forma más extensa el funcionamiento y los posibles usos de cada uno de ellos.

Puedes encontrar más herramientas y materiales que puedas necesitar para tus proyectos AQUÍ.

 

Video explicación del proyecto

Si lo que buscas es ver de una forma mucho más detallada de como realizar este proyecto desde el inicio hasta el final y una explicación del código, a continuación se muestra el video con dicho contenido, mucho mas visual y fácil de comprender. Y recuerda, si te gusta esta clase de contenido, no olvides suscribirte 😉

 

Esquema de conexiones Arduino para montar el proyecto

Para que te sea más fácil montar este proyecto, aquí tienes el esquema de conexiones. Todas las conexiones de este esquema corresponden con el código de programación que hay justo abajo, así que asegúrate de que todas están tal y como se muestra en esta imagen. 

 

Código de Arduino para la programación del proyecto

A continuación se muestra el código de programación desarrollado específicamente para este proyecto. Los pines que puedes encontrar en el código son los mismos que encontrarás en el esquema de conexiones previamente mostrado.

Si quieres una explicación más detallada de las diferentes partes del código empleado para programar esta grúa y de su funcionamiento, te recomiendo que te veas el video que te hemos dejado más arriba.

//Canal de YouTube -> RobotUNO
//Juego Simon dice
#define   BUZZER   7
#define   ENTRADA_A  13
#define   ENTRADA_B  12
#define   ENTRADA_C  11
#define   ENTRADA_D  10
#define   SALIDA_A   2
#define   SALIDA_B   3
#define   SALIDA_C   4
#define   SALIDA_D   5
int melodia[ ] = {262, 196, 196, 220, 196, 0, 247, 262};
int duracionNotas[] = {4, 8, 8, 4, 4, 4, 4, 4};
int nivelActual = 1;
int velocidad = 500;
const int NIVEL_MAX = 100;
int secuencia[NIVEL_MAX];
int secuenciaUsuario[NIVEL_MAX];
void setup(){
   pinMode(ENTRADA_D, INPUT);
   pinMode(ENTRADA_C, INPUT);
   pinMode(ENTRADA_B, INPUT);
   pinMode(ENTRADA_A, INPUT);
   pinMode(SALIDA_A, OUTPUT);
   pinMode(SALIDA_B, OUTPUT);
   pinMode(SALIDA_C, OUTPUT);
   pinMode(SALIDA_D, OUTPUT);
   digitalWrite(SALIDA_A, LOW);
   digitalWrite(SALIDA_B, LOW);
   digitalWrite(SALIDA_C, LOW);
   digitalWrite(SALIDA_D, LOW);
}
void loop(){
   if(nivelActual == 1){
      generaSecuencia();
      muestraSecuencia();
      leeSecuencia();
   }
   if(nivelActual != 1){
      muestraSecuencia();
      leeSecuencia();
   }
}
void muestraSecuencia(){
   digitalWrite(SALIDA_A, LOW);
   digitalWrite(SALIDA_B, LOW);
   digitalWrite(SALIDA_C, LOW);
   digitalWrite(SALIDA_D, LOW);
   for(int i = 0; i < nivelActual; i++){
      if( secuencia[i] == SALIDA_A ){
         tone(BUZZER, 200);
         delay(200);
         noTone(BUZZER);
      }
      if( secuencia[i] == SALIDA_B ){
         tone(BUZZER, 300);
         delay(200);
         noTone(BUZZER);
      }
      if( secuencia[i] == SALIDA_C ){
         tone(BUZZER, 400);
         delay(200);
         noTone(BUZZER);
      }
      if( secuencia[i] == SALIDA_D ){
         tone(BUZZER, 500);
         delay(200);
         noTone(BUZZER);
      }
      digitalWrite(secuencia[i], HIGH);
      delay(velocidad);
      digitalWrite(secuencia[i], LOW);
      delay(200);
   }
}
void leeSecuencia(){
   int flag = 0;
   for(int i = 0; i < nivelActual; i++){
      flag = 0;
      while(flag == 0){
         if(digitalRead(ENTRADA_D) == LOW){
            digitalWrite(SALIDA_D, HIGH);
            tone(BUZZER, 500);
            delay(300);
            noTone(BUZZER);
            secuenciaUsuario[i] = SALIDA_D;
            flag = 1;
            delay(200);
            if(secuenciaUsuario[i] != secuencia[i]){
               secuenciaError();
               return;
            }
            digitalWrite(SALIDA_D, LOW);
         }
         if(digitalRead(ENTRADA_C) == LOW){
            digitalWrite(SALIDA_C, HIGH);
            tone(BUZZER, 400);
            delay(300);
            noTone(BUZZER);
            secuenciaUsuario[i] = SALIDA_C;
            flag = 1;
            delay(200);
            if(secuenciaUsuario[i] != secuencia[i]){
               secuenciaError();
               return;
            }
            digitalWrite(SALIDA_C, LOW);
         }
         if(digitalRead(ENTRADA_B) == LOW){
            digitalWrite(SALIDA_B, HIGH);
            tone(BUZZER, 300);
            delay(300);
            noTone(BUZZER);
            secuenciaUsuario[i] = SALIDA_B;
            flag = 1;
            delay(200);
            if(secuenciaUsuario[i] != secuencia[i]){
               secuenciaError();
               return;
            }
            digitalWrite(SALIDA_B, LOW);
         }
         if(digitalRead(ENTRADA_A) == LOW){
            digitalWrite(SALIDA_A, HIGH);
            tone(BUZZER, 200);
            delay(300);
            noTone(BUZZER);
            secuenciaUsuario[i] = SALIDA_A;
            flag = 1;
            delay(200);
            if(secuenciaUsuario[i] != secuencia[i]){
               secuenciaError();
               return;
            }
            digitalWrite(SALIDA_A, LOW);
         }
      }
   }
   secuenciaCorrecta();
}
void generaSecuencia(){
   randomSeed(millis());
   for(int i = 0; i < NIVEL_MAX; i++){
      secuencia[i] = random(2,6);
   }
}
void melodiaError(){
   for(int i = 0; i < 8; i++){
      int duracionNota = 1000/duracionNotas[i];
      tone(BUZZER, melodia[i],duracionNotas);
      int pausaEntreNotas = duracionNota * 1.30;
      delay(pausaEntreNotas);
      noTone(BUZZER);
   }
}
void secuenciaError(){
   digitalWrite(SALIDA_A, HIGH);
   digitalWrite(SALIDA_B, HIGH);
   digitalWrite(SALIDA_C, HIGH);
   digitalWrite(SALIDA_D, HIGH);
   delay(250);
   digitalWrite(SALIDA_A, LOW);
   digitalWrite(SALIDA_B, LOW);
   digitalWrite(SALIDA_C, LOW);
   digitalWrite(SALIDA_D, LOW);
   delay(250);
   melodiaError();
   nivelActual = 1;
   velocidad = 500;
}
void secuenciaCorrecta(){
   if(nivelActual < NIVEL_MAX);
      nivelActual++;
   velocidad -= 50;
   delay(200);
}

Lo que debes de hacer para utilizar este código es muy sencillo, simplemente tienes que copiarlo y pegarlo en tu compilador de Arduino (por ejemplo, Arduino IDE). Si no lo tienes instalado, haz click aquí para ver un tutorial sobre como instalártelo de forma totalmente gratuita.

 

Si tienes cualquier duda, deja un comentario en esta pagina y te responderemos lo antes posible.

 

 

Minijuego con Arduino: «Ping-Pong»

Y otro mini juego más por aquí. En este caso se trata de un minijuego con Arduino que simula el PING-PONG. Es ideal para jugar con tus amigos y ver quien tiene mayores reflejos! Te reto!

En esta pagina encontraras el código de programación, el esquema de conexiones y un video explicando el proyecto completo en YouTube.

 

Explicación, Objetivo y Funcionamiento del minijuego

El funcionamiento de este minijuego es muy muy sencillo. Este minijuego esta pensado para jugar 2 personas, aunque también puedes jugar tu solo pulsando ambos botones.

El mini juego consiste en una fila de leds, la cual en cada extremo tiene un led de color amarillo y otro de color rojo. La finalidad es pulsar el botón cuando el led amarillo se encienda, sin que llegue nunca a encenderse el led rojo, ya se si este se enciende, se acaba el juego. 

Al pulsar el botón cuando esta en el led amarillo, la «pelota» rebota hacia el otro lado, haciendo que tu contrincante sea el encargado de pulsar el botón cuando se encienda su led de color amarillo, para así devolverte la «pelota».

 

Materiales

Los materiales para realizar este proyecto son muy sencillos y no debería de ser ningún problema conseguirlos, aun así, para que te sea más fácil, aquí tienes una lista con todos los componentes.

A continuación tienes una lista con los enlaces de compra en diferentes sitios.

 

Si tienes alguna duda sobre los materiales que se utilizan en este proyecto, no dudes en dejar un comentario, te responderemos lo antes posible.

Para conocer más a fondo sobre cada uno de los diferentes materiales, puedes visitar la página «materiales» donde se explica de una forma más extensa el funcionamiento y los posibles usos de cada uno de ellos.

Puedes encontrar más herramientas y materiales que puedas necesitar para tus proyectos AQUÍ.

 

Video explicación del proyecto

Si lo que buscas es ver de una forma mucho más detallada de como realizar este proyecto desde el inicio hasta el final y una explicación del código, a continuación se muestra el video con dicho contenido, mucho mas visual y fácil de comprender. Y recuerda, si te gusta esta clase de contenido, no olvides suscribirte 😉

 

Esquema de conexiones Arduino para montar el proyecto

Para que te sea más fácil montar este proyecto, aquí tienes el esquema de conexiones. Todas las conexiones de este esquema corresponden con el código de programación que hay justo abajo, así que asegúrate de que todas están tal y como se muestra en esta imagen. 

 

El color de los leds no importa, puedes poner los colores que quieras, aun así, te recomiendo utilizar esta combinación de colores ya que es muy intuitiva, pero si quieres puedes dejar volar tu imaginación!

 

Código de Arduino para la programación del proyecto

A continuación se muestra el código de programación desarrollado específicamente para este proyecto. Los pines que puedes encontrar en el código son los mismos que encontrarás en el esquema de conexiones previamente mostrado.

Si quieres una explicación más detallada de las diferentes partes del código empleado para programar esta grúa y de su funcionamiento, te recomiendo que te veas el video que te hemos dejado más arriba.

//Canal YouTube -> RobotUNO
//Proyecto Ping pong
#define rojo1 A2
#define amarillo2 A1
#define verde3 A0
#define verde4 2
#define verde5 3
#define verde6 4
#define verde7 5
#define verde8 6
#define verde9 7
#define verde10 8
#define verde11 9
#define verde12 10
#define verde13 11
#define amarillo14 12
#define rojo15 13
int BOTON_IZQ;
int BOTON_DER;
int aux=7, vel=400;
int direccion_der=1;
int direccion_izq=0;
void setup() {
  pinMode(rojo1,OUTPUT);
  pinMode(amarillo2,OUTPUT);
  pinMode(verde3,OUTPUT);
  pinMode(verde4,OUTPUT);
  pinMode(verde5,OUTPUT);
  pinMode(verde6,OUTPUT);
  pinMode(verde7,OUTPUT);
  pinMode(verde8,OUTPUT);
  pinMode(verde9,OUTPUT);
  pinMode(verde10,OUTPUT);
  pinMode(verde11,OUTPUT);
  pinMode(verde12,OUTPUT);
  pinMode(verde13,OUTPUT);
  pinMode(amarillo14,OUTPUT);
  pinMode(rojo15,OUTPUT);
  
  pinMode(A5,INPUT);
  pinMode(A4,INPUT);
}
void loop() {
  BOTON_IZQ=digitalRead(A5);
  BOTON_DER=digitalRead(A4);
  if (aux==2 && BOTON_IZQ==1){
    aux++;
    direccion_der=1;
    direccion_izq=0;
    PELOTA();
    vel=vel-50;
  }
  else if (aux==14 && BOTON_DER==1){
    aux--;
    direccion_der=0;
    direccion_izq=1;
    PELOTA();
  }
  else if (direccion_der==1){
    aux++;
    PELOTA();
  }
  else if (direccion_izq==1){
    aux--;
    PELOTA();
  } 
  delay(vel);
}
void PELOTA(){
  switch (aux) {
  case 1: //pierdes el juego
    digitalWrite(rojo1,HIGH);
    digitalWrite(amarillo2,LOW);
  break;
  case 2: //amarillo izquierda
    digitalWrite(rojo1,LOW);
    digitalWrite(amarillo2,HIGH);
    digitalWrite(verde3,LOW);
  break;
  case 3:
    digitalWrite(amarillo2,LOW);
    digitalWrite(verde3,HIGH);
    digitalWrite(verde4,LOW);
  break;
  case 4:
    digitalWrite(verde3,LOW);
    digitalWrite(verde4,HIGH);
    digitalWrite(verde5,LOW);
  break;
  case 5:
    digitalWrite(verde4,LOW);
    digitalWrite(verde5,HIGH);
    digitalWrite(verde6,LOW);
  break;
  case 6:
    digitalWrite(verde5,LOW);
    digitalWrite(verde6,HIGH);
    digitalWrite(verde7,LOW);
  break;
  case 7:
    digitalWrite(verde6,LOW);
    digitalWrite(verde7,HIGH);
    digitalWrite(verde8,LOW);
  break;
  case 8:
    digitalWrite(verde7,LOW);
    digitalWrite(verde8,HIGH);
    digitalWrite(verde9,LOW);
  break;
  case 9:
    digitalWrite(verde8,LOW);
    digitalWrite(verde9,HIGH);
    digitalWrite(verde10,LOW);
  break;
  case 10:
    digitalWrite(verde9,LOW);
    digitalWrite(verde10,HIGH);
    digitalWrite(verde11,LOW);
  break;
  case 11:
    digitalWrite(verde10,LOW);
    digitalWrite(verde11,HIGH);
    digitalWrite(verde12,LOW);
  break;
  case 12:
    digitalWrite(verde11,LOW);
    digitalWrite(verde12,HIGH);
    digitalWrite(verde13,LOW);
  break;
  case 13:
    digitalWrite(verde12,LOW);
    digitalWrite(verde13,HIGH);
    digitalWrite(amarillo14,LOW);
  break;
  case 14: //amarillo derecha
    digitalWrite(verde13,LOW);
    digitalWrite(amarillo14,HIGH);
    digitalWrite(rojo15,LOW);
  break;
  case 15: //pierdes el juego
    digitalWrite(rojo15,HIGH);
    digitalWrite(amarillo14,LOW);
  break;
  
  default:
    digitalWrite(rojo15,HIGH);
    digitalWrite(rojo1,HIGH);
  break;
}
}

Lo que debes de hacer para utilizar este código es muy sencillo, simplemente tienes que copiarlo y pegarlo en tu compilador de Arduino (por ejemplo, Arduino IDE). Si no lo tienes instalado, haz click aquí para ver un tutorial sobre como instalártelo de forma totalmente gratuita.

 

Si tienes cualquier duda, deja un comentario en esta pagina y te responderemos lo antes posible.