{"id":8047,"date":"2024-05-07T22:39:06","date_gmt":"2024-05-07T20:39:06","guid":{"rendered":"https:\/\/blogs.etsii.urjc.es\/dseytr\/?p=8047"},"modified":"2024-05-07T22:39:08","modified_gmt":"2024-05-07T20:39:08","slug":"juego-de-simon-con-arduino","status":"publish","type":"post","link":"https:\/\/blogs.etsii.urjc.es\/dseytr\/juego-de-simon-con-arduino\/","title":{"rendered":"Juego de Simon con Arduino"},"content":{"rendered":"\n<p>Proyecto realizado por: Andr\u00e9s Mart\u00edn Esteban y Carlos Casado Suela.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-31.png\" alt=\"\" class=\"wp-image-8251\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-31.png 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-31-300x225.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-31-768x576.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00cdndice<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"#descripcion\">Descripci\u00f3n del proyecto<\/a><\/li>\n\n\n\n<li><a href=\"#materiales\">Materiales utilizados<\/a><\/li>\n\n\n\n<li><a href=\"#desarrollo\">Desarrollo del proyecto<\/a><\/li>\n\n\n\n<li><a href=\"#problemas\">Problemas encontrados<\/a><\/li>\n\n\n\n<li><a href=\"#3d\">Modelado 3D<\/a><\/li>\n\n\n\n<li><a href=\"#codigo\">C\u00f3digo y circuito del proyecto<\/a><\/li>\n\n\n\n<li><a href=\"#resultado\">Resultado final<\/a><\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"descripcion\">DESCRIPCI\u00d3N DEL PROYECTO<\/h3>\n\n\n\n<p>Para el proyecto nos hemos propuesto recrear en Arduino el famoso juego del Simon, que es un juego que consiste en memorizar las secuencias de luces que van apareciendo y reproducirlas en orden en los botones indicados por el mismo color de la led iluminada. A cada nivel que pasa, se va a\u00f1adiendo una nueva iluminaci\u00f3n de led a la secuencia, por lo que avanzar de nivel cada vez es m\u00e1s dif\u00edcil. \u00bfCu\u00e1ntos puntos crees que puedas hacer? \u00a1Desc\u00fabrelo a continuaci\u00f3n!<\/p>\n\n\n\n<p>Al juego le hemos a\u00f1adido funcionalidad aparte del original, como por ejemplo una 5\u00ba led con su respectivo bot\u00f3n (el juego original consta de 4 leds), la opci\u00f3n de seleccionar en que dificultad quiere jugar el usuario, una tabla con el hist\u00f3rico de las mejores puntuaciones registradas en el sistema, la cual funciona haciendo uso de la memoria EEPROM del Arduino, y un novedoso nuevo modo de juego en el que, en vez de mostrarse la secuencia entera a reproducir en los botones, solo se muestra la nueva led de la secuencia, teniendo el usuario que recordar como era la secuencia antes de a\u00f1adir esta nueva led, \u00a1por lo que el usuario hace mayor uso de su memoria!<\/p>\n\n\n\n<p>Adem\u00e1s, le hemos a\u00f1adido una pantalla al juego, para que el usuario pueda revisar en cada momento que tiempo le queda para responder o pueda seleccionar la dificultad del juego entre otras cosas.<\/p>\n\n\n\n<p>Tambi\u00e9n hemos a\u00f1adido un peque\u00f1o altavoz, para que la memoria implicada en el juego no sea s\u00f3lo visual sino tambi\u00e9n auditiva, siendo que cada color de led lleva asociado un sonido particular, \u00bfTe atreves a jugar con los ojos cerrados? Adem\u00e1s, cuando pierdes o ganas, el altavoz reproduce una melod\u00eda que indica al usuario que ha fallado o que ha terminado todos los niveles.<\/p>\n\n\n\n<p>El juego dispone de un m\u00e1ximo de 100 niveles, significando que si eres capaz de responder a los 100 niveles, \u00a1habr\u00e1s ganado el juego!<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"materiales\">MATERIALES UTILIZADOS<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Nombre<\/strong><\/td><td><strong>Detalles<\/strong><\/td><td><strong>Unidades<\/strong><\/td><td><strong>Precio<\/strong> (<a href=\"https:\/\/www.bing.com\/ck\/a?!&amp;&amp;p=3dcfdce861fb09f2JmltdHM9MTcxMzc0NDAwMCZpZ3VpZD0wNDNjMzgyMS1mMjQ3LTZmNzYtMTM2MS0zN2UzZjM2YzZlNWYmaW5zaWQ9NTU2Ng&amp;ptn=3&amp;ver=2&amp;hsh=3&amp;fclid=043c3821-f247-6f76-1361-37e3f36c6e5f&amp;u=a1L3NlYXJjaD9xPUV1cm8mRk9STT1TTkFQU1QmZmlsdGVycz1zaWQ6ImIzZTdhY2VmLTM5ODAtODViOS1iYTQ1LTI5YjExN2VmZjc3OCI&amp;ntb=1\" target=\"_blank\" rel=\"noreferrer noopener\">\u20ac<\/a>)<\/td><\/tr><tr><td>Arduino Uno R3<\/td><td>Placa de Arduino utilizada para el proyecto<\/td><td>1<\/td><td>&#8211;<\/td><\/tr><tr><td>Resistencia<\/td><td>Resistencia 330\u03a9<\/td><td>5<\/td><td>&#8211;<\/td><\/tr><tr><td>Led<\/td><td>Leds de diferentes colores<\/td><td>5<\/td><td>0,3<\/td><\/tr><tr><td>Pulsador<\/td><td>Pulsadores de diferentes colores<\/td><td>5<\/td><td>0,7<\/td><\/tr><tr><td>Lcd<\/td><td>Pantalla Lcd I2C 20&#215;4<\/td><td>1<\/td><td>11<\/td><\/tr><tr><td>Pila<\/td><td>Una pila para dar energ\u00eda al arduino (9V)<\/td><td>1<\/td><td>3<\/td><\/tr><tr><td>Piezo<\/td><td>Piezo para reproducir diferentes sonidos<\/td><td>1<\/td><td>&#8211;<\/td><\/tr><tr><td>Interruptor<\/td><td>Para el mecanismo de encendido\/apagado<\/td><td>1<\/td><td>0,3<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"desarrollo\">DESARROLLO DEL PROYECTO<\/h3>\n\n\n\n<p>Lo primero que hicimos para desarrollar el proyecto fue implementar la l\u00f3gica del juego. Para ello definimos como quer\u00edamos que funcionase el juego antes de empezar a programar nada, y decidimos que las dificultades vendr\u00edan dadas por el tiempo que se muestra la led encendida en cada nivel, siendo la dificultad m\u00e1s f\u00e1cil la que m\u00e1s tiempo est\u00e1 encendidos los leds.<\/p>\n\n\n\n<p>Luego empezamos a programar esto. Para programarlo pensamos en un array que fuese guardando la secuencia correcta, una funci\u00f3n que leyera los botones pulsados en cada momento del nivel por el usuario, y una funci\u00f3n nivel que comprobara si la secuencia introducida por el usuario es correcta o no, devolviendo -1 en caso de acertar o el n\u00famero del nivel en caso de que no.<\/p>\n\n\n\n<p>El n\u00famero de nivel lo devolvemos porque es el que m\u00e1s tarde utilizar\u00edamos para actualizar la puntuaciones en la memoria EEPROM.<\/p>\n\n\n\n<p>Cuando realizamos esto, pensamos que nuestro proyecto era demasiado similar al juego original, por lo que pensamos en a\u00f1adir el nuevo modo de juego que al final hemos implementado, que coge los tiempos de la dificultad m\u00e1s dificil anteriormente programada y, en vez de mostrar toda la secuencia guardada en el array mencionado anteriormente, solo mostraba la \u00faltima entrada.<\/p>\n\n\n\n<p>A\u00fan con este nuevo modo de juego sent\u00edamos insuficiente lo implementado, por lo que decidimos a\u00f1adir el altavoz que reprodujera sonidos cuando se iluminaba una led espec\u00edfica o que reprodujera melod\u00edas caracter\u00edsticas de una partida ganada\/perdida, f\u00e1cilmente reconocibles para el usuario, ya que est\u00e1n cogidas del famoso juego Super Mario. Esto mejoraba la experiencia del usuario con el sistema, pero segu\u00eda pareciendo insuficiente para el sistema la funcionalidad hasta ahora aplicada.<\/p>\n\n\n\n<p>Entonces decidimos a\u00f1adir una pantalla LCD, concretamente de protocolo I2C, ya que la que nos ven\u00eda dada para la realizaci\u00f3n del proyecto ocupaba muchos pines que ya estaban siendo usador por las leds y los botones. Esta pantalla nos abri\u00f3 un abanico de posibilidades para la implementaci\u00f3n de funcionalidad nueva, como la visualizaci\u00f3n en todo momento del tiempo disponible para marcar la secuencia con los botones, la visualizaci\u00f3n de la puntuaci\u00f3n al final de la partida o la opci\u00f3n de que el usuario sepa en que dificultad est\u00e1 jugando en todo momento.<\/p>\n\n\n\n<p>Cuando ya implementamos todo lo mencionado anteriormente, fue cuando decidimos hacer uso de la memoria EEPROM del Arduino para guardar las puntuaciones finales, concretamente las 4 mejores.<\/p>\n\n\n\n<p>Al terminar de montar lo necesario para testear el sistema y antes de montarlo en lo que ser\u00e1 su caja definitiva, as\u00ed se ve\u00eda el proyecto:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"850\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/Imagen-de-WhatsApp-2024-04-22-a-las-12.22.52_2c4855b0-1024x850.jpg\" alt=\"\" class=\"wp-image-8057\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/Imagen-de-WhatsApp-2024-04-22-a-las-12.22.52_2c4855b0-1024x850.jpg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/Imagen-de-WhatsApp-2024-04-22-a-las-12.22.52_2c4855b0-300x249.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/Imagen-de-WhatsApp-2024-04-22-a-las-12.22.52_2c4855b0-768x637.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/Imagen-de-WhatsApp-2024-04-22-a-las-12.22.52_2c4855b0-1536x1275.jpg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/Imagen-de-WhatsApp-2024-04-22-a-las-12.22.52_2c4855b0.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"problemas\">PROBLEMAS ENCONTRADOS<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Cuenta atr\u00e1s<\/h4>\n\n\n\n<p>A la hora de implementar la cuenta atr\u00e1s con el tiempo restante para introducir la secuencia, primeramente intentamos implementarlo con la funci\u00f3n millis(), de tal forma que guardamos el tiempo inicial en una variable, y compar\u00e1bamos si el tiempo actual (millis) era menor que el tiempo inicial mas 5 (tiempo m\u00e1ximo establecido), pero el uso de esta funci\u00f3n daba problemas, ya que a veces no guardaba bien el tiempo actual y no terminaba de hacer la cuenta atr\u00e1s, y otras veces no se reseteaba el tiempo, dando a casos en los que el usuario pierde sin tener opci\u00f3n a responder.<\/p>\n\n\n\n<p>Nuestra soluci\u00f3n fue utilizar una librer\u00eda, ellapsedMillis, que tiene una funcionalidad parecida a millis, pero para usarla, en vez de guardar el valor de retorno de millis en una variable, directamente creamos una variable ellapsedMillis que va actualiz\u00e1ndose cada milisegundo que pasa, por lo que para implementarlo en la funci\u00f3n de leer botones, simplemente hab\u00eda que declarar una variable nueva, que empezara su cuenta en 0, y comparar todo el rato su valor con 5000 (5 segundos), de forma que la funci\u00f3n se interrumpiera en caso de que la variable valiera m\u00e1s que 5000.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Mantener bot\u00f3n pulsado<\/h4>\n\n\n\n<p>Con nuestra forma de leer los botones, pod\u00eda darse una situaci\u00f3n en la que, si el usuario dejaba el bot\u00f3n presionado a la hora de introducir una secuencia, el bot\u00f3n segu\u00eda pasando su valor a la funci\u00f3n de leer botones aunque se hubiera cambiado de nivel, por lo que se pod\u00eda incluso llegar a situaciones en las que si un jugador dejaba el bot\u00f3n presionado m\u00e1s de la cuenta en el modo imposible, el cual s\u00f3lo imprime la \u00faltima led de la secuencia, leyera 2 veces el bot\u00f3n, y perdiera la partida, lo que pod\u00eda llegar a ser muy frustrante para el usuario.<\/p>\n\n\n\n<p>Para solucionarlo, introducimos al proyecto un array de bool, que representaba el estado del bot\u00f3n, siendo esto que si el bot\u00f3n estaba pulsado la variable bool del respectivo bot\u00f3n estar\u00eda establecida en true, mientras que si no estuviera pulsado, estar\u00eda establecida en false.<\/p>\n\n\n\n<p>Con este array hacemos comparaciones en la funci\u00f3n de leer botones. Si el bot\u00f3n tiene estado LOW( Recordar que los botones est\u00e1n establecidos en INPUT-PULLUP)  y su variable booleana aparece como true, es decir, el bot\u00f3n no se ha soltado desde que se ha pulsado, entonces no se imprime ese bot\u00f3n como respuesta a la secuencia. Para que esto funcione correctamente, hemos implementado tambi\u00e9n un condicional que actualiza el estado de la variables booleanas, tanto si el bot\u00f3n deja de estar pulsado y la variable esta establecida en true, como si el bot\u00f3n est\u00e1 pulsado y la variable est\u00e1 establecida en false, en ambos casos cambia el valor de la variable.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Pantalla LCD<\/h4>\n\n\n\n<p>Para el sistema dispon\u00edamos de una pantalla LCD 16&#215;2, que no cuenta con el protocolo I2C, por lo que para hacerla funcionar necesit\u00e1bamos de una amplia cantidad de pines del Arduino, cantidad con la que no cont\u00e1bamos ya que estaban en su mayor\u00eda ocupados por las leds, y los botones. <\/p>\n\n\n\n<p>Por lo que decidimos adquirir una nueva pantalla con protocolo I2C, que tan solo requer\u00eda de los pines SDA, SCL, 5V, y GND, pines que no est\u00e1n ocupados en nuestro proyecto. Adem\u00e1s, la nueva pantalla que hemos adquirido es m\u00e1s grande, de 20&#215;4 caracteres, con lo que disponemos de m\u00e1s espacio para facilitar la informaci\u00f3n al usuario.<\/p>\n\n\n\n<p>Esta pantalla al principio nos dio problemas, ya que desconoc\u00edamos si funcionamiento, y no sab\u00edamos que hab\u00eda que ajustar la luminosidad de los caracteres con un potenci\u00f3metro que hay en la parte trasera de la pantalla, as\u00ed que eso os dio problemas hasta que descubrimos el funcionamiento del potenci\u00f3metro.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"3d\">MODELADO 3D<\/h3>\n\n\n\n<p>Para dise\u00f1ar una caja para el sistema, nos hemos inspirado en un mando de la PlayStation, de forma que quedan 3 botones con sus respectivos leds en un lado del mando, donde t\u00edpicamente en el mando tradicional de PlayStation estar\u00edan los botones, otros 2 botones con sus respectivos leds donde t\u00edpicamente se encontrar\u00eda las flechas direccionales del mando. Adem\u00e1s, la pantalla se situar\u00eda en el centro del mando.<\/p>\n\n\n\n<p>Con esta distribuci\u00f3n de los botones conseguimos que el usuario tenga siempre en cuenta el tiempo restante para resolver, ya que la pantalla est\u00e1 relativamente cerca de los botones, y el usuario no tiene casi que desviar la mirada para atender al tiempo restante, lo que le permite tener una mejor experiencia de juego.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"725\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-29-1024x725.png\" alt=\"\" class=\"wp-image-8245\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-29-1024x725.png 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-29-300x212.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-29-768x544.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-29-1536x1088.png 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-29.png 1771w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"665\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-30-1024x665.png\" alt=\"\" class=\"wp-image-8246\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-30-1024x665.png 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-30-300x195.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-30-768x499.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-30-1536x998.png 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-30.png 1808w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Adem\u00e1s realizamos tambi\u00e9n una carcasa trasera para el mando pero fallo durante la impresi\u00f3n y no la pudimos a\u00f1adir.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"720\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-32-1024x720.png\" alt=\"\" class=\"wp-image-8254\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-32-1024x720.png 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-32-300x211.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-32-768x540.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-32-1536x1080.png 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-32.png 1989w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"711\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-33-1024x711.png\" alt=\"\" class=\"wp-image-8255\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-33-1024x711.png 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-33-300x208.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-33-768x533.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-33-1536x1067.png 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-33.png 1810w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"codigo\">C\u00d3DIGO Y CIRCUITO DEL PROYECTO<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;elapsedMillis.h&gt;\n\n#include &lt;EEPROM.h&gt;\n\n#include &lt;LiquidCrystal_I2C.h&gt;\n\n#define NOTE_G3  196\n#define NOTE_C4  262\n#define NOTE_E4  330\n#define NOTE_G5  784\n#define NOTE_AS5 932\n\n\n#define tonePin 2\n\nLiquidCrystal_I2C lcd(0x27, 20, 4);\n\nconst int led&#091;] = {7, 9, 3, 8, 4};\/\/blanco,rojo,amarillo,verde,azul\nconst int button&#091;] = {11, 13, 0, 12, 2};\/\/blanco,rojo,amarillo,verde,azul\n\nint niveles = 100;\n\nconst int gameTones&#091;] = { NOTE_G3, NOTE_C4, NOTE_E4, NOTE_G5, NOTE_AS5};\n\n\nint dificultad;\n\nbyte partida&#091;100];\n\nbool extremeMode = false, pulsado&#091;] = {false, false, false, false, false};\n\nbyte ABIERTO&#091;8] = {\nB11111,\nB10001,\nB10001,\nB10001,\nB10001,\nB10001,\nB10001,\nB11111,\n};\n\nbyte CERRADO&#091;8] = {\nB11111,\nB11111,\nB11111,\nB11111,\nB11111,\nB11111,\nB11111,\nB11111,\n};\n\nbyte MEDIO&#091;8] = {\nB11111,\nB10001,\nB10001,\nB10001,\nB11111,\nB11111,\nB11111,\nB11111,\n};\n\n\nvoid loosingSound() {\n    tone(tonePin, 523, 150.0);\n    delay(166.666666667);\n    delay(166.666666667);\n    tone(tonePin, 391, 150.0);\n    delay(166.666666667);\n    delay(166.666666667);\n    tone(tonePin, 329, 225.0);\n    delay(250.0);\n    tone(tonePin, 440, 172.5);\n    delay(191.666666667);\n    delay(2.77777777778);\n    tone(tonePin, 493, 172.5);\n    delay(191.666666667);\n    delay(2.77777777778);\n    tone(tonePin, 440, 175.0);\n    delay(194.444444444);\n    tone(tonePin, 415, 225.0);\n    delay(250.0);\n    tone(tonePin, 466, 225.0);\n    delay(250.0);\n    tone(tonePin, 415, 225.0);\n    delay(250.0);\n    tone(tonePin, 391, 112.5);\n    delay(125.0);\n    tone(tonePin, 349, 112.5);\n    delay(125.0);\n    tone(tonePin, 391, 30.0);\n    delay(33.3333333333);\n    tone(tonePin, 384, 500.0);\n    delay(666.666666667);\n}\nvoid winSound() {\n    tone(tonePin, 195, 98.2530375);\n    delay(109.170041667);\n    delay(5.02756770833);\n    tone(tonePin, 261, 98.2530375);\n    delay(109.170041667);\n    delay(5.74579166667);\n    tone(tonePin, 329, 97.6066359375);\n    delay(108.451817708);\n    delay(7.18223958333);\n    tone(tonePin, 391, 98.2530375);\n    delay(109.170041667);\n    delay(5.02756770833);\n    tone(tonePin, 523, 98.2530375);\n    delay(109.170041667);\n    delay(5.74579166667);\n    tone(tonePin, 659, 97.6066359375);\n    delay(108.451817708);\n    delay(7.18223958333);\n    tone(tonePin, 783, 294.7591125);\n    delay(327.510125);\n    delay(17.237375);\n    tone(tonePin, 659, 294.7591125);\n    delay(327.510125);\n    delay(17.237375);\n    tone(tonePin, 207, 98.2530375);\n    delay(109.170041667);\n    delay(5.02756770833);\n    tone(tonePin, 261, 98.2530375);\n    delay(109.170041667);\n    delay(5.74579166667);\n    tone(tonePin, 311, 97.6066359375);\n    delay(108.451817708);\n    delay(7.18223958333);\n    tone(tonePin, 415, 98.2530375);\n    delay(109.170041667);\n    delay(5.02756770833);\n    tone(tonePin, 523, 98.2530375);\n    delay(109.170041667);\n    delay(5.74579166667);\n    tone(tonePin, 622, 97.6066359375);\n    delay(108.451817708);\n    delay(7.18223958333);\n    tone(tonePin, 830, 294.7591125);\n    delay(327.510125);\n    delay(17.237375);\n    tone(tonePin, 622, 294.7591125);\n    delay(327.510125);\n    delay(17.237375);\n    tone(tonePin, 233, 98.2530375);\n    delay(109.170041667);\n    delay(5.02756770833);\n    tone(tonePin, 293, 98.2530375);\n    delay(109.170041667);\n    delay(5.74579166667);\n    tone(tonePin, 349, 97.6066359375);\n    delay(108.451817708);\n    delay(7.18223958333);\n    tone(tonePin, 466, 98.2530375);\n    delay(109.170041667);\n    delay(5.02756770833);\n    tone(tonePin, 587, 98.2530375);\n    delay(109.170041667);\n    delay(5.74579166667);\n    tone(tonePin, 698, 97.6066359375);\n    delay(108.451817708);\n    delay(7.18223958333);\n    tone(tonePin, 932, 294.7591125);\n    delay(327.510125);\n    delay(17.237375);\n    tone(tonePin, 932, 98.2530375);\n    delay(109.170041667);\n    delay(5.02756770833);\n    tone(tonePin, 932, 98.2530375);\n    delay(109.170041667);\n    delay(5.74579166667);\n    tone(tonePin, 932, 97.6066359375);\n    delay(108.451817708);\n    delay(7.18223958333);\n    tone(tonePin, 659, 294.7591125);\n    delay(327.510125);\n\n}\n\nvoid iluminarLed(int l){\n  digitalWrite(led&#091;l], HIGH);\n  tone(tonePin, gameTones&#091;l]);\n  delay(200 * dificultad);\n  digitalWrite(led&#091;l], LOW);\n  noTone(tonePin);\n  delay(50);\n}\n\nvoid printTopScores(int punt){\n  lcd.clear();\n  lcd.setCursor(4, 0);\n  lcd.print(\"Puntuaciones\");\n  lcd.setCursor(0,1);\n  for(int i = 0; i &lt; 4; i++){\n    lcd.print(i+1);\n    lcd.print(\": \");\n    lcd.print(EEPROM.read(i*4));\n    if(i%2==1){\n      lcd.setCursor(0,2);\n    }else{\n      lcd.print(\", \");\n    }\n  }\n  lcd.setCursor(0, 3);\n  lcd.print(\"Tu Puntuacion:\");\n  lcd.print(punt);\n}\n\nvoid updateTopScores(int puntuacionUsuario){\n  for(int i = 0; i &lt; 4; i++){\n    if(puntuacionUsuario &gt; EEPROM.read(4*i)){\n      if (i != 3){\n        for(int j=3; j&gt;i; j--){\n          EEPROM.write(4*j, EEPROM.read(4*(j-1)));\n        }\n      }\n      EEPROM.write(4*i, puntuacionUsuario);\n      break;\n    }\n  }\n}\n\n\nint level(byte n){\n  lcd.setCursor(6, 2);\n  byte valor = 0;\n  int aux;\n  String nS;\n  \n  partida&#091;n] = random(5);\n  lcd.print(n);\n  if (!extremeMode){\n    for (byte i = 0; i &lt; n; i++){\n      iluminarLed(partida&#091;i]);\n    }\n  }else{ \n    iluminarLed(partida&#091;n]);\n  }\n  if (!extremeMode){\n    while(valor &lt; n){\n        aux = readButtons();\n        if(aux!=-1)\n          iluminarLed(aux);\n        if (aux == partida&#091;valor]){\n          valor++;\n          delay(5);\n        }else return n;\n      }\n  }else{\n    while(valor &lt;= n){\n      aux = readButtons();\n      if(aux!=-1)\n        iluminarLed(aux);\n      if (aux == partida&#091;valor]){\n        valor++;\n        delay(5);\n      }else return n;\n    }\n  }\n  return -1;\n}\n\nint readDifficulties() {\n  while (true) {\n    for (int i = 0; i &lt; 5; i++) {\n      byte buttonPin = button&#091;i];\n      if (digitalRead(buttonPin) == LOW &amp;&amp; pulsado&#091;i] == false) {\n        pulsado&#091;i]=true;\n        return i;\n      }\n      if(digitalRead(buttonPin) == HIGH &amp;&amp; pulsado&#091;i] == true){\n        pulsado&#091;i]=false;\n      }\n    }\n    delay(1);\n  }\n}\n\nint readButtons() {\n  elapsedMillis timer;\n  lcd.setCursor(2, 3);\n  lcd.print(\"Tiempo Restante:\");\n\n  while (timer &lt; 5000) {\n    lcd.setCursor(18, 3);\n    for (int i = 1; i &lt; 6; i++){\n      if (timer &lt; 1000*i){\n        lcd.print(5-i);\n        break;\n      }\n    }\n    for (int i = 0; i &lt; 5; i++) {\n      byte buttonPin = button&#091;i];\n      if (digitalRead(buttonPin) == LOW &amp;&amp; pulsado&#091;i] == false) {\n        pulsado&#091;i]=true;\n        return i;\n      }\n      if(digitalRead(buttonPin) == HIGH &amp;&amp; pulsado&#091;i] == true){\n        pulsado&#091;i]=false;\n      }\n    }\n    delay(1);\n  }\n  return -1;\n}\n\nvoid printDifficulties(){\n  lcd.createChar (0,ABIERTO);\n  lcd.createChar (1,CERRADO);\n  lcd.createChar (2,MEDIO);\n\n  lcd.clear();\n  lcd.setCursor(0,0);\n  lcd.print(\"Dificultad\");\n\n  lcd.setCursor(0,1);\n  lcd.write(byte (1));\n  lcd.write(byte (0));\n  lcd.write(byte (0));\n  lcd.print(\":AZUL\");\n\n  lcd.setCursor(0,2);\n  lcd.write(byte (1));\n  lcd.write(byte (2));\n  lcd.write(byte (0));\n  lcd.print(\":VERDE\");\n\n  lcd.setCursor(0,3);\n  lcd.write(byte (1));\n  lcd.write(byte (1));\n  lcd.write(byte (0));\n  lcd.print(\":AMARILLO\");\n\n  lcd.setCursor(10,1);\n  lcd.write(byte (1));\n  lcd.write(byte (1));\n  lcd.write(byte (2));\n  lcd.print(\":ROJO\");\n\n  lcd.setCursor(10,2);\n  lcd.write(byte (1));\n  lcd.write(byte (1));\n  lcd.write(byte (1));\n  lcd.print(\":BLANCO\");\n\n}\n\nvoid printLevel(int aux){\n  lcd.clear();\n  lcd.setCursor(0,1);\n  lcd.print(\"Dificultad:\");\n  switch(aux){\n    case(0): \n      lcd.write(byte (1));\n      lcd.write(byte (1));\n      lcd.write(byte (1));\n      break;\n    case(1):\n      lcd.write(byte (1));\n      lcd.write(byte (1));\n      lcd.write(byte (2));\n      break;\n    case(2):\n      lcd.write(byte (1));\n      lcd.write(byte (1));\n      lcd.write(byte (0));\n      break;\n    case(3):\n      lcd.write(byte (1));\n      lcd.write(byte (2));\n      lcd.write(byte (0));\n      break;\n    case(4):\n      lcd.write(byte (1));\n      lcd.write(byte (0));\n      lcd.write(byte (0));\n      break;\n  }\n    lcd.setCursor(0, 2);\n    lcd.print(\"Nivel:\");\n}\n\n\nvoid setup() {\n  lcd.init();\n  lcd.backlight();\n  randomSeed(analogRead(A0));\n\n  for (byte i =0; i &lt; 5; i++){\n    pinMode(led&#091;i], OUTPUT);\n    pinMode(button&#091;i], INPUT_PULLUP);\n  }\n}\n\nvoid loop() {\n  int aa;\n  dificultad = 1;\n  printDifficulties();\n  int aux = readDifficulties();\n  iluminarLed(aux);\n  dificultad = (aux &gt; 0)? aux : 1;\n  extremeMode = (aux == 0)?true:false;\n  niveles = (extremeMode==true)?niveles:niveles+1;\n  delay(500);\n\n  printLevel(aux);\n  for(byte i = 0; i &lt;niveles; i++){\n    aa = level(i);\n    if(aa != -1){\n        lcd.clear();\n        lcd.setCursor(8,1);\n        lcd.print(\"Game\");\n        lcd.setCursor(8,2);\n        lcd.print(\"Over\");\n        loosingSound();\n        lcd.clear();\n        lcd.setCursor(0,1);\n        lcd.print(\"Puntuacion total:\");\n        lcd.setCursor(0,2);\n        aa=(extremeMode==true)?aa:aa-1;\n        lcd.print(aa);\n        delay(1000);\n        break;\n    }\n    if(i==niveles-1){\n      lcd.clear();\n      lcd.setCursor(4,1);\n      lcd.print(\"Enhorabuena\");\n      lcd.setCursor(4, 2);\n      lcd.print(\"Has Ganado!!\");\n  \n      winSound();\n      aa = niveles;\n    }\n    (extremeMode != true)?delay(1000):delay(250);\n  }\n\n  printTopScores(aa);\n  delay(2000);\n  updateTopScores(aa);\n  printTopScores(aa);\n\n  niveles = (extremeMode==true)?niveles:niveles-1;\n  delay (2000);\n}<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"788\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/FOTO-tinquercad-1024x788.png\" alt=\"\" class=\"wp-image-8243\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/FOTO-tinquercad-1024x788.png 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/FOTO-tinquercad-300x231.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/FOTO-tinquercad-768x591.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/FOTO-tinquercad-1536x1182.png 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/FOTO-tinquercad.png 1934w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"741\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-28-1024x741.png\" alt=\"\" class=\"wp-image-8244\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-28-1024x741.png 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-28-300x217.png 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-28-768x556.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-28-1536x1112.png 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-28.png 1662w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"resultado\">RESULTADO FINAL<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1920\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/Imagen-simon-detras-edited-scaled.jpg\" alt=\"\" class=\"wp-image-8249\" style=\"width:765px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/Imagen-simon-detras-edited-scaled.jpg 2560w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/Imagen-simon-detras-edited-300x225.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/Imagen-simon-detras-edited-1024x768.jpg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/Imagen-simon-detras-edited-768x576.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/Imagen-simon-detras-edited-1536x1152.jpg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/Imagen-simon-detras-edited-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/Imagen-simon-1024x768.jpg\" alt=\"\" class=\"wp-image-8247\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/Imagen-simon-1024x768.jpg 1024w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/Imagen-simon-300x225.jpg 300w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/Imagen-simon-768x576.jpg 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/Imagen-simon-1536x1152.jpg 1536w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/Imagen-simon-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\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=\"Juego Sim\u00f3n con Arduino\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/XJ-N0MEGSJ4?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","protected":false},"excerpt":{"rendered":"<p>Proyecto realizado por: Andr\u00e9s Mart\u00edn Esteban y Carlos Casado Suela. \u00cdndice DESCRIPCI\u00d3N DEL PROYECTO Para el proyecto nos hemos propuesto recrear en Arduino el famoso juego del Simon, que es un juego que consiste&#46;&#46;&#46;<\/p>\n","protected":false},"author":217,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-8047","post","type-post","status-publish","format-standard","hentry","category-proyectos"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Juego de Simon con Arduino - Proyectos con Arduino.<\/title>\n<meta name=\"description\" content=\"Para el proyecto nos hemos propuesto recrear en Arduino el famoso juego del Simon, . \u00bfCu\u00e1ntos puntos crees que puedas hacer? \u00a1Desc\u00fabrelo a continuaci\u00f3n!\" \/>\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\/juego-de-simon-con-arduino\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Juego de Simon con Arduino - Proyectos con Arduino.\" \/>\n<meta property=\"og:description\" content=\"Para el proyecto nos hemos propuesto recrear en Arduino el famoso juego del Simon, . \u00bfCu\u00e1ntos puntos crees que puedas hacer? \u00a1Desc\u00fabrelo a continuaci\u00f3n!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/juego-de-simon-con-arduino\/\" \/>\n<meta property=\"og:site_name\" content=\"Proyectos con Arduino.\" \/>\n<meta property=\"article:published_time\" content=\"2024-05-07T20:39:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-07T20:39:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-31.png\" \/>\n<meta name=\"author\" content=\"dsema2324g02\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"dsema2324g02\" \/>\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\\\/juego-de-simon-con-arduino\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/juego-de-simon-con-arduino\\\/\"},\"author\":{\"name\":\"dsema2324g02\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/person\\\/0ef33be69eeebb7547cd3374c0be4fb7\"},\"headline\":\"Juego de Simon con Arduino\",\"datePublished\":\"2024-05-07T20:39:06+00:00\",\"dateModified\":\"2024-05-07T20:39:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/juego-de-simon-con-arduino\\\/\"},\"wordCount\":1737,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/juego-de-simon-con-arduino\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2024\\\/04\\\/image-31.png\",\"articleSection\":[\"Proyectos\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/juego-de-simon-con-arduino\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/juego-de-simon-con-arduino\\\/\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/juego-de-simon-con-arduino\\\/\",\"name\":\"Juego de Simon con Arduino - Proyectos con Arduino.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/juego-de-simon-con-arduino\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/juego-de-simon-con-arduino\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2024\\\/04\\\/image-31.png\",\"datePublished\":\"2024-05-07T20:39:06+00:00\",\"dateModified\":\"2024-05-07T20:39:08+00:00\",\"description\":\"Para el proyecto nos hemos propuesto recrear en Arduino el famoso juego del Simon, . \u00bfCu\u00e1ntos puntos crees que puedas hacer? \u00a1Desc\u00fabrelo a continuaci\u00f3n!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/juego-de-simon-con-arduino\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/juego-de-simon-con-arduino\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/juego-de-simon-con-arduino\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2024\\\/04\\\/image-31.png\",\"contentUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2024\\\/04\\\/image-31.png\",\"width\":1024,\"height\":768},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/juego-de-simon-con-arduino\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Juego de Simon con Arduino\"}]},{\"@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\\\/0ef33be69eeebb7547cd3374c0be4fb7\",\"name\":\"dsema2324g02\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4d0313f9cfb130f9620f5909e809b6a25981775575dd7990e67b47bdfaafea19?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4d0313f9cfb130f9620f5909e809b6a25981775575dd7990e67b47bdfaafea19?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4d0313f9cfb130f9620f5909e809b6a25981775575dd7990e67b47bdfaafea19?s=96&d=mm&r=g\",\"caption\":\"dsema2324g02\"},\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/author\\\/dsema2324g02\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Juego de Simon con Arduino - Proyectos con Arduino.","description":"Para el proyecto nos hemos propuesto recrear en Arduino el famoso juego del Simon, . \u00bfCu\u00e1ntos puntos crees que puedas hacer? \u00a1Desc\u00fabrelo a continuaci\u00f3n!","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\/juego-de-simon-con-arduino\/","og_locale":"es_ES","og_type":"article","og_title":"Juego de Simon con Arduino - Proyectos con Arduino.","og_description":"Para el proyecto nos hemos propuesto recrear en Arduino el famoso juego del Simon, . \u00bfCu\u00e1ntos puntos crees que puedas hacer? \u00a1Desc\u00fabrelo a continuaci\u00f3n!","og_url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/juego-de-simon-con-arduino\/","og_site_name":"Proyectos con Arduino.","article_published_time":"2024-05-07T20:39:06+00:00","article_modified_time":"2024-05-07T20:39:08+00:00","og_image":[{"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-31.png","type":"","width":"","height":""}],"author":"dsema2324g02","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"dsema2324g02","Tiempo de lectura":"13 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/juego-de-simon-con-arduino\/#article","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/juego-de-simon-con-arduino\/"},"author":{"name":"dsema2324g02","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/person\/0ef33be69eeebb7547cd3374c0be4fb7"},"headline":"Juego de Simon con Arduino","datePublished":"2024-05-07T20:39:06+00:00","dateModified":"2024-05-07T20:39:08+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/juego-de-simon-con-arduino\/"},"wordCount":1737,"commentCount":0,"publisher":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/juego-de-simon-con-arduino\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-31.png","articleSection":["Proyectos"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/juego-de-simon-con-arduino\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/juego-de-simon-con-arduino\/","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/juego-de-simon-con-arduino\/","name":"Juego de Simon con Arduino - Proyectos con Arduino.","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/juego-de-simon-con-arduino\/#primaryimage"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/juego-de-simon-con-arduino\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-31.png","datePublished":"2024-05-07T20:39:06+00:00","dateModified":"2024-05-07T20:39:08+00:00","description":"Para el proyecto nos hemos propuesto recrear en Arduino el famoso juego del Simon, . \u00bfCu\u00e1ntos puntos crees que puedas hacer? \u00a1Desc\u00fabrelo a continuaci\u00f3n!","breadcrumb":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/juego-de-simon-con-arduino\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/juego-de-simon-con-arduino\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/juego-de-simon-con-arduino\/#primaryimage","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-31.png","contentUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2024\/04\/image-31.png","width":1024,"height":768},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/juego-de-simon-con-arduino\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/blogs.etsii.urjc.es\/dseytr\/"},{"@type":"ListItem","position":2,"name":"Juego de Simon con Arduino"}]},{"@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\/0ef33be69eeebb7547cd3374c0be4fb7","name":"dsema2324g02","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/4d0313f9cfb130f9620f5909e809b6a25981775575dd7990e67b47bdfaafea19?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4d0313f9cfb130f9620f5909e809b6a25981775575dd7990e67b47bdfaafea19?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4d0313f9cfb130f9620f5909e809b6a25981775575dd7990e67b47bdfaafea19?s=96&d=mm&r=g","caption":"dsema2324g02"},"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/author\/dsema2324g02\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/8047","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\/217"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/comments?post=8047"}],"version-history":[{"count":17,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/8047\/revisions"}],"predecessor-version":[{"id":8483,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/8047\/revisions\/8483"}],"wp:attachment":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media?parent=8047"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/categories?post=8047"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/tags?post=8047"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}