🎮 PROYECTO: Mando con 2 joysticks y 2 botones
🧰 Material necesario
- 1 × Arduino Uno R3
- 2 × Joystick analógicos (5 pines: VCC, GND, VRx, VRy, SW)
- 2 × Pulsadores (4 pines)
- Cables macho-macho
- Protoboard (muy recomendable)
🧠 ¿Cómo funciona este mando?
Cada joystick tiene:
- 2 ejes → Eje X y Eje Y (valores analógicos de 0 a 1023)
- 1 pulsador integrado (cuando presionas el joystick hacia abajo)
Cada botón externo funciona como interruptor:
- Pulsado → LOW
- Sin pulsar → HIGH (usando resistencia interna)
🔌 PASO 1: Conexión de los Joysticks
🎮 Joystick 1
| Pin Joystick | Conectar a Arduino |
|---|---|
| VCC | 5V |
| GND | GND |
| VRx | A0 |
| VRy | A1 |
| SW | 2 |
🎮 Joystick 2
| Pin Joystick | Conectar a Arduino |
|---|---|
| VCC | 5V |
| GND | GND |
| VRx | A2 |
| VRy | A3 |
| SW | 3 |
🔘 PASO 2: Conexión de los botones externos
Los botones de 4 patas funcionan en parejas internas. Conecta:
Botón 1
- Una pata → Pin 4
- Otra pata → GND
Botón 2
- Una pata → Pin 5
- Otra pata → GND
⚠️ Usaremos las resistencias internas del Arduino, así que no necesitamos resistencias externas.
💻 PASO 3: Código para el Arduino IDE
Este código:
- Lee los valores de los joysticks
- Detecta si los botones están pulsados
- Muestra todo en el Monitor Serie en tiempo real
Copia y pega en el IDE:
// Pines Joystick 1
const int joy1X = A0;
const int joy1Y = A1;
const int joy1SW = 2;
// Pines Joystick 2
const int joy2X = A2;
const int joy2Y = A3;
const int joy2SW = 3;
// Pines botones externos
const int boton1 = 4;
const int boton2 = 5;
void setup() {
Serial.begin(9600);
pinMode(joy1SW, INPUT_PULLUP);
pinMode(joy2SW, INPUT_PULLUP);
pinMode(boton1, INPUT_PULLUP);
pinMode(boton2, INPUT_PULLUP);
}
void loop() {
// Lectura joysticks
int joy1XValue = analogRead(joy1X);
int joy1YValue = analogRead(joy1Y);
int joy2XValue = analogRead(joy2X);
int joy2YValue = analogRead(joy2Y);
// Lectura botones (invertimos porque usamos INPUT_PULLUP)
int joy1SWValue = !digitalRead(joy1SW);
int joy2SWValue = !digitalRead(joy2SW);
int boton1Value = !digitalRead(boton1);
int boton2Value = !digitalRead(boton2);
Serial.println("----- MANDO -----");
Serial.print("Joystick 1 - X: ");
Serial.print(joy1XValue);
Serial.print(" Y: ");
Serial.print(joy1YValue);
Serial.print(" Pulsado: ");
Serial.println(joy1SWValue);
Serial.print("Joystick 2 - X: ");
Serial.print(joy2XValue);
Serial.print(" Y: ");
Serial.print(joy2YValue);
Serial.print(" Pulsado: ");
Serial.println(joy2SWValue);
Serial.print("Boton 1: ");
Serial.println(boton1Value);
Serial.print("Boton 2: ");
Serial.println(boton2Value);
Serial.println("-----------------");
delay(500);
}
📊 PASO 4: Ver el funcionamiento en el Monitor Serie
1️⃣ Conecta el Arduino al ordenador
2️⃣ Pulsa Subir (Upload)
3️⃣ Ve a Herramientas → Monitor Serie
4️⃣ Asegúrate de que está a 9600 baudios
Verás algo como:
Joystick 1 - X: 512 Y: 510 Pulsado: 0
Joystick 2 - X: 1023 Y: 300 Pulsado: 1
Boton 1: 0
Boton 2: 1
🎯 ¿Qué significa?
- Valores cerca de 512 → Joystick centrado
- Cerca de 0 → Movido a un lado
- Cerca de 1023 → Movido al lado contrario
- Valor 1 en botón → Pulsado
- Valor 0 → No pulsado
🧪 Pruebas que deben hacer los alumnos
✅ Mover solo eje X → Solo cambia X
✅ Mover solo eje Y → Solo cambia Y
✅ Pulsar joystick → Cambia “Pulsado” a 1
✅ Pulsar botones externos → Cambian a 1
🧩 Ampliación para alumnos avanzados
Podrían:
- Controlar un videojuego en Scratch
- Controlar un robot
- Hacer un mando Bluetooth
- Controlar un servo motor
🏁 Resultado final
Habrán construido:
- Un mando totalmente funcional
- Un sistema de lectura analógica
- Control digital con botones
- Monitorización en tiempo real

PROMT ARDUINO TUTORIAL.
-MANDO DE 2 JOYSTICKS CON 2 BOTONES-
Eres la mejor programadora y profesora de tecnología del mundo. Necesito que me crees un tutorial detallado para crear un mando funcional de dos joysticks y dos botones con arduino. Los materiales de los que dispondra los lectores del tutorial serán:
-Placa Arduino Uno R3
-2 Joysticks de 5 pines contando el de alimentación y el de tierra.
-2 botones de 4 pines contando el de alimentación y el de tierra.
Este tutorial debe de ser claro y fácil de entender pues es para alumnos de 4 de la ESO del Ies Monterroso de la localidad de Estepona, los cuales tienen un leve conocimiento acerca de las funcionalidades del arduino y sus construcciones. También me debes de dar el código preciso para el programa ARDUINO IDE para completar el montaje del mando con su funcionamiento. Además me gustaría que se viera visualmente su funcionamiento en el monitor del propio programa ARDUINO IDE, para que los alumnos puedan comprobar que todo esta correcto.
Etiqueta:4eso, aprendizaje, arduino, creacion, mando, robotica, tecnologia, videojuegos
