{"id":10472,"date":"2026-05-08T22:15:59","date_gmt":"2026-05-08T20:15:59","guid":{"rendered":"https:\/\/blogs.etsii.urjc.es\/dseytr\/?p=10472"},"modified":"2026-05-08T22:16:01","modified_gmt":"2026-05-08T20:16:01","slug":"mini-futbolin-auto-arbitrado","status":"publish","type":"post","link":"https:\/\/blogs.etsii.urjc.es\/dseytr\/mini-futbolin-auto-arbitrado\/","title":{"rendered":"Mini Futbol\u00edn Auto-Arbitrado"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"914\" height=\"574\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/Futbolin.jpeg\" alt=\"\" class=\"wp-image-10562\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/Futbolin.jpeg 914w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/Futbolin-300x188.jpeg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/Futbolin-768x482.jpeg 768w\" sizes=\"auto, (max-width: 914px) 100vw, 914px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><mark class=\"has-inline-color has-vivid-cyan-blue-color\">Autores:<\/mark><\/h2>\n\n\n\n<p>Sergio Espinosa Robles<br>Joel Domen\u00e9 \u00c1lvaro<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><mark class=\"has-inline-color has-vivid-cyan-blue-color\">Idea del proyecto:<\/mark><\/h2>\n\n\n\n<p>Este proyecto fue inspirado gracias a que todos en alg\u00fan momento de nuestra vida, hemos manejado o al menos conocido Arduino siendo j\u00f3venes, sin embargo, siempre han sido proyectos muy cl\u00e1sicos, como los robots de competici\u00f3n de seguimiento de linea.<\/p>\n\n\n\n<p>Para ello, pensamos, que podr\u00eda motivar a alguien joven a interesarse por su propia cuenta en este tipo de tecnolog\u00edas. \u00bfLa respuesta? La diversi\u00f3n. Y quien no ha disfrutado nunca jugando con amigos en un bar al futbol\u00edn, al billar, dardos.<br>El problema es que quer\u00edamos algo que tambi\u00e9n pudiera estar orientado hacia un publico mas infantil, algo que pudiese motivar a los mas peque\u00f1os de la casa a interesarse por la tecnolog\u00eda de Arduino.<\/p>\n\n\n\n<p>De este modo naci\u00f3 la idea, un futbol\u00edn que integrase tecnolog\u00eda de Arduino, ahora hab\u00eda que ver cual, dado que ELEGOO, ofrece una caja con m\u00faltiples componentes, quisimos dise\u00f1ar algo que \u00fanicamente tuviera piezas de este pack, con el objetivo de minimizar costes y que pudieran reutilizar los componentes, para futuros proyectos. Dado que los ni\u00f1os son propensos a hacer trampas, pensamos, \u00bfy si reducimos al m\u00ednimo la posibilidad de hacerlas? Y as\u00ed surgi\u00f3 la idea del auto-arbitraje, goles y control de la partida autom\u00e1ticos para que as\u00ed tanto ni\u00f1os como adultos pueden jugar unas partidas sin miedo a mentiras.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><mark class=\"has-inline-color has-vivid-cyan-blue-color\">Reparto del trabajo:<\/mark><\/h2>\n\n\n\n<p>Dado que nuestro proyecto era un artefacto de un tama\u00f1o considerable, consideramos que la manera mas optima de trabajar era, al uno tener disponible el material del kit y el otro disponer de multitud de herramientas, vivimos bastante lejos el uno del otro y no disponemos de un veh\u00edculo propio para transportar el proyecto con nosotros as\u00ed que tratamos en la medida de lo posible, separar el dise\u00f1o del software y el del hardware, para poder minimizar el numero de viajes en los que pudiera sufrir alg\u00fan componente, pero teniendo en mente un esquema de como deb\u00eda quedar para que luego no hubiera problemas al integrarlos, por ello la divisi\u00f3n mayoritaria fue:<\/p>\n\n\n\n<p>Sergio Espinosa Robles: Dise\u00f1o del Software<\/p>\n\n\n\n<p>Joel Domen\u00e9 \u00c1lvaro: Dise\u00f1o del Hardware<br><br>Ambos: Integraci\u00f3n del proyecto y b\u00fasqueda de soluciones a distintos problemas encontrados.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Arquitectura del Hardware:<\/h2>\n\n\n\n<p>\u2699\ufe0f <strong>Unidad de Control y Configuraci\u00f3n:<\/strong> En lugar de llenarlo de botones f\u00edsicos, hemos optado por un <strong>Receptor Infrarrojo (IR)<\/strong> conectado al pin 8. Este m\u00f3dulo lee las frecuencias a 38kHz de un mando a distancia, permitiendo a los jugadores elegir los equipos, el tiempo y el objetivo de goles c\u00f3modamente antes del saque inicial.<\/p>\n\n\n\n<p>\ud83d\udea8 <strong>Sistema de Arbitraje \u00d3ptico:<\/strong> La magia de la detecci\u00f3n autom\u00e1tica ocurre gracias a <strong>dos sensores infrarrojos de barrera<\/strong> instalados en las porter\u00edas (pines 7 y 10). Para evitar que una misma bola se cuente varias veces si se atasca, los hemos programado mediante l\u00f3gica inversa y detecci\u00f3n por flanco de bajada. Si el l\u00e1ser se corta, es gol; sin margen de error ni rebotes.<\/p>\n\n\n\n<p>\ud83d\udcca <strong>Interfaz Audiovisual:<\/strong> Para que los jugadores tengan puedan ver el marcador con tiempo en tiempo real, el sistema cuenta con un marcador digital proyectado en una <strong>Pantalla LCD 16&#215;2<\/strong> (cableada en modo de 4 bits). Adem\u00e1s, la experiencia se completa con un <strong>Buzzer activo<\/strong> (pin 6) que asume el rol del silbato del \u00e1rbitro: emite tonos de confirmaci\u00f3n en los men\u00fas, celebra cada tanto y pita el final del encuentro.<\/p>\n\n\n\n<p>\ud83d\udea7 <strong>Bloqueo Mec\u00e1nico:<\/strong> Cuando el partido termina o se llega al l\u00edmite de goles, el sistema debe impedir f\u00edsicamente que se siga jugando. Para ello, utilizamos un <strong>Servomotor SG90<\/strong> (controlado por se\u00f1al PWM en el pin 9) que abre una barrera de madera a 180\u00ba para liberar las bolas, y la bloquea en 0\u00ba al finalizar.<\/p>\n\n\n\n<p>\u26a1 <strong>Gesti\u00f3n de Energ\u00eda Aislada:<\/strong> Dado que el motor necesita picos de tensi\u00f3n para moverse, dada la gran cantidad de componentes observamos que conectado junto a todo no era capaz de moverse, mientras que si lo aliment\u00e1bamos con una fuente de energ\u00eda externa(una bater\u00eda de 4,5V), si era capaz de realizar estos movimientos<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"809\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/Circuito-1024x809.jpeg\" alt=\"\" class=\"wp-image-10561\" style=\"width:748px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/Circuito-1024x809.jpeg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/Circuito-300x237.jpeg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/Circuito-768x607.jpeg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/Circuito-1536x1213.jpeg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/Circuito.jpeg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Maqueta del dise\u00f1o mediante tinkercad<\/figcaption><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Dise\u00f1o del software y casos de uso(flujo de ejecuci\u00f3n del proyecto):<\/h2>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>Primera Fase: <\/strong>Para la implementaci\u00f3n del software, fuimos componente a componente, pero con el sistema final ya planteado, inicialmente \u00fanicamente implementamos el men\u00fa mediante la pantalla LCD y el sensor infrarrojo. Nuestro programa se basa en una maquina de estados, en esta fase, \u00fanicamente implementamos los estados SET_MODO, SET_EQUIPO_A, SET_EQUIPO_B, SET_TIEMPO, SET_GOLES y CONFIRMAR dentro de la funcion gestionarEntradaMando, una vez d\u00e1bamos a confirmar, el sistema se volv\u00eda a ejecutar situarse en el estado SET_MODO y ejecutaba de nuevo de manera indefinida.<\/p>\n\n\n\n<p><strong>Segunda Fase<\/strong>: A partir de aqu\u00ed, todav\u00eda no dispon\u00edamos de los sensores, si embargo, decidimos ir implementando el resto del c\u00f3digo utilizando se\u00f1ales con el mando, aqu\u00ed reutilizando la se\u00f1al del volumen arriba y volumen abajo, control\u00e1bamos los goles de uno y otro equipo mediante estos botones y as\u00ed pudimos completar lo que era el flujo de ejecuci\u00f3n del proyecto.<\/p>\n\n\n\n<p><strong>Tercera Fase:<\/strong> Llegaron los sensores, y llegaron los problemas, en cuenta al hardware, tuvimos peque\u00f1os problemas de cara a la detecci\u00f3n de la pelota, que \u00fanicamente requirieron de cierta calibraci\u00f3n y compra de pelotas de los colores adecuados. Sin embargo, en cuanto a la detecci\u00f3n, cada vez que el sensor detectaba la pelota, como env\u00eda la se\u00f1al varias veces por segundo, por lo que tuvimos que dise\u00f1ar una peque\u00f1a regla l\u00f3gica en el c\u00f3digo: hacer que el programa recordara c\u00f3mo estaba el sensor hace un momento. B\u00e1sicamente, era hacer que solo sumara un gol si el sensor detecta la bola ahora mismo, pero en la comprobaci\u00f3n anterior no hab\u00eda nada. Guardando siempre ese \u00abestado anterior\u00bb, conseguimos que el sistema solo cuente el instante exacto en el que entra la pelota, ignorando el resto del tiempo que se queda tapando el sensor.<\/p>\n\n\n\n<p><strong>Cuarta Fase:<\/strong> Por ultimo vino el servomotor, realmente era la parte mas sencilla del c\u00f3digo pero como todav\u00eda no hab\u00edamos trabajado con el hubo que investigar primero para asegurarnos de no forzar el motor, \u00fanicamente a\u00f1adimos al final de la partida y al inicio el cierre y apertura del mismo para cerrar\/abrir el paso a la pelota, tambi\u00e9n, consideramos adecuado a\u00f1adir en la funci\u00f3n setup un miBarrera.write(decirle al servo que gire) para cerrarlo, por si acaso se desconectaba la bater\u00eda por un tir\u00f3n, se colocase en la posici\u00f3n por defecto antes de iniciar la partida(cerrado).<\/p>\n\n\n\n<p>Por ultimo, dejamos el codigo dispoible para todo aquel que quiera replicar el proyecto:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;LiquidCrystal.h&gt;\n#include &lt;IRremote.hpp&gt;\n#include &lt;Servo.h&gt;\n\nLiquidCrystal lcd(12, 11, 5, 4, 3, 2);\nconst int pinIR = 8;\nconst int pinBuzzer = 6;\nconst int pinSensorA = 7;\nconst int pinSensorB = 10;\nconst int pinServo = 9;\n\nServo miBarrera;\n\nconst int BOTON_VOL_MAS = 70;\nconst int BOTON_VOL_MENOS = 21;\nconst int BOTON_PLAY = 64;\n\nenum Estado { SET_MODO, SET_EQUIPO_A, SET_EQUIPO_B, SET_TIEMPO, SET_GOLES, CONFIRMAR, JUGANDO, GOL_DE_ORO, FIN_PARTIDO };\nEstado estadoActual = SET_MODO;\n\nint modoJuego = 1;\nint equipoA = 0;\nint equipoB = 1;\n\nint minutosConfig = 5;\nint golesObjetivo = 3;\nint golesA = 0;\nint golesB = 0;\nint ganador = 0;\n\nint ultimoEstadoA = HIGH;\nint ultimoEstadoB = HIGH;\n\nunsigned long tiempoInicioPartido;\nunsigned long duracionTotalMs;\n\nconst char* const siglasClubes&#091;] = { \"RMA\", \"FCB\", \"ATM\", \"ATH\", \"BET\", \"VCF\", \"SFC\", \"GET\", \"RAY\" };\nconst char* const nombresClubes&#091;] = { \"Real Madrid\", \"Barcelona\", \"Atl. Madrid\", \"Ath. Bilbao\", \"Betis\", \"Valencia\", \"Sevilla\", \"Getafe\", \"Rayo Vallecano\" };\nconst char* const msgClubes&#091;] = { \"  Hala Madrid!  \", \"  Visca Barsa!  \", \"  Aupa Atleti!  \", \" Aupa Athletic! \", \" Viva er Beti!  \", \" Amunt Valencia!\", \" Vamos Sevilla! \", \"  Vamos Geta!   \", \"  A las armas!  \" };\n\nconst char* const siglasSelecs&#091;] = { \"ESP\", \"FRA\", \"ARG\", \"BRA\", \"ITA\", \"ENG\", \"GER\", \"POR\", \"COL\" };\nconst char* const nombresSelecs&#091;] = { \"Espana\", \"Francia\", \"Argentina\", \"Brasil\", \"Italia\", \"Inglaterra\", \"Alemania\", \"Portugal\", \"Colombia\" };\nconst char* const msgSelecs&#091;] = { \"  Viva Espana!  \", \"Allez les Bleus!\", \"  Vamo Carajo!  \", \"  Vai Brasil!   \", \" Forza Azzurri! \", \"Come on England!\", \"   Auf gehts!   \", \" Forca Portugal!\", \"  Si se puede!  \" };\n\nconst char* const* siglasActivas;\nconst char* const* nombresActivos;\nconst char* const* msgActivos;\n\nvoid setup() {\n  lcd.begin(16, 2);\n  IrReceiver.begin(pinIR);\n\n  pinMode(pinBuzzer, OUTPUT);\n  pinMode(pinSensorA, INPUT);\n  pinMode(pinSensorB, INPUT);\n\n  miBarrera.attach(pinServo);\n  miBarrera.write(0);\n  actualizarPantallaConfig();\n}\n\nvoid loop() {\n  if (IrReceiver.decode()) {\n    int comando = IrReceiver.decodedIRData.command;\n    if (comando != 0) {\n      gestionarEntradaMando(comando);\n      delay(300);\n    }\n    IrReceiver.resume();\n  }\n\n  if (estadoActual == JUGANDO || estadoActual == GOL_DE_ORO) {\n    leerSensoresGoles();\n    gestionarLogicaPartido();\n  }\n}\n\nvoid leerSensoresGoles() {\n  int estadoActualA = digitalRead(pinSensorA);\n  int estadoActualB = digitalRead(pinSensorB);\n\n  if (estadoActualA == LOW &amp;&amp; ultimoEstadoA == HIGH) {\n    golesA++;\n    pitidoSimple(2000, 150);\n    comprobarVictoria();\n    delay(50);\n  }\n\n  if (estadoActualB == LOW &amp;&amp; ultimoEstadoB == HIGH) {\n    golesB++;\n    pitidoSimple(2000, 150);\n    comprobarVictoria();\n    delay(50);\n  }\n\n  ultimoEstadoA = estadoActualA;\n  ultimoEstadoB = estadoActualB;\n}\n\nvoid gestionarEntradaMando(int cmd) {\n  switch (estadoActual) {\n    case SET_MODO:\n      if (cmd == BOTON_VOL_MAS || cmd == BOTON_VOL_MENOS) {\n        modoJuego = (modoJuego == 1) ? 2 : 1;\n      }\n      if (cmd == BOTON_PLAY) {\n        if (modoJuego == 1) {\n          siglasActivas = siglasClubes;\n          nombresActivos = nombresClubes;\n          msgActivos = msgClubes;\n        } else {\n          siglasActivas = siglasSelecs;\n          nombresActivos = nombresSelecs;\n          msgActivos = msgSelecs;\n        }\n        estadoActual = SET_EQUIPO_A;\n        pitidoSimple(1000, 100);\n      }\n      actualizarPantallaConfig();\n      break;\n\n    case SET_EQUIPO_A:\n      if (cmd == BOTON_VOL_MENOS) { equipoA = (equipoA + 1) % 9; }\n      if (cmd == BOTON_VOL_MAS) { equipoA = (equipoA - 1 + 9) % 9; }\n      if (cmd == BOTON_PLAY) {\n        estadoActual = SET_EQUIPO_B;\n        pitidoSimple(1000, 100);\n      }\n      actualizarPantallaConfig();\n      break;\n\n    case SET_EQUIPO_B:\n      if (cmd == BOTON_VOL_MENOS) { equipoB = (equipoB + 1) % 9; }\n      if (cmd == BOTON_VOL_MAS) { equipoB = (equipoB - 1 + 9) % 9; }\n      if (cmd == BOTON_PLAY) {\n        estadoActual = SET_TIEMPO;\n        pitidoSimple(1000, 100);\n      }\n      actualizarPantallaConfig();\n      break;\n\n    case SET_TIEMPO:\n      if (cmd == BOTON_VOL_MAS &amp;&amp; minutosConfig &lt; 8) minutosConfig++;\n      if (cmd == BOTON_VOL_MENOS &amp;&amp; minutosConfig &gt; 2) minutosConfig--;\n      if (cmd == BOTON_PLAY) {\n        estadoActual = SET_GOLES;\n        pitidoSimple(1000, 100);\n      }\n      actualizarPantallaConfig();\n      break;\n\n    case SET_GOLES:\n      if (cmd == BOTON_VOL_MAS &amp;&amp; golesObjetivo &lt; 5) golesObjetivo++;\n      if (cmd == BOTON_VOL_MENOS &amp;&amp; golesObjetivo &gt; 1) golesObjetivo--;\n      if (cmd == BOTON_PLAY) {\n        estadoActual = CONFIRMAR;\n        pitidoSimple(1000, 100);\n      }\n      actualizarPantallaConfig();\n      break;\n\n    case CONFIRMAR:\n      if (cmd == BOTON_PLAY) {\n        duracionTotalMs = (unsigned long)minutosConfig * 60000;\n        golesA = 0;\n        golesB = 0;\n        tiempoInicioPartido = millis();\n        estadoActual = JUGANDO;\n        lcd.clear();\n        miBarrera.write(180);\n        pitidoSimple(1500, 500);\n      }\n      break;\n\n    case JUGANDO:\n    case GOL_DE_ORO:\n      break;\n\n    case FIN_PARTIDO:\n      if (cmd == BOTON_PLAY) {\n        estadoActual = SET_MODO;\n        actualizarPantallaConfig();\n      }\n      break;\n  }\n}\n\nvoid comprobarVictoria() {\n  if (golesA &gt;= golesObjetivo || (estadoActual == GOL_DE_ORO &amp;&amp; golesA &gt; golesB)) {\n    miBarrera.write(0);\n    ganador = 1;\n    estadoActual = FIN_PARTIDO;\n    mostrarPantallaVictoria();\n    delay(100);\n    pitidoFinal();\n  } else if (golesB &gt;= golesObjetivo || (estadoActual == GOL_DE_ORO &amp;&amp; golesB &gt; golesA)) {\n    miBarrera.write(0);\n    ganador = 2;\n    estadoActual = FIN_PARTIDO;\n    mostrarPantallaVictoria();\n    delay(100);\n    pitidoFinal();\n  }\n}\n\nvoid gestionarLogicaPartido() {\n  unsigned long tiempoTranscurrido = millis() - tiempoInicioPartido;\n  if (estadoActual == JUGANDO) {\n    if (tiempoTranscurrido &gt;= duracionTotalMs) {\n      if (golesA == golesB) {\n        estadoActual = GOL_DE_ORO;\n        pitidoSimple(1200, 400);\n      } else {\n        miBarrera.write(0);\n        ganador = (golesA &gt; golesB) ? 1 : 2;\n        estadoActual = FIN_PARTIDO;\n        mostrarPantallaVictoria();\n        delay(100);\n        pitidoFinal();\n      }\n    }\n  }\n  if (estadoActual != FIN_PARTIDO) dibujarMarcador(tiempoTranscurrido);\n}\n\nvoid actualizarPantallaConfig() {\n  lcd.clear();\n  if (estadoActual == SET_MODO) {\n    lcd.print(\"Elija el modo:\");\n    lcd.setCursor(0, 1);\n    if (modoJuego == 1) lcd.print(\"1-Clubes\");\n    else lcd.print(\"2-Selecciones\");\n  } else if (estadoActual == SET_EQUIPO_A) {\n    if (modoJuego == 1) lcd.print(\"Club A:  (1-9)\");\n    else lcd.print(\"Slcn A:  (1-9)\");\n    lcd.setCursor(0, 1);\n    lcd.print(equipoA + 1);\n    lcd.print(\"-\");\n    lcd.print(nombresActivos&#091;equipoA]);\n  } else if (estadoActual == SET_EQUIPO_B) {\n    if (modoJuego == 1) lcd.print(\"Club B:  (1-9)\");\n    else lcd.print(\"Slcn B:  (1-9)\");\n    lcd.setCursor(0, 1);\n    lcd.print(equipoB + 1);\n    lcd.print(\"-\");\n    lcd.print(nombresActivos&#091;equipoB]);\n  } else if (estadoActual == SET_TIEMPO) {\n    lcd.print(\"Elegir tiempo:\");\n    lcd.setCursor(0, 1);\n    lcd.print(minutosConfig);\n    lcd.print(\" minutos\");\n  } else if (estadoActual == SET_GOLES) {\n    lcd.print(\"Goles objetivo:\");\n    lcd.setCursor(0, 1);\n    lcd.print(golesObjetivo);\n    lcd.print(\" goles\");\n  } else if (estadoActual == CONFIRMAR) {\n    lcd.print(\"Pulse PLAY para\");\n    lcd.setCursor(0, 1);\n    lcd.print(\"empezar...\");\n  }\n}\n\nvoid dibujarMarcador(unsigned long ms) {\n  lcd.setCursor(0, 0);\n  if (estadoActual == GOL_DE_ORO) lcd.print(\"   GOL DE ORO   \");\n  else {\n    int m = (ms \/ 60000);\n    int s = (ms % 60000) \/ 1000;\n    lcd.print(\"T:\");\n    lcd.print(m);\n    lcd.print(\":\");\n    if (s &lt; 10) lcd.print(\"0\");\n    lcd.print(s);\n    lcd.print(\" Obj:\");\n    lcd.print(golesObjetivo);\n    lcd.print(\"  \");\n  }\n  lcd.setCursor(0, 1);\n  lcd.print(siglasActivas&#091;equipoA]);\n  lcd.print(\" \");\n  lcd.print(golesA);\n  lcd.print(\"-\");\n  lcd.print(golesB);\n  lcd.print(\" \");\n  lcd.print(siglasActivas&#091;equipoB]);\n  lcd.print(\"   \");\n}\n\nvoid mostrarPantallaVictoria() {\n  lcd.clear();\n  lcd.setCursor(0, 0);\n  lcd.print(siglasActivas&#091;equipoA]);\n  lcd.print(\" \");\n  lcd.print(golesA);\n  lcd.print(\"-\");\n  lcd.print(golesB);\n  lcd.print(\" \");\n  lcd.print(siglasActivas&#091;equipoB]);\n\n  lcd.setCursor(0, 1);\n  if (ganador == 1) lcd.print(msgActivos&#091;equipoA]);\n  else lcd.print(msgActivos&#091;equipoB]);\n}\n\nvoid pitidoSimple(int frecuencia, int duracion) {\n  for (long i = 0; i &lt; duracion * 1000L; i += frecuencia) {\n    digitalWrite(pinBuzzer, HIGH);\n    delayMicroseconds(frecuencia \/ 2);\n    digitalWrite(pinBuzzer, LOW);\n    delayMicroseconds(frecuencia \/ 2);\n  }\n}\n\nvoid pitidoFinal() {\n  for (int i = 0; i &lt; 3; i++) {\n    pitidoSimple(1000, 400);\n    delay(200);\n  }\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Costes del proyecto:<\/h2>\n\n\n\n<p>A continuacion, mostramos una tabla con los costes estimados del proyecto, cabe recalcar, que este proyecto esta pensado para aquellos que dispongan de kit ELEGOO completo, con el cual poder replicar proyectos, ya que muchos de los costes que tuvimos que asumir fueron unicamente de piezas que no funcionaban, por lo tanto, invitamos a realizar este proyecto a todo aquel que disfrute de Arduino y el futbol<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Componente<\/strong><\/td><td><strong>Descripci\u00f3n<\/strong><\/td><td class=\"has-text-align-right\" data-align=\"right\"><strong>Coste real\/Coste con kit completo<\/strong><\/td><\/tr><tr><td>Pila 9V<\/td><td>Pila para la placa ELEGOO<\/td><td class=\"has-text-align-right\" data-align=\"right\">4,5\u20ac<\/td><\/tr><tr><td>Pila de litio CR2032<\/td><td>Pila para el mando<\/td><td class=\"has-text-align-right\" data-align=\"right\">3\u20ac<\/td><\/tr><tr><td>Servo SG-90<\/td><td>Servomotor de giro 180 grados<\/td><td class=\"has-text-align-right\" data-align=\"right\">4\u20ac<\/td><\/tr><tr><td>Cables de conexion<\/td><td>Cables macho hembra extra<\/td><td class=\"has-text-align-right\" data-align=\"right\">4,6\u20ac<\/td><\/tr><tr><td>Cable Arduino<\/td><td>Cable Arduino-USB<\/td><td class=\"has-text-align-right\" data-align=\"right\">0,9<\/td><\/tr><tr><td>Sensores<\/td><td>Sensores infrarrojos<\/td><td class=\"has-text-align-right\" data-align=\"right\">4,4\u20ac<\/td><\/tr><tr><td>Cajas de empotrar<\/td><td>Cajas de 10x5x4,5cm(3)<\/td><td class=\"has-text-align-right\" data-align=\"right\">2,61\u20ac<\/td><\/tr><tr><td>Codos<\/td><td>Codos de 45 grados<\/td><td class=\"has-text-align-right\" data-align=\"right\">0,96\u20ac<\/td><\/tr><tr><td>Tubo<\/td><td>Tubos de PVC de 40 mm<\/td><td class=\"has-text-align-right\" data-align=\"right\">2,54\u20ac<\/td><\/tr><tr><td>Varillas<\/td><td>Varillas roscadas de metal de 1m(2)<\/td><td class=\"has-text-align-right\" data-align=\"right\">2,46\u20ac<\/td><\/tr><tr><td>Tablero y jugadores<\/td><td>Carton piedra de 1x3m<\/td><td class=\"has-text-align-right\" data-align=\"right\">estimado 4\u20ac<\/td><\/tr><tr><td>Estructura<\/td><td>Caja de madera, tablones y patas<\/td><td class=\"has-text-align-right\" data-align=\"right\">estimado 7\u20ac<\/td><\/tr><tr><td>Varios<\/td><td>Tornillos, tuercas, arandelas, etc&#8230;<\/td><td class=\"has-text-align-right\" data-align=\"right\">2,35\u20ac<\/td><\/tr><tr><td><strong>Total<\/strong><\/td><td><\/td><td class=\"has-text-align-right\" data-align=\"right\">36,32\u20ac<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Problemas encontrados, soluciones y posibles mejoras:<\/h2>\n\n\n\n<p><strong>Problema 1: Ca\u00edda insuficiente de las porter\u00edas<\/strong><br><strong>Descripci\u00f3n:<\/strong> Dado que las porter\u00edas eran \u00fanicamente cajas de pl\u00e1stico, a veces la pelota pod\u00eda rebotar fuera o quedarse atrapadas dentro sin bajar<br><strong>Soluci\u00f3n:<\/strong> Ya que no cont\u00e1bamos con la materia para hacerlo, utilizamos unas peque\u00f1as rampas hechas con cart\u00f3n piedra para dirigir la pelota hacia el tubo<br><strong>Posible mejora:<\/strong> Lo ideal seria con un material como la plastilina, dar una peque\u00f1a capa en la pared trasera de las porter\u00edas, y hacer una peque\u00f1a ca\u00edda dentro para que vayan hacia el tubo, la plastilina o similares, al ser materiales muy blandos, absorben gran cantidad del impacto de la pelota, lo que har\u00eda que no rebotase<\/p>\n\n\n\n<p><strong>Problema 2: Goles con conteo m\u00faltiple<\/strong><br><strong>Descripci\u00f3n:<\/strong> Los sensores infrarrojos de las porter\u00edas env\u00edan de manera constante miles de se\u00f1ales para detectar si pasa alg\u00fan objeto o no, por tanto, al pasar la pelota, en m\u00faltiples ocasiones, contaba goles de manera repetida.<br><strong>Soluci\u00f3n:<\/strong> Como mencionamos en el apartado del c\u00f3digo, dise\u00f1amos una funci\u00f3n l\u00f3gica que guarda el estado del sensor, de manera que \u00fanicamente cuenta el gol cuando pasa de no detectar nada a detectar algo, si conserva el estado de detectar durante varias lecturas, no a\u00f1ade, as\u00ed solo cuneta un gol por cada vez que pasa la pelota<\/p>\n\n\n\n<p><strong>Problema 3: Se\u00f1ales confusas<\/strong>(no solucionado)<br><strong>Descripci\u00f3n:<\/strong> Al utilizar el mando para controlar el men\u00fa y los sensores para detectar los goles, se podr\u00eda hacer una peque\u00f1a trampa con el mando, ya que, aunque no afecte al estado del juego, al compartir frecuencia(ambos son infrarrojos) si pulsas el mando, los sensores pueden detectar la se\u00f1al y confundirla con el paso de la pelota, contando as\u00ed goles que no han ocurrido<br><strong>Posible mejora:<\/strong> Una vez finalizado el montaje, nos dimos cuenta que una gran idea y bastante mas intuitiva podr\u00eda ser utilizar el joystick para controlar el men\u00fa navegando de izquierda a derecha entre modo de clubes y selecciones, arriba a abajo entre clubes\/selecciones y utilizar el clic del Joystick para aceptar, dando lugar a mayor variedad de partidos como en juegos populares tipo FIFA.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><br>Video memoria:<\/h2>\n\n\n\n<p>Finalmente, adjuntamos el video explicativo en el que se incluye en el siguiente orden la explicaci\u00f3n del hardware utilizado, unas demostraciones del sistema en funcionamiento y finalmente, la explicacion del software implementado para asi lograr el proyecto completo.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"video-container\"><iframe loading=\"lazy\" title=\"Video Memoria-Mini Futbolin Auto Arbitrado-Grupo 14\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/B8KUKjvVFp8?feature=oembed&#038;wmode=opaque\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/div><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Autores: Sergio Espinosa RoblesJoel Domen\u00e9 \u00c1lvaro Idea del proyecto: Este proyecto fue inspirado gracias a que todos en alg\u00fan momento de nuestra vida, hemos manejado o al menos conocido Arduino siendo j\u00f3venes, sin embargo,&#46;&#46;&#46;<\/p>\n","protected":false},"author":344,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-10472","post","type-post","status-publish","format-standard","hentry","category-proyectos"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Mini Futbol\u00edn Auto-Arbitrado - Proyectos con Arduino.<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/mini-futbolin-auto-arbitrado\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mini Futbol\u00edn Auto-Arbitrado - Proyectos con Arduino.\" \/>\n<meta property=\"og:description\" content=\"Autores: Sergio Espinosa RoblesJoel Domen\u00e9 \u00c1lvaro Idea del proyecto: Este proyecto fue inspirado gracias a que todos en alg\u00fan momento de nuestra vida, hemos manejado o al menos conocido Arduino siendo j\u00f3venes, sin embargo,&#046;&#046;&#046;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/mini-futbolin-auto-arbitrado\/\" \/>\n<meta property=\"og:site_name\" content=\"Proyectos con Arduino.\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-08T20:15:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-08T20:16:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/Futbolin.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"914\" \/>\n\t<meta property=\"og:image:height\" content=\"574\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"seytrmo2526g14\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"seytrmo2526g14\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/mini-futbolin-auto-arbitrado\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/mini-futbolin-auto-arbitrado\\\/\"},\"author\":{\"name\":\"seytrmo2526g14\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/person\\\/5c62345a0fbca60028c9d6b9604e0123\"},\"headline\":\"Mini Futbol\u00edn Auto-Arbitrado\",\"datePublished\":\"2026-05-08T20:15:59+00:00\",\"dateModified\":\"2026-05-08T20:16:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/mini-futbolin-auto-arbitrado\\\/\"},\"wordCount\":1762,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/mini-futbolin-auto-arbitrado\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2026\\\/05\\\/Futbolin.jpeg\",\"articleSection\":[\"Proyectos\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/mini-futbolin-auto-arbitrado\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/mini-futbolin-auto-arbitrado\\\/\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/mini-futbolin-auto-arbitrado\\\/\",\"name\":\"Mini Futbol\u00edn Auto-Arbitrado - Proyectos con Arduino.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/mini-futbolin-auto-arbitrado\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/mini-futbolin-auto-arbitrado\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2026\\\/05\\\/Futbolin.jpeg\",\"datePublished\":\"2026-05-08T20:15:59+00:00\",\"dateModified\":\"2026-05-08T20:16:01+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/mini-futbolin-auto-arbitrado\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/mini-futbolin-auto-arbitrado\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/mini-futbolin-auto-arbitrado\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2026\\\/05\\\/Futbolin.jpeg\",\"contentUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2026\\\/05\\\/Futbolin.jpeg\",\"width\":914,\"height\":574},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/mini-futbolin-auto-arbitrado\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mini Futbol\u00edn Auto-Arbitrado\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#website\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\",\"name\":\"Proyectos con Arduino.\",\"description\":\"Blog de proyectos de Arduino de alumnos de la URJC\",\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\",\"name\":\"Universidad Rey Juan Carlos\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2022\\\/05\\\/logourjc-1.jpg\",\"contentUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2022\\\/05\\\/logourjc-1.jpg\",\"width\":745,\"height\":288,\"caption\":\"Universidad Rey Juan Carlos\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/person\\\/5c62345a0fbca60028c9d6b9604e0123\",\"name\":\"seytrmo2526g14\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fd418a9119f00b781b8259207a965b1539b2f123d37ce12c920af5184ef0a68a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fd418a9119f00b781b8259207a965b1539b2f123d37ce12c920af5184ef0a68a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fd418a9119f00b781b8259207a965b1539b2f123d37ce12c920af5184ef0a68a?s=96&d=mm&r=g\",\"caption\":\"seytrmo2526g14\"},\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/author\\\/seytrmo2526g14\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Mini Futbol\u00edn Auto-Arbitrado - Proyectos con Arduino.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blogs.etsii.urjc.es\/dseytr\/mini-futbolin-auto-arbitrado\/","og_locale":"es_ES","og_type":"article","og_title":"Mini Futbol\u00edn Auto-Arbitrado - Proyectos con Arduino.","og_description":"Autores: Sergio Espinosa RoblesJoel Domen\u00e9 \u00c1lvaro Idea del proyecto: Este proyecto fue inspirado gracias a que todos en alg\u00fan momento de nuestra vida, hemos manejado o al menos conocido Arduino siendo j\u00f3venes, sin embargo,&#46;&#46;&#46;","og_url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/mini-futbolin-auto-arbitrado\/","og_site_name":"Proyectos con Arduino.","article_published_time":"2026-05-08T20:15:59+00:00","article_modified_time":"2026-05-08T20:16:01+00:00","og_image":[{"width":914,"height":574,"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/Futbolin.jpeg","type":"image\/jpeg"}],"author":"seytrmo2526g14","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"seytrmo2526g14","Tiempo de lectura":"13 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/mini-futbolin-auto-arbitrado\/#article","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/mini-futbolin-auto-arbitrado\/"},"author":{"name":"seytrmo2526g14","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/person\/5c62345a0fbca60028c9d6b9604e0123"},"headline":"Mini Futbol\u00edn Auto-Arbitrado","datePublished":"2026-05-08T20:15:59+00:00","dateModified":"2026-05-08T20:16:01+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/mini-futbolin-auto-arbitrado\/"},"wordCount":1762,"commentCount":0,"publisher":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/mini-futbolin-auto-arbitrado\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/Futbolin.jpeg","articleSection":["Proyectos"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/mini-futbolin-auto-arbitrado\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/mini-futbolin-auto-arbitrado\/","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/mini-futbolin-auto-arbitrado\/","name":"Mini Futbol\u00edn Auto-Arbitrado - Proyectos con Arduino.","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/mini-futbolin-auto-arbitrado\/#primaryimage"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/mini-futbolin-auto-arbitrado\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/Futbolin.jpeg","datePublished":"2026-05-08T20:15:59+00:00","dateModified":"2026-05-08T20:16:01+00:00","breadcrumb":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/mini-futbolin-auto-arbitrado\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/mini-futbolin-auto-arbitrado\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/mini-futbolin-auto-arbitrado\/#primaryimage","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/Futbolin.jpeg","contentUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/Futbolin.jpeg","width":914,"height":574},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/mini-futbolin-auto-arbitrado\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/blogs.etsii.urjc.es\/dseytr\/"},{"@type":"ListItem","position":2,"name":"Mini Futbol\u00edn Auto-Arbitrado"}]},{"@type":"WebSite","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#website","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/","name":"Proyectos con Arduino.","description":"Blog de proyectos de Arduino de alumnos de la URJC","publisher":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.etsii.urjc.es\/dseytr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization","name":"Universidad Rey Juan Carlos","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/logo\/image\/","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/05\/logourjc-1.jpg","contentUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/05\/logourjc-1.jpg","width":745,"height":288,"caption":"Universidad Rey Juan Carlos"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/person\/5c62345a0fbca60028c9d6b9604e0123","name":"seytrmo2526g14","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/fd418a9119f00b781b8259207a965b1539b2f123d37ce12c920af5184ef0a68a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/fd418a9119f00b781b8259207a965b1539b2f123d37ce12c920af5184ef0a68a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fd418a9119f00b781b8259207a965b1539b2f123d37ce12c920af5184ef0a68a?s=96&d=mm&r=g","caption":"seytrmo2526g14"},"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/author\/seytrmo2526g14\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/10472","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/users\/344"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/comments?post=10472"}],"version-history":[{"count":7,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/10472\/revisions"}],"predecessor-version":[{"id":10580,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/10472\/revisions\/10580"}],"wp:attachment":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media?parent=10472"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/categories?post=10472"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/tags?post=10472"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}