Este proyecto permite recrear un juego de “Ping-Pong” con Arduino, ideal para poner a prueba los reflejos y jugar contra un amigo. A continuación, se presenta una guía completa con el objetivo, materiales, esquema de conexiones y el código necesario para programar el juego.
Tabla de Contenidos
- Objetivo y Funcionamiento del Juego
- Materiales Necesarios
- Esquema de Conexiones
- Código de Arduino para el Juego de Ping-Pong
- Video Explicativo
Objetivo y Funcionamiento del Juego
Este juego está diseñado para dos jugadores, aunque también se puede jugar en solitario, presionando ambos botones. La idea es que una “pelota”, representada por una fila de LEDs, se mueva de un lado a otro de la pista. Los jugadores deben presionar un botón cuando el LED amarillo (que representa la “pelota”) llegue a su lado de la pista. Si la “pelota” alcanza el LED rojo, el juego se detiene y pierde el jugador que falló.
- Objetivo: Presionar el botón cuando la “pelota” (LED amarillo) llegue a tu lado para devolverla al oponente, evitando que toque el LED rojo.
- Puntuación: Cada vez que el LED amarillo es pulsado a tiempo, la “pelota” rebota al lado contrario, aumentando la dificultad y la velocidad.
Materiales Necesarios
Para realizar este proyecto, se necesitan los siguientes componentes. Todos son fáciles de conseguir, y también se puede hacer clic en los enlaces para obtenerlos en distintas tiendas.
- Placa Arduino Uno: Controla todo el flujo del juego y la lógica de los LEDs.
- Protoboard: Facilita las conexiones sin necesidad de soldaduras.
- Kit de resistencias: Protege los LEDs y el circuito en general.
- Kit de LEDs: Se usan para representar la “pelota” y los bordes del juego (colores recomendados: amarillo para la “pelota” y rojo para los bordes).
- Botones: Cada jugador tiene un botón para pulsar cuando el LED amarillo llegue a su lado.
- Cables macho-hembra: Necesarios para realizar las conexiones entre los componentes.
Lista de Componentes:
- Placa Arduino Uno
- Protoboard
- Kit de Resistencias
- Kit de LEDs
- Botones
- Cables Macho-Hembra
Si tenés dudas sobre los materiales, dejá un comentario y responderemos lo antes posible.
Esquema de Conexiones

Código de Arduino para el Juego de Ping-Pong
Acá tenés el código de Arduino para programar el juego. Simplemente copiá y pegá este código en el Arduino IDE y subilo a tu placa.
//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;
}
}
Encontrá en nuestra web todo lo que buscás para tus proyectos, desde componentes hasta kits completos. ¡Conseguí lo necesario para transformar tus ideas en realidad!
No te pierdas nuestras próximas notas, donde vamos a presentar otros proyectos Arduino innovadores. ¡Seguí nuestras publicaciones y descubrí nuevas ideas cada semana!
Hasta la próxima.